Fix UTF8 database issue.

This commit is contained in:
Brett Wilkins 2011-06-03 15:05:10 +12:00 committed by Jonathan Harker
parent 6e9a61b3bf
commit 03a7caa548
2 changed files with 10 additions and 4 deletions

View file

@ -1,6 +1,6 @@
irc.server = irc.freenode.net irc.server = irc.freenode.net
irc.channel = #lolbottest irc.channel = #lolbottest
# db.url can be any URL that works with SQLAlchemy # sqlite database filename
db.url = sqlite:///lolbot.db db.url = lolbot.db

10
lolbot.py Executable file → Normal file
View file

@ -16,12 +16,13 @@ try:
import random import random
import time import time
import getopt import getopt
import sqlite3
from twisted.words.protocols import irc from twisted.words.protocols import irc
from twisted.internet import protocol from twisted.internet import protocol
from twisted.internet import reactor from twisted.internet import reactor
from datetime import datetime from datetime import datetime
from mechanize import Browser 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.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
except ImportError: except ImportError:
@ -116,9 +117,14 @@ class LolBot(irc.IRCClient):
The Lolbot itself. The Lolbot itself.
""" """
def _get_connection(self):
connection = sqlite3.Connection(self.config['db.file'])
connection.text_factory = str
return connection
def created(self, when): def created(self, when):
# connect to the database # 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.bind = self.dbengine
SqlBase.metadata.create_all() SqlBase.metadata.create_all()
self.get_session = sessionmaker(bind=self.dbengine) self.get_session = sessionmaker(bind=self.dbengine)