no longer encode/decode UTF8 stuff when going to/from database

seems safe so far (famous last words)
This commit is contained in:
Brian S. Stephan 2012-07-27 16:34:57 -05:00
parent e1356496eb
commit 033631e5c2
6 changed files with 14 additions and 30 deletions

View File

@ -272,7 +272,7 @@ class Achievements(Module):
query = ''' query = '''
SELECT id FROM achievements_filter WHERE %s REGEXP filter SELECT id FROM achievements_filter WHERE %s REGEXP filter
''' '''
cur.execute(query, (msg.decode('utf-8', 'replace'),)) cur.execute(query, (msg,))
results = cur.fetchall() results = cur.fetchall()
for result in results: for result in results:
cur = db.cursor(mdb.cursors.DictCursor) cur = db.cursor(mdb.cursors.DictCursor)

View File

@ -125,7 +125,7 @@ class Facts(Module):
if len(facts) > 0: if len(facts) > 0:
fact = facts[random.randint(1,len(facts))-1] fact = facts[random.randint(1,len(facts))-1]
return fact['fact'].rstrip().encode('utf-8', 'ignore') return fact['fact'].rstrip()
except mdb.Error as e: except mdb.Error as e:
self.log.error("database error in _get_fact") self.log.error("database error in _get_fact")
self.log.exception(e) self.log.exception(e)

View File

@ -129,7 +129,7 @@ class Karma(Module):
INSERT INTO karma_log (karma_key, delta, who, userhost) INSERT INTO karma_log (karma_key, delta, who, userhost)
VALUES (%s, %s, %s, %s) VALUES (%s, %s, %s, %s)
''' '''
cur.execute(sql, (key.decode('utf-8', 'ignore').lower(), value, nick, userhost)) cur.execute(sql, (key.lower(), value, nick, userhost))
db.commit() db.commit()
except mdb.Error as e: except mdb.Error as e:
db.rollback() db.rollback()
@ -222,7 +222,7 @@ class Karma(Module):
FROM karma_values FROM karma_values
WHERE karma_key = %s WHERE karma_key = %s
''' '''
cur.execute(query, (key.decode('utf-8', 'ignore').lower(),)) cur.execute(query, (key.lower(),))
value = cur.fetchone() value = cur.fetchone()
if (value != None): if (value != None):

View File

@ -300,11 +300,9 @@ class Markov(Module):
cur = db.cursor(mdb.cursors.DictCursor) cur = db.cursor(mdb.cursors.DictCursor)
statement = 'INSERT INTO markov_chain (k1, k2, v, context_id) VALUES (%s, %s, %s, %s)' statement = 'INSERT INTO markov_chain (k1, k2, v, context_id) VALUES (%s, %s, %s, %s)'
for word in words: for word in words:
cur.execute(statement, (k1.decode('utf-8', 'replace'), cur.execute(statement, (k1, k2, word, context_id))
k2.decode('utf-8', 'replace'), word.decode('utf-8', 'replace'), context_id))
k1, k2 = k2, word k1, k2 = k2, word
cur.execute(statement, (k1.decode('utf-8', 'replace'), cur.execute(statement, (k1, k2, self.stop, context_id))
k2.decode('utf-8', 'replace'), self.stop, context_id))
db.commit() db.commit()
except mdb.Error as e: except mdb.Error as e:
@ -418,19 +416,11 @@ class Markov(Module):
query = ('SELECT v FROM markov_chain WHERE k1 = %s AND k2 = %s AND ' query = ('SELECT v FROM markov_chain WHERE k1 = %s AND k2 = %s AND '
'(context_id = %s)') '(context_id = %s)')
cur = db.cursor(mdb.cursors.DictCursor) cur = db.cursor(mdb.cursors.DictCursor)
cur.execute(query, (k1.decode('utf-8', 'replace'), cur.execute(query, (k1, k2, context_id))
k2.decode('utf-8', 'replace'),
context_id))
results = cur.fetchall() results = cur.fetchall()
for result in results: for result in results:
try: values.append(result['v'])
values.append(result['v'])
except UnicodeDecodeError as e:
self.log.error("error appending value from database")
self.log.error(e)
self.log.debug("v: {0:s}".format(result['v']))
pass
return values return values
except mdb.Error as e: except mdb.Error as e:
@ -447,17 +437,11 @@ class Markov(Module):
try: try:
query = 'SELECT k2 FROM markov_chain WHERE v = %s AND context_id = %s' query = 'SELECT k2 FROM markov_chain WHERE v = %s AND context_id = %s'
cur = db.cursor(mdb.cursors.DictCursor) cur = db.cursor(mdb.cursors.DictCursor)
cur.execute(query, (v.decode('utf-8', 'replace'), context_id)) cur.execute(query, (v, context_id))
results = cur.fetchall() results = cur.fetchall()
for result in results: for result in results:
try: values.append(result['k2'])
values.append(result['k2'])
except UnicodeDecodeError as e:
self.log.error("error appending k2 from database")
self.log.error(e)
self.log.debug("k2: {0:s}".format(result['k2']))
pass
return values return values
except mdb.Error as e: except mdb.Error as e:

View File

@ -73,7 +73,7 @@ class Seen(Module):
if where: if where:
cur = db.cursor(mdb.cursors.DictCursor) cur = db.cursor(mdb.cursors.DictCursor)
statement = 'REPLACE INTO seen_nicks (nick, location, host, what) VALUES (%s, %s, %s, %s)' statement = 'REPLACE INTO seen_nicks (nick, location, host, what) VALUES (%s, %s, %s, %s)'
cur.execute(statement, (nick, where, userhost, what.decode('utf-8', 'replace'))) cur.execute(statement, (nick, where, userhost, what))
db.commit() db.commit()
except mdb.Error as e: except mdb.Error as e:
db.rollback() db.rollback()
@ -93,7 +93,7 @@ class Seen(Module):
result = cur.fetchone() result = cur.fetchone()
if result: if result:
seentime = result['time'].replace(tzinfo=tzlocal()) seentime = result['time'].replace(tzinfo=tzlocal())
replystr = 'last saw {0:s} in {3:s} at {1:s} saying \'{2:s}\'.'.format(result['nick'], seentime.astimezone(tzlocal()).strftime('%Y/%m/%d %H:%M:%S %Z'), result['what'].encode('utf-8', 'ignore'), result['location'].encode('utf-8', 'ignore')) replystr = 'last saw {0:s} in {3:s} at {1:s} saying \'{2:s}\'.'.format(result['nick'], seentime.astimezone(tzlocal()).strftime('%Y/%m/%d %H:%M:%S %Z'), result['what'], result['location'])
return self.reply(connection, event, replystr) return self.reply(connection, event, replystr)
else: else:
return self.reply(connection, event, 'i have not seen {0:s} in {1:s}.'.format(nick, where)) return self.reply(connection, event, 'i have not seen {0:s} in {1:s}.'.format(nick, where))

View File

@ -1075,7 +1075,7 @@ class Storycraft(Module):
line.id = result['id'] line.id = result['id']
line.game_id = result['game_id'] line.game_id = result['game_id']
line.player_id = result['player_id'] line.player_id = result['player_id']
line.line = result['line'].encode('utf-8', 'replace') line.line = result['line']
line.time = result['time'] line.time = result['time']
lines.append(line) lines.append(line)
@ -1096,7 +1096,7 @@ class Storycraft(Module):
statement = ''' statement = '''
UPDATE storycraft_line SET line = %s, time = CURRENT_TIMESTAMP WHERE id = %s UPDATE storycraft_line SET line = %s, time = CURRENT_TIMESTAMP WHERE id = %s
''' '''
cur.execute(statement, (input_line.decode('utf-8', 'replace'), line_id)) cur.execute(statement, (input_line, line_id))
db.commit() db.commit()
return line_id return line_id
except mdb.Error as e: except mdb.Error as e: