# Everything else in this file is configuration-specific.
-import os, time, re, twitter
+import os, time, re, twitter, subprocess, sys
# Most command implementations are stored in a separate module.
import commands as c
DoS=0
Boring_Git='Nobody'
quotatime=0
+ last=""
+
+# load the "blame" details for a file
+def loadblame(filename):
+ p=subprocess.Popen(["git","blame","-s",filename],
+ stdout=subprocess.PIPE,stderr=subprocess.PIPE)
+ out,err=p.communicate()
+ if len(err)>0:
+ sys.exit("git blame failure: %s" % err)
+ bdb={}
+ lines=out.split("\n")
+ for line in lines:
+ l=line.split()
+ if len(line.strip())>0:
+ commit=l[0]
+ thing=' '.join(l[2:])
+ bdb[thing]=commit
+ keys=bdb.keys()
+ return bdb,keys
+
+#set up blame dbs for trouts/flirts/slashes
+tbdb,tbdbk=loadblame("trouts")
+fbdb,fbdbk=loadblame("flirts")
+sbdb,sbdbk=loadblame("slashes")
# load a file full of flirts or trouts
def __load(filename):
def reload(bot,cmd,nick,conn,public):
c.reloadq(bot,cmd,nick,conn,public)
-#The game...
-class game:
- trigger="Servus"
- grace=time.time()
- minlose=24*60*60 #1 day
- maxlose=14*minlose #2 weeks
- losetime=time.time()+300000
-
# initialise the urldb on startup
urldb={}
lastexp=time.time()
"nsfw": (c.nsfwq,urldb),
"nws": (c.nsfwq,urldb),
"units": c.unitq,
+ "currency":c.currencyq,
+ "blame": (c.blameq,fish,tbdb,tbdbk,fbdb,fbdbk,sbdb,sbdbk),
"help": c.helpq,
-# "game": (c.gameq,game),
"say": c.sayq,
"do": c.doq,
"twit": (c.twitterq,twitapi) }
e(bot,cmd,nick,conn,public)
else:
e[0](bot,cmd,nick,conn,public,*e[1:])
-# elif public:
-# if cmd.find("GAME")!=-1: #someone else lost
-# grace.grace=time.time()+60*20
-# elif cmd.find(game.trigger)!=-1 and len(game.trigger)>2: #we lost!
-# c.gameq(bot,"pad "+game.trigger,bot.owner,conn,False,game)
-# elif time.time()>game.losetime: #we randomly lost, take new trigger
-# c.gameq(bot,cmd,bot.owner,conn,False,game)
-#