from ConfigParser import ConfigParser, NoOptionError
import os
import sys

from karma.models import KarmaKey, KarmaLogEntry

import MySQLdb as mdb

config_file = 'dr.botzo.cfg'
config = ConfigParser()
config.read(os.path.expanduser(config_file))

dbhost = config.get('dr.botzo', 'dbhost')
dbuser = config.get('dr.botzo', 'dbuser')
dbpass = config.get('dr.botzo', 'dbpass')
dbname = config.get('dr.botzo', 'dbname')

db = mdb.connect(dbhost, dbuser, dbpass, dbname, charset='utf8', use_unicode=True)
try:
    cur = db.cursor()
    query = '''
        SELECT * FROM karma_log
    '''
    cur.execute(query)
    for row in cur.fetchall():
        karma_key_name = row[1]
        karma_key, c = KarmaKey.objects.get_or_create(key=karma_key_name)

        delta = row[2]
        nick = row[3]
        usermask = row[4]
        nickmask = nick + "!" + usermask
        karmatime = row[5]
        karma_log = KarmaLogEntry.objects.create(key=karma_key, delta=delta, nickmask=nickmask, created=karmatime)
except NoOptionError as noe:
    sys.exit("Aborted due to error in config: {0:s}".format(str(noe)))