mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-27 05:09:23 +01:00
Basic framework in place
This commit is contained in:
parent
cd5781c81a
commit
dae47de713
@ -35,23 +35,27 @@ Add the module docstring here. This will be used by the setup.py script.
|
|||||||
|
|
||||||
from baseplugin import *
|
from baseplugin import *
|
||||||
|
|
||||||
|
import re
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
import sqlite
|
import sqlite
|
||||||
|
|
||||||
import privmsgs
|
import conf
|
||||||
|
import debug
|
||||||
import callbacks
|
import callbacks
|
||||||
|
|
||||||
|
dbfilename = os.path.join(conf.dataDir, 'Infobot.db')
|
||||||
|
|
||||||
def makeDb(filename):
|
def makeDb(filename):
|
||||||
if os.path.exists(filename):
|
if os.path.exists(filename):
|
||||||
return sqlite.connect(filename)
|
return sqlite.connect(filename)
|
||||||
db = sqlite.connect(filename)
|
db = sqlite.connect(filename)
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
cursor.execute("""CREATE TABLE is (
|
cursor.execute("""CREATE TABLE is_factoids (
|
||||||
key TEXT,
|
key TEXT,
|
||||||
value TEXT
|
value TEXT
|
||||||
)""")
|
)""")
|
||||||
cursor.execute("""CREATE TABLE are (
|
cursor.execute("""CREATE TABLE are_factoids (
|
||||||
key TEXT,
|
key TEXT,
|
||||||
value TEXT
|
value TEXT
|
||||||
)""")
|
)""")
|
||||||
@ -64,14 +68,14 @@ def makeDb(filename):
|
|||||||
cursor.execute("""CREATE TABLE confirms (saying TEXT)""")
|
cursor.execute("""CREATE TABLE confirms (saying TEXT)""")
|
||||||
for s in ('Gotcha', 'Ok', '10-4', 'I hear ya', 'Got it'):
|
for s in ('Gotcha', 'Ok', '10-4', 'I hear ya', 'Got it'):
|
||||||
cursor.execute("""INSERT INTO confirms VALUES (%s)""", s)
|
cursor.execute("""INSERT INTO confirms VALUES (%s)""", s)
|
||||||
cursor.execute("""CREATE INDEX is_key ON is (key)""")
|
cursor.execute("""CREATE INDEX is_key ON is_factoids (key)""")
|
||||||
cursor.execute("""CREATE INDEX are_key ON are (key)""")
|
cursor.execute("""CREATE INDEX are_key ON are_factoids (key)""")
|
||||||
db.commmit()
|
db.commit()
|
||||||
return db
|
return db
|
||||||
|
|
||||||
class Infobot(callbacks.PrivmsgRegexp):
|
class Infobot(callbacks.PrivmsgRegexp):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.db = makeDb(os.path.join(conf.dataDir, 'Infobot.db'))
|
self.db = makeDb(dbfilename)
|
||||||
self.cursor = db.cursor()
|
self.cursor = db.cursor()
|
||||||
|
|
||||||
def getRandomSaying(self, table):
|
def getRandomSaying(self, table):
|
||||||
@ -79,7 +83,56 @@ class Infobot(callbacks.PrivmsgRegexp):
|
|||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
return cursor.fetchone()[0]
|
return cursor.fetchone()[0]
|
||||||
|
|
||||||
|
def forget(self, irc, msg, match):
|
||||||
|
r"^forget\s+(.+?)\s+about\s+(.+?)[?.! ]*$"
|
||||||
|
pass
|
||||||
|
|
||||||
|
def tell(self, irc, msg, match):
|
||||||
|
r"^tell\s+(.+?)\s+about\s+(.+?)[?.! ]*$"
|
||||||
|
pass
|
||||||
|
|
||||||
|
def factoid(self, irc, msg, match):
|
||||||
|
r"^(no[ :,-]+)?(.+?)\s+(was|is|am|were|are)\s+(also\s+)?(.+)$"
|
||||||
|
pass
|
||||||
|
|
||||||
|
def unknown(self, irc, msg, match):
|
||||||
|
r"^(.+?)[?.! ]*$"
|
||||||
|
pass
|
||||||
|
|
||||||
|
def info(self, irc, msg, match):
|
||||||
|
r"^info$"
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Class = Infobot
|
Class = Infobot
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import sys
|
||||||
|
if len(sys.argv) < 2 and sys.argv[1] not in ('is', 'are'):
|
||||||
|
print 'Usage: %s <is|are> <factpack> [<factpack> ...]' % sys.argv[0]
|
||||||
|
sys.exit(-1)
|
||||||
|
r = re.compile(r'\s+=>\s+')
|
||||||
|
db = makeDb(dbfilename)
|
||||||
|
cursor = db.cursor()
|
||||||
|
if sys.argv[1] == 'is':
|
||||||
|
table = 'is_factoids'
|
||||||
|
else:
|
||||||
|
table = 'are_factoids'
|
||||||
|
sql = 'INSERT INTO %s VALUES (%%s, %%s)' % table
|
||||||
|
for filename in sys.argv[2:]:
|
||||||
|
fd = file(filename)
|
||||||
|
for line in fd:
|
||||||
|
line = line.strip()
|
||||||
|
if not line or line[0] in ('*', '#'):
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
(key, value) = r.split(line, 1)
|
||||||
|
cursor.execute(sql, key, value)
|
||||||
|
except Exception, e:
|
||||||
|
print 'Invalid line (%s): %r' %(debug.exnToString(e),line)
|
||||||
|
db.commit()
|
||||||
|
|
||||||
|
|
||||||
# vim:set shiftwidth=4 tabstop=8 expandtab textwidth=78:
|
# vim:set shiftwidth=4 tabstop=8 expandtab textwidth=78:
|
||||||
|
Loading…
Reference in New Issue
Block a user