Add cuneiforme number 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 446ead25be8c9a927e75b0cdc465c9025567f7d2
DIR parent efcd795d1ed9c33eb40c95ee8937c768dcf7a0d5
HTML Author: Annna Robert-Houdin <annna@bitreich.org>
Date: Fri, 11 Apr 2025 17:19:13 +0200
Add cuneiforme number support to annna.
Diffstat:
M annna-message-common | 5 +++++
A int2cunei | 94 +++++++++++++++++++++++++++++++
2 files changed, 99 insertions(+), 0 deletions(-)
---
DIR diff --git a/annna-message-common b/annna-message-common
@@ -725,6 +725,11 @@ case "${text}" in
suri="$(pohlcode.awk "${word}" | head -n 1)"
annna-say -s "${server}" -c "${channel}" "${suri}"
;;
+"${ircuser}, please cunei "*)
+ word="$(printf "%s\n" "${text}" | cut -c 21- | sed 's,\t, ,g')"
+ suri="$(int2cunei "${word}" | head -n 1)"
+ annna-say -s "${server}" -c "${channel}" "${suri}"
+ ;;
"${ircuser}, what can I cook with "*)
ingredients="$(printf "%s\n" "${text}" | cut -c 29- | sed 's,\t, ,g')"
case "$ingredients" in
DIR diff --git a/int2cunei b/int2cunei
@@ -0,0 +1,94 @@
+#!/usr/bin/env python
+# coding=utf-8
+#
+# Idea from: https://trinket.io/python/3023f6104c42
+#
+
+import os
+import sys
+import getopt
+import math
+
+def usage(app):
+ app = os.path.basename(app)
+ print("usage: %s [-h] int" % (app), file=sys.stderr)
+ sys.exit(1)
+
+def main(args):
+ try:
+ opts, largs = getopt.getopt(args[1:], "h")
+ except getopt.GetoptError as err:
+ print(str(err))
+ usage(args[0])
+
+ for o, a in opts:
+ if o == "-h":
+ usage(args[0])
+ else:
+ assert False, "unhandled option"
+
+ if len(largs) < 1:
+ usage(args[0])
+
+ inint = int(largs[0])
+
+ symbol_list=['-',"𒐕"]
+ symbol_list.append("𒐖")
+ symbol_list.append("𒐗")
+ symbol_list.append("𒐘")
+ symbol_list.append("𒐙")
+ symbol_list.append("𒐚")
+ symbol_list.append("𒑂")
+ symbol_list.append("𒑄")
+ symbol_list.append("𒑆")
+ symbol_list.append("𒌋")
+ for i in range(1,10):
+ symbol_list.append(symbol_list[10]+symbol_list[i])
+ symbol_list.append(symbol_list[10]+symbol_list[10])
+ for i in range(1,10):
+ symbol_list.append(symbol_list[20]+symbol_list[i])
+ symbol_list.append(symbol_list[10]+symbol_list[10]+symbol_list[10])
+ for i in range(1,10):
+ symbol_list.append(symbol_list[30]+symbol_list[i])
+ symbol_list.append("𒑩")
+ for i in range(1,10):
+ symbol_list.append(symbol_list[40]+symbol_list[i])
+ symbol_list.append("𒑪")
+ for i in range(1,10):
+ symbol_list.append(symbol_list[50]+symbol_list[i])
+
+ def numberToBase(n, b):
+ if n == 0:
+ return [0]
+ digits = []
+ while n:
+ digits.append(int(n % b))
+ n //= b
+ return digits[::-1]
+
+ def baseToInt(l, b):
+ rint = 0
+ i = 0
+ for d in reversed(l):
+ rint += d * (b**i)
+ i += 1
+ return rint
+
+ def cunei_print(l):
+ s = ""
+ for d in range(len(l)):
+ s += symbol_list[l[d]] + ""
+ return s
+
+ def find_leg(w,d):
+ return math.sqrt(d * d - w * w)
+
+ base = numberToBase(inint, 60)
+ cuneis = cunei_print(base)
+ print("%s" % (cuneis))
+
+ return 0
+
+if __name__ == "__main__":
+ sys.exit(main(sys.argv))
+