From 8f4dcaa4c9f589705e957a89e90dfa6d04b82d90 Mon Sep 17 00:00:00 2001 From: Stefan Krulj Date: Fri, 12 Oct 2012 18:45:53 +0200 Subject: [PATCH] logger improved --- modules/active/logger.py | 65 ++++++++++++++++++++++++++-------------- sys/s5b.py | 2 +- 2 files changed, 44 insertions(+), 23 deletions(-) diff --git a/modules/active/logger.py b/modules/active/logger.py index 16ed07c..8bacf12 100644 --- a/modules/active/logger.py +++ b/modules/active/logger.py @@ -1,11 +1,18 @@ -import brathuhn, tempfile +import brathuhn, tempfile, datetime, time +from StringIO import StringIO user_logs = dict() +def get_log(msg,args): + if msg.getFrom() in user_logs: + user_logs[msg.getFrom()].seek(0) + log = user_logs[msg.getFrom()].read() + fd = StringIO(log) + brathuhn.sendFileStream(msg.getFrom(),len(log),"log.txt",fd) + else: + brathuhn.sendMsg(msg.getFrom(),"I'm currently not logging for you") + def show_log(msg,args): - if len(args)!=1: - brathuhn.sendMsg(msg.getFrom(),"Usage: !"+args[0]) - return if msg.getFrom() in user_logs: user_logs[msg.getFrom()].seek(0) log = user_logs[msg.getFrom()].read() @@ -13,10 +20,7 @@ def show_log(msg,args): else: brathuhn.sendMsg(msg.getFrom(),"I'm currently not logging for you") -def del_log(msg,args): - if len(args)!=1: - brathuhn.sendMsg(msg.getFrom(),"Usage: !"+args[0]) - return +def delete_log(msg,args): if msg.getFrom() in user_logs: user_logs[msg.getFrom()].seek(0) user_logs[msg.getFrom()].truncate(0) @@ -25,28 +29,31 @@ def del_log(msg,args): brathuhn.sendMsg(msg.getFrom(),"I'm currently not logging for you") def stop_log(msg,args): - if len(args)!=1: - brathuhn.sendMsg(brathuhn.ROOM,"Usage: !"+args[0],'groupchat') - return - brathuhn.sendMsg(brathuhn.ROOM,"/me stopped logging for "+unicode(msg.getFrom()),'groupchat') if msg.getFrom() in user_logs: + brathuhn.sendMsg(brathuhn.ROOM,"/me stopped logging for "+unicode(msg.getFrom()),'groupchat') del user_logs[msg.getFrom()] + else: + brathuhn.sendMsg(msg.getFrom(),"I'm currently not logging for you") def start_log(msg,args): - if len(args)!=1: - brathuhn.sendMsg(brathuhn.ROOM,"Usage: !"+args[0],'groupchat') - return - brathuhn.sendMsg(brathuhn.ROOM,"/me started logging for "+unicode(msg.getFrom()),'groupchat') - user_logs[msg.getFrom()]=open(tempfile.mkstemp(brathuhn.NAME)[1],"w+") + if not msg.getFrom() in user_logs: + brathuhn.sendMsg(brathuhn.ROOM,"/me started logging for "+unicode(msg.getFrom()),'groupchat') + user_logs[msg.getFrom()]=open(tempfile.mkstemp(brathuhn.NAME)[1],"w+") + else: + brathuhn.sendMsg(msg.getFrom(),"I'm already logging for you") def message_logger(mfrom,msg): body = unicode(msg.getBody()) - for key in user_logs: + for key in user_logs: + date=datetime.datetime.fromtimestamp(time.time()) + user_logs[key].write(date.strftime("(%H:%M:%S) ")) user_logs[key].write(unicode(mfrom)+": "+body+"\n") def status_logger(mfrom,msg,status): for key in user_logs: + date=datetime.datetime.fromtimestamp(time.time()) + user_logs[key].write(date.strftime("(%H:%M:%S) ")) if status==brathuhn.STATUS_JOIN: user_logs[key].write(unicode(mfrom)+" joined\n") if status==brathuhn.STATUS_ONLINE: @@ -62,9 +69,23 @@ def status_logger(mfrom,msg,status): if status==brathuhn.STATUS_UNKNOWN: user_logs[key].write(unicode(mfrom)+" is now ???\n") -brathuhn.addPrivateCommand("show_log","Usage: !show_log",show_log) -brathuhn.addPrivateCommand("start_log","Usage: !start_log",start_log) -brathuhn.addPrivateCommand("stop_log","Usage: !stop_log",stop_log) -brathuhn.addPrivateCommand("delete_log","Usage: !delete_log",del_log) +def log(msg,args): + if len(args)!=2: + brathuhn.sendMsg(msg.getFrom(),"Usage: !log (start|stop|delete|show|get)") + return + if args[1]=='start': + start_log(msg,args) + elif args[1]=='stop': + stop_log(msg,args) + elif args[1]=='delete': + delete_log(msg,args) + elif args[1]=='show': + show_log(msg,args) + elif args[1]=='get': + get_log(msg,args) + else: + brathuhn.sendMsg(msg.getFrom(),"Usage: !log (start|stop|delete|show|get)") + +brathuhn.addPrivateCommand("log","Usage: !log (start|stop|delete|show|get)",log) brathuhn.addGroupListener(message_logger) brathuhn.addStatusListener(status_logger) diff --git a/sys/s5b.py b/sys/s5b.py index f29ca18..31488ad 100644 --- a/sys/s5b.py +++ b/sys/s5b.py @@ -16,7 +16,7 @@ def s5b_prepare(): return (s,port) def s5b_write_file(s,fd,size): - s.settimeout(20) + s.settimeout(60) conn, addr = s.accept() data = conn.recv(3)