X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~matthewv/git?a=blobdiff_plain;f=commands.py;h=a8499587f222c016b408000b72059b5e7314f431;hb=129d1b9256f7020515e6ccfd2dcdab26d0908eec;hp=2864bb9de6ae05b1a9c867738e79fafedbc352f8;hpb=ed002d41b120e49e648879975af68d5b8fdd4823;p=irc.git diff --git a/commands.py b/commands.py index 2864bb9..a849958 100755 --- a/commands.py +++ b/commands.py @@ -1,8 +1,13 @@ # Part of Acrobat. -import string, cPickle, random, urllib, sys, time, re, os, twitter, subprocess, datetime, urlparse +import string, cPickle, random, urllib, sys, time, re, os, twitter, subprocess, datetime, urlparse, hashlib from collections import defaultdict from irclib import irc_lower, nm_to_n +try: + from blame_filter import bfd +except ImportError: + bfd = None + # query karma def karmaq(bot, cmd, nick, conn, public, karma): try: @@ -89,6 +94,7 @@ def troutq(bot, cmd, nick, conn, public, cfg): me = bot.connection.get_nickname() trout_msg = random.choice(fishlist) fishpond.last=trout_msg + fishpond.last_cfg=cfg # The bot won't trout or flirt with itself; if irc_lower(me) == irc_lower(target) or irc_lower(target) in synonyms: target = nick @@ -130,6 +136,7 @@ def slashq(bot, cmd, nick, conn, public, cfg): me = bot.connection.get_nickname() slash_msg = random.choice(fishlist) fishpond.last=slash_msg + fishpond.last_cfg=cfg # The bot won't slash people with themselves if irc_lower(who[0]) == irc_lower(who[1]): conn.notice(nick, "oooooh no missus!") @@ -279,8 +286,12 @@ def __getcommitinfo(commit): return(err) ts,mes=out.split('|') + mes=mes.strip() + md5mes=hashlib.md5(mes).hexdigest() + if bfd and md5mes in bfd: + mes=bfd[md5mes] when=datetime.date.fromtimestamp(float(ts)) - return mes.strip(), when + return mes, when ###Return an array of commit messages and timestamps for lines in db that match what def __getcommits(db,keys,what): @@ -303,7 +314,10 @@ def __getall(tdb,tdbk,fdb,fdbk,sdb,sdbk,what): sans=__getcommits(sdb,sdbk,what) return tans+fans+sans -def blameq(bot,cmd,nick,conn,public,fish,tdb,tdbk,fdb,fdbk,sdb,sdbk): +def blameq(bot,cmd,nick,conn,public,fish,cfgs): + tdb,tdbk = cfgs[0][7] # urgh, magic, to support magic knowledge below + fdb,fdbk = cfgs[1][7] + sdb,sdbk = cfgs[2][7] clist=cmd.split() if len(clist) < 2: bot.automsg(public,nick,"Who or what do you want to blame?") @@ -403,7 +417,7 @@ class UrlLog: n=time.localtime(time.time()) s="%02d:%02d" % (self.localfirst.tm_hour,self.localfirst.tm_min) if n.tm_yday != self.localfirst.tm_yday: - s+=time.strftime(" on %d %B", n) + s+=time.strftime(" on %d %B", self.localfirst) return s def urltype(self): z=min(len(urlinfos)-1, self.count-1) @@ -517,9 +531,9 @@ def getTweet(urlstring,twitapi,inclusion=False,recurlvl=0): unobfuscate_urls=True expand_included_tweets=True stringsout=[] - - parts = string.split(urlstring,'/') - tweetID = parts[-1] + + path = urlparse.urlparse(urlstring).path + tweetID = path.split('/')[-1] try: status = twitapi.GetStatus(tweetID) if status == {}: