def handle_logtime(bot, ievent): """ show log from a certain time """ if not logs: ievent.reply('log plugin is not enabled') return if ievent.channel not in logs.loglist: ievent.reply('logging is not enabled in %s' % ievent.channel) return fromtime = strtotime(ievent.rest) if not fromtime: ievent.reply("can't detect time") return result = logs.fromtimewithbot(ievent.channel, fromtime) if result: username = users.getname(ievent.userhost) res = [] for i in result: if i[2] == 'bot': txt = i[4] else: nr = i[4].find(' ') txt = i[4][nr:].strip() res.append("[%s] <%s> %s" % (hourmin(float(i[1])), i[2], txt)) ievent.reply(res) return ievent.reply('no data found')
def sayresult(bot, ievent, result, withbot=False): """ reply with result """ got = 0 if result: res = [] for i in result: try: if not withbot and i[3] == 'bot@bot': continue if not withbot and ('PRIVMSG' in i[4] or 'CMND' in i[4]): what = i[4].split(':', 1)[1].strip() else: what = i[4].strip() res.append("[%s %s] <%s> %s" % (dmy(float(i[1])), \ hourmin(float(i[1])), i[2], what)) got += 1 except (ValueError, IndexError): rlog(10, 'log', "can't parse %s" % i) ievent.reply(res, dot=True) if not got: ievent.reply("nothing found")
def handle_re(bot, ievent): """ mail log since last spoken """ if not logs: ievent.reply('log plugin is not enabled') return if ievent.channel not in logs.loglist: ievent.reply('logging is not enabled in %s' % ievent.channel) return lastlist = logs.lastspokelist(ievent.channel, ievent.userhost, 100) lasttime = time.time() gotcha = None for i in lastlist[::-1]: delta = lasttime - i if delta > 600: gotcha = i break else: lasttime = i if gotcha: result = logs.fromtimewithbot(ievent.channel, gotcha) if result: username = users.getname(ievent.userhost) email = getemail(username) if email: try: res = [] for i in result: if i[2] == 'bot': txt = i[4] else: nr = i[4].find(' ') txt = i[4][nr:].strip() res.append("[%s] <%s> %s" % \ (hourmin(float(i[1])), i[2], txt)) domail(email, res, subject="log of %s" % ievent.channel) except Exception, ex: ievent.reply("can't send email: %s" % str(ex)) return ievent.reply('%s lines sent' % len(result)) return else: ievent.reply("can't get email of %s" % username) return
def handle_mailtime(bot, ievent): """ mail log since a given time """ if not logs: ievent.reply('log plugin is not enabled') return if ievent.channel not in logs.loglist: ievent.reply('logging is not enabled in %s' % ievent.channel) return fromtime = strtotime(ievent.rest) if not fromtime: ievent.reply("can't detect time") return result = logs.fromtimewithbot(ievent.channel, fromtime) if result: username = users.getname(ievent.userhost) email = getemail(username) if email: try: res = [] for i in result: if i[2] == 'bot': txt = i[4] else: nr = i[4].find(' ') txt = i[4][nr:].strip() res.append("[%s] <%s> %s" % (hourmin(float(i[1])), i[2], \ txt)) domail(email, res, subject="log of %s" % ievent.channel) except Exception, ex: ievent.reply("can't send email: %s" % str(ex)) return ievent.reply('%s lines sent' % len(result)) return else: ievent.reply("can't get email of %s" % username) return