summaryrefslogtreecommitdiffstats
path: root/Reaktor/IRC
diff options
context:
space:
mode:
authormakefu <root@pigstarter.de>2013-04-22 15:17:15 +0200
committermakefu <root@pigstarter.de>2013-04-22 15:17:15 +0200
commite703a1606471901008938c72900367770afee8f3 (patch)
tree13ba9821383c3b13daa385b9cd31956017c9cdb1 /Reaktor/IRC
parent0ab171778fe183b95d6cbf2998f986b866df1947 (diff)
update Reaktor - add color translator
Diffstat (limited to 'Reaktor/IRC')
-rwxr-xr-xReaktor/IRC/asybot.py8
-rwxr-xr-xReaktor/IRC/index2
-rw-r--r--Reaktor/IRC/translate_colors.py31
3 files changed, 38 insertions, 3 deletions
diff --git a/Reaktor/IRC/asybot.py b/Reaktor/IRC/asybot.py
index df758ed6..2cb533ea 100755
--- a/Reaktor/IRC/asybot.py
+++ b/Reaktor/IRC/asybot.py
@@ -2,7 +2,7 @@
#
# //Reaktor/IRC/asybot.py
#
-
+from translate_colors import translate_colors
def is_executable(x):
import os
return os.path.exists(x) and os.access(x, os.X_OK)
@@ -24,6 +24,9 @@ formatter = logging.Formatter( '%(filename)s: %(levelname)s: %(message)s')
hdlr.setFormatter(formatter)
log.addHandler(hdlr)
+# s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g -- removes color codes
+
+
class asybot(asychat):
def __init__(self, server, port, nickname, targets, **kwargs):
asychat.__init__(self)
@@ -110,6 +113,7 @@ class asybot(asychat):
def PRIVMSG(text):
for line in self.wrapper.wrap(text):
msg = 'PRIVMSG %s :%s' % (','.join(params), line)
+ log.info(msg)
self.push(msg)
sleep(1)
@@ -151,7 +155,7 @@ class asybot(asychat):
return
pid = p.pid
for line in iter(p.stdout.readline,""):
- PRIVMSG(line)
+ PRIVMSG(translate_colors(line))
log.debug('%s stdout: %s' % (pid, line))
p.wait()
elapsed = time() - start
diff --git a/Reaktor/IRC/index b/Reaktor/IRC/index
index 50022ec9..cc2652fe 100755
--- a/Reaktor/IRC/index
+++ b/Reaktor/IRC/index
@@ -3,4 +3,4 @@ set -xeuf
# cd //Reaktor
cd $(dirname $(readlink -f $0))/..
-host=irc.freenode.net target='#krebsco' python IRC/asybot.py "$@"
+host=irc.freenode.net target='#krebs' python IRC/asybot.py "$@"
diff --git a/Reaktor/IRC/translate_colors.py b/Reaktor/IRC/translate_colors.py
new file mode 100644
index 00000000..bd716618
--- /dev/null
+++ b/Reaktor/IRC/translate_colors.py
@@ -0,0 +1,31 @@
+
+
+COLOR_MAP = {
+ "\x1b[0m" : "\x0F", # reset
+ "\x1b[37m" : "\x0300",
+ "\x1b[30m" : "\x0301",
+ "\x1b[34m" : "\x0302",
+ "\x1b[32m" : "\x0303",
+ "\x1b[31m" : "\x0304",
+ "\x1b[33m" : "\x0305",
+ "\x1b[35m" : "\x0306",
+ "\x1b[33m" : "\x0307",
+ "\x1b[33m" : "\x0308",
+ "\x1b[32m" : "\x0309",
+ "\x1b[36m" : "\x0310",
+ "\x1b[36m" : "\x0311",
+ "\x1b[34m" : "\x0312",
+ "\x1b[31m" : "\x0313",
+ "\x1b[30m" : "\x0314",
+ "\x1b[37m" : "\x0315",
+ "\x1b[1m" : "\x02", # bold on
+ "\x1b[22m" : "\x02" # bold off
+ }
+def translate_colors (line):
+ for color,replace in COLOR_MAP.items():
+ line = line.replace(color,replace)
+ return line
+
+if __name__ == "__main__":
+ import sys
+ print (translate_colors(sys.stdin.read()))