mirror of
https://github.com/Mikaela/Limnoria.git
synced 2025-02-02 07:34:08 +01:00
Dump/load commands.
This commit is contained in:
parent
7c8f8b4fca
commit
7f00bf01c2
@ -39,6 +39,7 @@ __contributors__ = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import csv
|
||||||
import sets
|
import sets
|
||||||
from itertools import imap
|
from itertools import imap
|
||||||
|
|
||||||
@ -212,6 +213,32 @@ class SqliteKarmaDB(object):
|
|||||||
WHERE normalized=%s""", normalized)
|
WHERE normalized=%s""", normalized)
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
|
def dump(self, channel, filename):
|
||||||
|
filename = conf.supybot.directories.data.dirize(filename)
|
||||||
|
fd = utils.transactionalFile(filename)
|
||||||
|
out = csv.writer(fd)
|
||||||
|
db = self._getDb(channel)
|
||||||
|
cursor = db.cursor()
|
||||||
|
cursor.execute("""SELECT name, added, subtracted FROM karma""")
|
||||||
|
for (name, added, subtracted) in cursor.fetchall():
|
||||||
|
out.writerow([name, added, subtracted])
|
||||||
|
fd.close()
|
||||||
|
|
||||||
|
def load(self, channel, filename):
|
||||||
|
filename = conf.supybot.directories.data.dirize(filename)
|
||||||
|
fd = file(filename)
|
||||||
|
reader = csv.reader(fd)
|
||||||
|
db = self._getDb(channel)
|
||||||
|
cursor = db.cursor()
|
||||||
|
cursor.execute("""DELETE FROM karma""")
|
||||||
|
for (name, added, subtracted) in reader:
|
||||||
|
normalized = name.lower()
|
||||||
|
cursor.execute("""INSERT INTO karma
|
||||||
|
VALUES (NULL, %s, %s, %s, %s)""",
|
||||||
|
name, normalized, added, subtracted)
|
||||||
|
db.commit()
|
||||||
|
fd.close()
|
||||||
|
|
||||||
KarmaDB = plugins.DB('Karma',
|
KarmaDB = plugins.DB('Karma',
|
||||||
{'sqlite': SqliteKarmaDB})
|
{'sqlite': SqliteKarmaDB})
|
||||||
|
|
||||||
@ -382,6 +409,27 @@ class Karma(callbacks.Privmsg):
|
|||||||
name = name.strip('()')
|
name = name.strip('()')
|
||||||
return name
|
return name
|
||||||
|
|
||||||
|
def dump(self, irc, msg, args, channel, filename):
|
||||||
|
"""[<channel>] <filename>
|
||||||
|
|
||||||
|
Dumps the Karma database for <channel> to <filename> in the bot's
|
||||||
|
data directory. <channel> is only necessary if the message isn't sent
|
||||||
|
in the channel itself.
|
||||||
|
"""
|
||||||
|
self.db.dump(channel, filename)
|
||||||
|
irc.replySuccess()
|
||||||
|
dump = wrap(dump, [('checkCapability', 'owner'), 'channeldb', 'filename'])
|
||||||
|
|
||||||
|
def load(self, irc, msg, args, channel, filename):
|
||||||
|
"""[<channel>] <filename>
|
||||||
|
|
||||||
|
Loads the Karma database for <channel> from <filename> in the bot's
|
||||||
|
data directory. <channel> is only necessary if the message isn't sent
|
||||||
|
in the channel itself.
|
||||||
|
"""
|
||||||
|
self.db.load(channel, filename)
|
||||||
|
irc.replySuccess()
|
||||||
|
load = wrap(load, [('checkCapability', 'owner'), 'channeldb', 'filename'])
|
||||||
|
|
||||||
Class = Karma
|
Class = Karma
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user