Limnoria/tools/ircdbConvert.py

69 lines
1.9 KiB
Python
Raw Normal View History

2004-02-02 02:46:59 +01:00
#!/usr/bin/env python
import os
import sys
import shutil
if len(sys.argv) < 3:
sys.stderr.write('Usage: %s <users file> <channels file>\n')
sys.exit(-1)
(userFile, channelFile) = sys.argv[1:]
import supybot
import conf
conf.supybot.directories.conf.setValue('.')
conf.supybot.databases.users.filename.setValue(userFile)
conf.supybot.databases.channels.filename.setValue(channelFile)
import log
conf.supybot.log.stdout.setValue(False)
import ircdb
def write(fd, s):
fd.write(s)
fd.write(os.linesep)
if __name__ == '__main__':
shutil.copy(userFile, userFile + '.bak')
shutil.copy(channelFile, channelFile + '.bak')
# Users.conf.
fd = file(userFile, 'w')
2004-02-02 07:42:16 +01:00
for (i, u) in enumerate(ircdb.users.users):
2004-02-02 02:46:59 +01:00
if u is None:
continue
write(fd, 'user %s' % i)
write(fd, ' name %s' % u.name)
write(fd, ' ignore %s' % u.ignore)
write(fd, ' secure %s' % u.secure)
write(fd, ' hashed %s' % u.hashed)
write(fd, ' password %s' % u.password)
for capability in u.capabilities:
2004-02-04 00:02:19 +01:00
try:
(channel, capability) = rsplit(capability, '.', 1)
capability = ','.join(channel, capability)
except ValueError:
pass
2004-02-02 02:46:59 +01:00
write(fd, ' capability %s' % capability)
for hostmask in u.hostmasks:
write(fd, ' hostmask %s' % hostmask)
write(fd, '')
fd.close()
# Channels.conf.
fd = file(channelFile, 'w')
for (name, c) in ircdb.channels.iteritems():
write(fd, 'channel %s' % name)
write(fd, ' defaultAllow %s' % c.defaultAllow)
write(fd, ' lobotomized %s' % c.lobotomized)
for capability in c.capabilities:
write(fd, ' capability %s' % capability)
for ban in c.bans:
write(fd, ' ban %s' % ban)
for ignore in c.ignores:
write(fd, ' ignore %s' % ignore)
write(fd, '')