chiark
/
gitweb
/
~matthewv
/
irc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
new trout from rjk
[irc.git]
/
Servus-chiark.py
diff --git
a/Servus-chiark.py
b/Servus-chiark.py
index 8e308bab74bfb76bcc067604480b76272e274f9e..647bce0768ea12910d6fef9d234c98f9b338e8cd 100644
(file)
--- a/
Servus-chiark.py
+++ b/
Servus-chiark.py
@@
-33,7
+33,7
@@
owner = "Emperor"
# Everything else in this file is configuration-specific.
# Everything else in this file is configuration-specific.
-import os, time
+import os, time
, re
# Most command implementations are stored in a separate module.
import commands as c
# Most command implementations are stored in a separate module.
import commands as c
@@
-140,6
+140,14
@@
class game:
maxlose=14*minlose #2 weeks
losetime=time.time()+300000
maxlose=14*minlose #2 weeks
losetime=time.time()+300000
+# initialise the urldb on startup
+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
+
# 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
# 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
@@
-158,10
+166,11
@@
commands = {"karma": (c.karmaq,karmadb),
"reload": reload,
"quit": quit,
"die": quit,
"reload": reload,
"quit": quit,
"die": quit,
+ "define": c.defineq,
"google": c.googleq,
"google": c.googleq,
+ "url": (c.urlq,urldb),
"units": c.unitq,
"help": c.helpq,
"units": c.unitq,
"help": c.helpq,
- "define": c.defineq,
# "game": (c.gameq,game),
"say": c.sayq,
"do": c.doq }
# "game": (c.gameq,game),
"say": c.sayq,
"do": c.doq }
@@
-174,6
+183,7
@@
triggers = ("!", "~") # what character should the bot be invoked by:
# eg !trout, ~trout etc.
def command(bot, cmd, nick, conn, public):
# eg !trout, ~trout etc.
def command(bot, cmd, nick, conn, public):
+ global urldb,lastexp,expirelen,expirevery
ours=0
try:
if public and cmd[0] in triggers:
ours=0
try:
if public and cmd[0] in triggers:
@@
-184,6
+194,16
@@
def command(bot, cmd, nick, conn, public):
command = cmd.split()[0]
except IndexError:
command=""
command = cmd.split()[0]
except IndexError:
command=""
+
+ 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)
# karma: up
if command.endswith("++"):
karma(cmd,1)