X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~matthewv/git?a=blobdiff_plain;f=Servus-chiark.py;h=81f8076dfd7ad925c42946b4715a833797cae818;hb=4a3dd09c307a8bec1c2a99ec79c487e8c75d0779;hp=37cccf93d35915a55171008ae67183096a55bbae;hpb=c0b84406e088cfa837f29e7ea44e3ee87c7a158e;p=irc.git diff --git a/Servus-chiark.py b/Servus-chiark.py index 37cccf9..81f8076 100644 --- a/Servus-chiark.py +++ b/Servus-chiark.py @@ -24,7 +24,9 @@ # Acrobat configuration file # The following definitions are required to be present in this module: -server = "rapun" +# You can also override them on the command-line +# e.g. python acrobat.py Servus-chiark nickname=testbot channel=\#test owner=MyNick +server = "chiark" port = 6667 nickname = "Servus" channel = "#chiark" @@ -33,7 +35,7 @@ owner = "Emperor" # Everything else in this file is configuration-specific. -import os, time, re +import os, time, re, twitter # Most command implementations are stored in a separate module. import commands as c @@ -101,7 +103,7 @@ def fishq(bot, cmd, nick, conn, public,f): # Karma implementation import cPickle -karmafilename = "chiark-karma" +karmafilename = "chiark-karma-"+channel # load the karma db try: f = open(karmafilename, "r") @@ -132,14 +134,6 @@ def quit(bot,cmd,nick,conn,public): 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() @@ -148,6 +142,9 @@ expirelen=71*60*60 #do an expiry run every hour expirevery=60*60 +# non-authenticated twitter api instance +twitapi = twitter.Api() + # Command processing: whenever something is said that the bot can hear, # "command" is invoked and must decide what to do. This configuration # defines a couple of special cases (for karma) but is otherwise driven @@ -168,12 +165,14 @@ commands = {"karma": (c.karmaq,karmadb), "die": quit, "define": c.defineq, "google": c.googleq, -# "url": (c.urlq,urldb), + "url": (c.urlq,urldb), + "nsfw": (c.nsfwq,urldb), + "nws": (c.nsfwq,urldb), "units": c.unitq, "help": c.helpq, -# "game": (c.gameq,game), "say": c.sayq, - "do": c.doq } + "do": c.doq, + "twit": (c.twitterq,twitapi) } # disconnect and hop annoy people # "disconnect": c.disconnq, # "hop": c.disconnq } @@ -183,6 +182,7 @@ triggers = ("!", "~") # what character should the bot be invoked by: # eg !trout, ~trout etc. def command(bot, cmd, nick, conn, public): + global urldb,lastexp,expirelen,expirevery,twitapi ours=0 try: if public and cmd[0] in triggers: @@ -199,10 +199,10 @@ def command(bot, cmd, nick, conn, public): c.urlexpire(urldb,expirelen) lastexp=t -# if public: -# if c.urlre.search(cmd): -# c.dourl(bot,conn,nick,cmd,urldb) - + if public: + if c.urlre.search(cmd) and command.lower()!="url": + c.dourl(bot,conn,nick,cmd,urldb) + # karma: up if command.endswith("++"): karma(cmd,1) @@ -216,11 +216,3 @@ def command(bot, cmd, nick, conn, public): 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) -#