# 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"
# 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
losetime=time.time()+300000
# initialise the urldb on startup
-c.urldb={}
+urldb={}
+lastexp=time.time()
+#expire urls if not asked about or seen for >71 hours
+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
"die": quit,
"define": c.defineq,
"google": c.googleq,
-# "url": urlq,
+ "url": (c.urlq,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 }
# 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:
except IndexError:
command=""
-# if public:
-# if c.urlre.search(cmd):
-# c.dourl(bot,conn,nick,cmd)
-
+ t=time.time()
+ if t - lastexp > expirevery:
+ c.urlexpire(urldb,expirelen)
+ lastexp=t
+
+ 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)