*quietly adds a file that should have been in the tree since 9839a*
[halbot.git] / globals.py
blobcbb5d6b54471370aea79169bf550d35ee88c715a
1 import atexit, bz2, threadsafe_sched, ircbot, cPickle, perms
3 DEBUG = False
4 nick = "Hal"
5 server = "localhost"
6 port = 6667
7 try:
8 pwfile = open('hal.pass')
9 password = pwfile.read().strip()
10 except Exception:
11 password = ""
12 autojoin_channels = ("#casualgameplay", "#hal")
13 kill_channels = {}
15 # Dummy where entry for privmsgs.
16 private = "p"
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()
24 commands = {}
26 from ircbot import IRCDict
27 my_users = 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()
34 unlower = {}
36 SAVE_VERSION = 6
37 from cPickle import dumps as pickle, loads as depickle
38 import perms
39 try:
40 db = open("hal.db")
41 zipped = db.read()
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
47 elif version == 5:
48 (my_users, factoid_dbs, locked_dbs, reminder_dbs, subscription_dbs, \
49 unlower, poke_via_msg, factoids_on) = data
50 else:
51 sys.exit("Unrecognized database version.")
52 db.close()
53 del db, zipped, pickled
54 except IOError:
55 pass
57 def save(who=None, where=None, args=None):
58 pickled = pickle((
59 SAVE_VERSION,
60 (my_users, factoid_dbs, locked_dbs, reminder_dbs,
61 subscription_dbs, unlower, poke_via_msg, factoids_on,
62 kill_channels)
64 zipped = bz2.compress(pickled)
65 db = open("hal.db", "w")
66 db.write(zipped)
67 db.close()
68 if who:
69 from basic_commands import reply
70 reply(who, where, "Database saved.")
72 atexit.register(save)
74 commands['save'] = (perms.ircop, save)