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)