Add smile support to annna. - annna - Annna the nice friendly bot. | |
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
--- | |
commit 2628bd5e8d723212320200938832049a502acbaa | |
parent 69bb3614ffb26988dfe3210716e422ee922094ec | |
Author: Annna Robert-Houdin <[email protected]> | |
Date: Thu, 26 Dec 2024 18:25:55 +0100 | |
Add smile support to annna. | |
Diffstat: | |
M annna-message-common | 4 ++++ | |
A smile | 73 +++++++++++++++++++++++++++++… | |
2 files changed, 77 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/annna-message-common b/annna-message-common | |
@@ -1216,6 +1216,10 @@ case "${text}" in | |
"For humanity!") | |
annna-say -s "${server}" -c "${channel}" "${user}, for humanity! gophe… | |
;; | |
+":)"|":))"|":)))"|":-)"|":-))"|":-)))"|":--)"|":--))"|":--)))"|":---)"|":----)… | |
+ smileface="$(smile)" | |
+ annna-say -s "${server}" -c "${channel}" -- "${smileface}" | |
+ ;; | |
"${ircuser}, please dance."|"\\o/"|"\^o^/") | |
dancemoves="$(dance-moves-gen)" | |
annna-say -s "${server}" -c "${channel}" -- "${dancemoves}" | |
diff --git a/smile b/smile | |
@@ -0,0 +1,73 @@ | |
+#!/usr/bin/env python | |
+# coding=utf-8 | |
+ | |
+import os | |
+import sys | |
+import getopt | |
+import random | |
+ | |
+def usage(app): | |
+ app = os.path.basename(app) | |
+ print("usage: %s [-h] [-n moves]" % (app), file=sys.stderr) | |
+ sys.exit(1) | |
+ | |
+def main(args): | |
+ horiz_hair = ["w", "W", "~"] | |
+ horiz_eyes = ["o", "O", | |
+ "𓁹", "𓁺", "𓁻", "𓁼", "𓁽", "𓁾", "𓁿"… | |
+ "{.}", "(.)", "{o}", "{O}", "(o)", "(.)", "{.}", | |
+ "𓂂", "𓏗", "𓇳", "𓇸", "𓃉", | |
+ "0"] | |
+ horiz_nose = ["m", "v", "i", "."] | |
+ horiz_moustache = ["~~~", "===", "---", "w"] | |
+ horiz_mouth = ["\\/", "\\_/", | |
+ "𓂋", "𓂌", "𓂍", "𓂎", "𓂏", "𓂑", "𓂒"… | |
+ ] | |
+ | |
+ vert_hair = ["d", "c|", "<|", "~"] | |
+ vert_eyes = [":", "8", ";"] | |
+ vert_moustache = ["{", "#", "B", "3"] | |
+ vert_nose = ["-"] | |
+ vert_mouth = [")", "}", "P", "p", "b", "*", ">", "D", "]", "O", "o"] | |
+ vert_tie = ["x", "X"] | |
+ vert_body = ["|-<", "|o<", "|O<", "|~<"] | |
+ | |
+ try: | |
+ opts, largs = getopt.getopt(args[1:], "hb") | |
+ except getopt.GetoptError as err: | |
+ print(str(err)) | |
+ usage(args[0]) | |
+ | |
+ vertical=1 | |
+ withbody=0 | |
+ for o, a in opts: | |
+ if o == "-h": | |
+ usage(args[0]) | |
+ elif o == "-b": | |
+ withbody=1 | |
+ else: | |
+ assert False, "unhandled option" | |
+ | |
+ ostr = "" | |
+ if vertical == 1: | |
+ if random.randrange(1, 10) > 7: | |
+ ostr += random.choice(vert_hair) | |
+ ostr += random.choice(vert_eyes) | |
+ nose = random.choice(vert_nose) | |
+ for i in range(1, random.randrange(2, 5)): | |
+ ostr += nose | |
+ if random.randrange(1, 10) > 8: | |
+ ostr += random.choice(vert_moustache) | |
+ ostr += random.choice(vert_mouth) | |
+ if random.randrange(1, 10) > 8: | |
+ ostr += random.choice(vert_tie) | |
+ if withbody == 1: | |
+ ostr += random.choice(vert_body) | |
+ | |
+ print("%s" % (ostr)) | |
+ | |
+ return 0 | |
+ | |
+if __name__ == "__main__": | |
+ sys.exit(main(sys.argv)) | |
+ |