1 import atexit
, bz2
, threadsafe_sched
, ircbot
, cPickle
, perms
8 pwfile
= open('hal.pass')
9 password
= pwfile
.read().strip()
12 autojoin_channels
= ("#casualgameplay", "#hal")
15 # Dummy where entry for privmsgs.
18 # For processing yes/no arguments.
19 yes
= ("1", "on", "true", "enable", "yes")
20 no
= ("0", "off", "true", "disable", "no")
22 scheduler
= threadsafe_sched
.scheduler()
26 from ircbot
import IRCDict
28 factoid_dbs
= IRCDict()
29 locked_dbs
= IRCDict()
30 factoids_on
= IRCDict()
31 reminder_dbs
= IRCDict()
32 subscription_dbs
= IRCDict()
33 poke_via_msg
= IRCDict()
37 from cPickle
import dumps
as pickle
, loads
as depickle
42 pickled
= bz2
.decompress(zipped
)
43 (version
, data
) = depickle(pickled
)
44 if version
== SAVE_VERSION
:
45 (my_users
, factoid_dbs
, locked_dbs
, reminder_dbs
, subscription_dbs
, \
46 unlower
, poke_via_msg
, factoids_on
, kill_channels
) = data
48 (my_users
, factoid_dbs
, locked_dbs
, reminder_dbs
, subscription_dbs
, \
49 unlower
, poke_via_msg
, factoids_on
) = data
51 sys
.exit("Unrecognized database version.")
53 del db
, zipped
, pickled
57 def save(who
=None, where
=None, args
=None):
60 (my_users
, factoid_dbs
, locked_dbs
, reminder_dbs
,
61 subscription_dbs
, unlower
, poke_via_msg
, factoids_on
,
64 zipped
= bz2
.compress(pickled
)
65 db
= open("hal.db", "w")
69 from basic_commands
import reply
70 reply(who
, where
, "Database saved.")
74 commands
['save'] = (perms
.ircop
, save
)