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))
+