#!/usr/bin/env python import os import sys import sqlite import supybot.dbi as dbi import supybot.conf as conf import supybot.ircutils as ircutils import supybot.plugins.Lart as Lart import supybot.plugins.Praise as Praise conf.supybot.log.stdout.setValue(False) def usage(): print 'usage: %s []' % sys.argv[0] print ' is an optional parameter used if any db entries are '\ 'missing a "created by" user.' def main(): if '-h' in sys.argv or '--help' in sys.argv or len(sys.argv) not in (3, 4): usage() sys.exit(1) sqldb = sys.argv[1] channel = sys.argv[2] if not ircutils.isChannel(channel): print '%s is an invalid channel name.' sys.exit(1) if len(sys.argv) >= 4: botname = sys.argv[3] if not os.path.exists(sqldb): print 'Unable to open %s' % sqldb sys.exit(1) praises = Praise.Praise().db larts = Lart.Lart().db db = sqlite.connect(sqldb) cursor = db.cursor() total = 0 failed = 0 success = 0 for (table, plugin) in (('larts', larts), ('praises', praises)): cursor.execute("""SELECT * FROM %s ORDER BY id ASC""" % table) table = table[:-1] if cursor.rowcount != 0: entries = cursor.fetchall() for entry in entries: try: total += 1 text = entry[1] by = entry[2] if by is None: by = botname plugin.add(channel, table, text, by) success += 1 except dbi.Error: failed += 1 print '%s/%s entries successfully added. %s failed.' % (success, total, failed) print 'Dbs are at: %s' % ', '.join((praises.filename, larts.filename)) db.close() praises.close() larts.close() sys.exit(0) if __name__ == '__main__': main()