From 03a7caa5482a14c6e43a9ec7829785ed84dc3c0b Mon Sep 17 00:00:00 2001 From: Brett Wilkins Date: Fri, 3 Jun 2011 15:05:10 +1200 Subject: [PATCH] Fix UTF8 database issue. --- lolbot.conf.sample | 4 ++-- lolbot.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) mode change 100755 => 100644 lolbot.py diff --git a/lolbot.conf.sample b/lolbot.conf.sample index 1181e42..79f1c90 100644 --- a/lolbot.conf.sample +++ b/lolbot.conf.sample @@ -1,6 +1,6 @@ irc.server = irc.freenode.net irc.channel = #lolbottest -# db.url can be any URL that works with SQLAlchemy -db.url = sqlite:///lolbot.db +# sqlite database filename +db.url = lolbot.db diff --git a/lolbot.py b/lolbot.py old mode 100755 new mode 100644 index b2c8e12..65d840b --- a/lolbot.py +++ b/lolbot.py @@ -16,12 +16,13 @@ try: import random import time import getopt + import sqlite3 from twisted.words.protocols import irc from twisted.internet import protocol from twisted.internet import reactor from datetime import datetime from mechanize import Browser - from sqlalchemy import MetaData, Table, Column, String, Text, Integer, DateTime, engine_from_config + from sqlalchemy import MetaData, Table, Column, String, Text, Integer, DateTime, create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base except ImportError: @@ -116,9 +117,14 @@ class LolBot(irc.IRCClient): The Lolbot itself. """ + def _get_connection(self): + connection = sqlite3.Connection(self.config['db.file']) + connection.text_factory = str + return connection + def created(self, when): # connect to the database - self.dbengine = engine_from_config(self.config, prefix="db.") + self.dbengine = create_engine('sqlite+pysqlite://', creator=self._get_connection) SqlBase.metadata.bind = self.dbengine SqlBase.metadata.create_all() self.get_session = sessionmaker(bind=self.dbengine)