X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~matthewv/git?p=irc.git;a=blobdiff_plain;f=Servus-chiark.py;h=81f8076dfd7ad925c42946b4715a833797cae818;hp=0e0137cc785d36fdcf4f5bc33506bdf403445ca3;hb=174d3c722e14230458c9fa205a680476f8d1f708;hpb=fe2eea11ee0ab484bc1bef95b1f4295f388b40e0 diff --git a/Servus-chiark.py b/Servus-chiark.py index 0e0137c..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 @@ -169,11 +166,13 @@ commands = {"karma": (c.karmaq,karmadb), "define": c.defineq, "google": c.googleq, "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,7 +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 + global urldb,lastexp,expirelen,expirevery,twitapi ours=0 try: if public and cmd[0] in triggers: @@ -201,9 +200,9 @@ def command(bot, cmd, nick, conn, public): lastexp=t if public: - if c.urlre.search(cmd): + if c.urlre.search(cmd) and command.lower()!="url": c.dourl(bot,conn,nick,cmd,urldb) - + # karma: up if command.endswith("++"): karma(cmd,1) @@ -217,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) -#