Add textsynth support to annna. - annna - Annna the nice friendly bot. HTML git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/ DIR Log DIR Files DIR Refs DIR Tags DIR README --- DIR commit d974ca1bf2ea840a5f1c96dd7fe8768ec1c7626c DIR parent 465c44b267057ef7894954d7a4f0a75eb210fd05 HTML Author: Annna Robert-Houdin <annna@bitreich.org> Date: Wed, 6 May 2020 16:18:14 +0200 Add textsynth support to annna. http://textsynth.org/ Diffstat: M annna-start-services | 21 +++++++++++++++++++++ A textsynth-complete | 58 ++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 0 deletions(-) --- DIR diff --git a/annna-start-services b/annna-start-services @@ -235,6 +235,27 @@ then fi annna-say -c '#bitreich-en' "${purl}" ;; + "${botname}, textsynth is "*) + word="$(printf "%s\n" "${text}" | cut -c 17- | sed 's,\t, ,g')" + case "$word" in + *\?) + word="$(printf "%s\n" "${word}" | cut -c -"$(($(expr length "${word}") - 1))")" + ;; + esac + + # Do in background, because read is very slow. + { + dresult="$(textsynth-complete "${word}")" + if [ -n "${dresult}" ]; + then + purl="$(printf "%s" "${dresult}" | /br/bin/bitreich-paste)" + else + purl="Textsynth did not answer." + fi + annna-say -c '#bitreich-en' "textsynth result: ${purl}" + } & + + ;; "${botname}, are "*) case "${text}" in *" in love?") DIR diff --git a/textsynth-complete b/textsynth-complete @@ -0,0 +1,58 @@ +#!/usr/bin/env python3.6 +# coding=utf-8 +# +# Copy me if you can. +# by 20h +# + +import os +import sys +import getopt +import websocket + +def usage(app): + app = os.path.basename(app) + print("usage: %s [-h] [-b base] text to complete..." % (app), + file=sys.stderr) + sys.exit(1) + +def main(args): + try: + opts, largs = getopt.getopt(args[1:], "hb:") + except getopt.GetoptError as err: + print(str(err)) + usage(args[0]) + + baseuri = "ws://163.172.76.10:8080" + for o, a in opts: + if o == "-h": + usage(args[0]) + else: + assert False, "unhandled option" + + if len(largs) < 1: + usage(args[0]) + txtstr = " ".join(largs) + reqstr = "g,%s" % (txtstr) + + try: + ws = websocket.WebSocket() + ws.connect(baseuri) + ws.send(reqstr) + + rstr = "" + while 1: + r = ws.recv() + if len(r) == 0: + break + rstr += r + except: + return 1 + + print("%s\n" % (rstr)) + + return 0 + +if __name__ == "__main__": + sys.exit(main(sys.argv)) +