mirror of
https://github.com/Mikaela/Limnoria.git
synced 2025-10-12 14:57:25 +02:00
Updated ChannelDB to use user ids instead of usernames.
This commit is contained in:
parent
0b6c2084cf
commit
0ab3347567
@ -92,7 +92,7 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp):
|
|||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
cursor.execute("""CREATE TABLE user_stats (
|
cursor.execute("""CREATE TABLE user_stats (
|
||||||
id INTEGER PRIMARY KEY,
|
id INTEGER PRIMARY KEY,
|
||||||
name TEXT UNIQUE,
|
user_id INTEGER UNIQUE,
|
||||||
last_seen TIMESTAMP,
|
last_seen TIMESTAMP,
|
||||||
last_msg TEXT,
|
last_msg TEXT,
|
||||||
smileys INTEGER,
|
smileys INTEGER,
|
||||||
@ -177,19 +177,19 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp):
|
|||||||
cursor.execute("""INSERT INTO nick_seen VALUES (%s, %s, %s)""",
|
cursor.execute("""INSERT INTO nick_seen VALUES (%s, %s, %s)""",
|
||||||
msg.nick, int(time.time()), s)
|
msg.nick, int(time.time()), s)
|
||||||
try:
|
try:
|
||||||
name = ircdb.users.getUser(msg.prefix).name
|
id = ircdb.users.getUserId(msg.prefix)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return
|
return
|
||||||
cursor.execute("""SELECT COUNT(*)
|
cursor.execute("""SELECT COUNT(*)
|
||||||
FROM user_stats
|
FROM user_stats
|
||||||
WHERE nickeq(name,%s)""", name)
|
WHERE user_id=%s""", id)
|
||||||
count = int(cursor.fetchone()[0])
|
count = int(cursor.fetchone()[0])
|
||||||
if count == 0: # User isn't in database.
|
if count == 0: # User isn't in database.
|
||||||
cursor.execute("""INSERT INTO user_stats VALUES (
|
cursor.execute("""INSERT INTO user_stats VALUES (
|
||||||
NULL, %s, %s, %s, %s, %s,
|
NULL, %s, %s, %s, %s, %s,
|
||||||
%s, %s, 1, %s,
|
%s, %s, 1, %s,
|
||||||
0, 0, 0, 0, 0, 0, 0)""",
|
0, 0, 0, 0, 0, 0, 0)""",
|
||||||
name, int(time.time()), s,
|
id, int(time.time()), s,
|
||||||
smileys, frowns, chars, words, int(isAction))
|
smileys, frowns, chars, words, int(isAction))
|
||||||
else:
|
else:
|
||||||
cursor.execute("""UPDATE user_stats SET
|
cursor.execute("""UPDATE user_stats SET
|
||||||
@ -197,10 +197,10 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp):
|
|||||||
words=words+%s, msgs=msgs+1,
|
words=words+%s, msgs=msgs+1,
|
||||||
actions=actions+%s, smileys=smileys+%s,
|
actions=actions+%s, smileys=smileys+%s,
|
||||||
frowns=frowns+%s
|
frowns=frowns+%s
|
||||||
WHERE nickeq(name,%s)""",
|
WHERE user_id=%s""",
|
||||||
int(time.time()), s,
|
int(time.time()), s,
|
||||||
chars, words, int(isAction),
|
chars, words, int(isAction),
|
||||||
smileys, frowns, name)
|
smileys, frowns, id)
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
def doPart(self, irc, msg):
|
def doPart(self, irc, msg):
|
||||||
@ -209,12 +209,9 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp):
|
|||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
cursor.execute("""UPDATE channel_stats SET parts=parts+1""")
|
cursor.execute("""UPDATE channel_stats SET parts=parts+1""")
|
||||||
try:
|
try:
|
||||||
if ircutils.isUserHostmask(msg.prefix):
|
id = ircdb.users.getUserId(msg.prefix)
|
||||||
name = ircdb.users.getUser(msg.prefix).name
|
|
||||||
else:
|
|
||||||
name = msg.prefix
|
|
||||||
cursor.execute("""UPDATE user_stats SET parts=parts+1
|
cursor.execute("""UPDATE user_stats SET parts=parts+1
|
||||||
WHERE nickeq(name,%s)""", name)
|
WHERE user_id=%s""", id)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
db.commit()
|
db.commit()
|
||||||
@ -225,13 +222,10 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp):
|
|||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
cursor.execute("""UPDATE channel_stats SET topics=topics+1""")
|
cursor.execute("""UPDATE channel_stats SET topics=topics+1""")
|
||||||
try:
|
try:
|
||||||
if ircutils.isUserHostmask(msg.prefix):
|
id = ircdb.users.getUserId(msg.prefix)
|
||||||
name = ircdb.users.getUser(msg.prefix).name
|
|
||||||
else:
|
|
||||||
name = msg.prefix
|
|
||||||
cursor.execute("""UPDATE user_stats
|
cursor.execute("""UPDATE user_stats
|
||||||
SET topics=topics+1
|
SET topics=topics+1
|
||||||
WHERE nickeq(name,%s)""", name)
|
WHERE user_id=%s""", id)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
db.commit()
|
db.commit()
|
||||||
@ -242,13 +236,10 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp):
|
|||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
cursor.execute("""UPDATE channel_stats SET modes=modes+1""")
|
cursor.execute("""UPDATE channel_stats SET modes=modes+1""")
|
||||||
try:
|
try:
|
||||||
if ircutils.isUserHostmask(msg.prefix):
|
id = ircdb.users.getUserId(msg.prefix)
|
||||||
name = ircdb.users.getUser(msg.prefix).name
|
|
||||||
else:
|
|
||||||
name = msg.prefix
|
|
||||||
cursor.execute("""UPDATE user_stats
|
cursor.execute("""UPDATE user_stats
|
||||||
SET modes=modes+1
|
SET modes=modes+1
|
||||||
WHERE nickeq(name,%s)""", name)
|
WHERE user_id=%s""", id)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
db.commit()
|
db.commit()
|
||||||
@ -259,21 +250,18 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp):
|
|||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
cursor.execute("""UPDATE channel_stats SET kicks=kicks+1""")
|
cursor.execute("""UPDATE channel_stats SET kicks=kicks+1""")
|
||||||
try:
|
try:
|
||||||
if ircutils.isUserHostmask(msg.prefix):
|
id = ircdb.users.getUserId(msg.prefix)
|
||||||
name = ircdb.users.getUser(msg.prefix).name
|
|
||||||
else:
|
|
||||||
name = msg.prefix
|
|
||||||
cursor.execute("""UPDATE user_stats
|
cursor.execute("""UPDATE user_stats
|
||||||
SET kicks=kicks+1
|
SET kicks=kicks+1
|
||||||
WHERE nickeq(name,%s)""", name)
|
WHERE user_id=%s""", id)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
try:
|
try:
|
||||||
kicked = msg.args[1]
|
kicked = msg.args[1]
|
||||||
name = ircdb.users.getUser(irc.state.nickToHostmask(kicked)).name
|
id = ircdb.users.getUserId(irc.state.nickToHostmask(kicked))
|
||||||
cursor.execute("""UPDATE user_stats
|
cursor.execute("""UPDATE user_stats
|
||||||
SET kicked=kicked+1
|
SET kicked=kicked+1
|
||||||
WHERE nickeq(name,%s)""", name)
|
WHERE user_id=%s""", id)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
db.commit()
|
db.commit()
|
||||||
@ -284,13 +272,10 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp):
|
|||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
cursor.execute("""UPDATE channel_stats SET joins=joins+1""")
|
cursor.execute("""UPDATE channel_stats SET joins=joins+1""")
|
||||||
try:
|
try:
|
||||||
if ircutils.isUserHostmask(msg.prefix):
|
id = ircdb.users.getUserId(msg.prefix)
|
||||||
name = ircdb.users.getUser(msg.prefix).name
|
|
||||||
else:
|
|
||||||
name = msg.prefix
|
|
||||||
cursor.execute("""UPDATE user_stats
|
cursor.execute("""UPDATE user_stats
|
||||||
SET joins=joins+1
|
SET joins=joins+1
|
||||||
WHERE nickeq(name,%s)""", name)
|
WHERE user_id=%s""", id)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
db.commit()
|
db.commit()
|
||||||
@ -302,9 +287,9 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp):
|
|||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
cursor.execute("""UPDATE channel_stats SET quits=quits+1""")
|
cursor.execute("""UPDATE channel_stats SET quits=quits+1""")
|
||||||
try:
|
try:
|
||||||
name = ircdb.users.getUser(msg.prefix).name
|
id = ircdb.users.getUserId(msg.prefix)
|
||||||
cursor.execute("""UPDATE user_stats SET quits=quits+1
|
cursor.execute("""UPDATE user_stats SET quits=quits+1
|
||||||
WHERE nickeq(name,%s)""", name)
|
WHERE user_id=%s""", id)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
db.commit()
|
db.commit()
|
||||||
@ -326,16 +311,18 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp):
|
|||||||
#debug.printf(optlist)
|
#debug.printf(optlist)
|
||||||
if ('--user', '') in optlist:
|
if ('--user', '') in optlist:
|
||||||
table = 'user_stats'
|
table = 'user_stats'
|
||||||
|
criterion = 'user_id=%s'
|
||||||
if not ircdb.users.hasUser(name):
|
if not ircdb.users.hasUser(name):
|
||||||
try:
|
try:
|
||||||
hostmask = irc.state.nickToHostmask(name)
|
hostmask = irc.state.nickToHostmask(name)
|
||||||
name = ircdb.users.getUser(hostmask).name
|
name = ircdb.users.getUserId(hostmask)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
irc.error(msg, conf.replyNoUser)
|
irc.error(msg, conf.replyNoUser)
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
table = 'nick_seen'
|
table = 'nick_seen'
|
||||||
sql = "SELECT last_seen, last_msg FROM %s WHERE nickeq(name,%%s)"%table
|
criterion = 'nickeq(name,%s)'
|
||||||
|
sql = "SELECT last_seen, last_msg FROM %s WHERE %s" % (table,criterion)
|
||||||
#debug.printf(sql)
|
#debug.printf(sql)
|
||||||
cursor.execute(sql, name)
|
cursor.execute(sql, name)
|
||||||
if cursor.rowcount == 0:
|
if cursor.rowcount == 0:
|
||||||
@ -343,6 +330,8 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp):
|
|||||||
else:
|
else:
|
||||||
(seen, m) = cursor.fetchone()
|
(seen, m) = cursor.fetchone()
|
||||||
seen = int(seen)
|
seen = int(seen)
|
||||||
|
if name.isdigit():
|
||||||
|
name = ircdb.getUser(int(name)).name
|
||||||
s = '%s was last seen here %s ago saying %r' % \
|
s = '%s was last seen here %s ago saying %r' % \
|
||||||
(name, utils.timeElapsed(time.time() - seen), m)
|
(name, utils.timeElapsed(time.time() - seen), m)
|
||||||
irc.reply(msg, s)
|
irc.reply(msg, s)
|
||||||
@ -425,14 +414,15 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp):
|
|||||||
if not ircdb.users.hasUser(name):
|
if not ircdb.users.hasUser(name):
|
||||||
try:
|
try:
|
||||||
hostmask = irc.state.nickToHostmask(name)
|
hostmask = irc.state.nickToHostmask(name)
|
||||||
name = ircdb.users.getUser(hostmask).name
|
id = ircdb.users.getUserId(hostmask)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
irc.error(msg, conf.replyNoUser)
|
irc.error(msg, conf.replyNoUser)
|
||||||
return
|
return
|
||||||
|
else:
|
||||||
|
id = ircdb.users.getUserId(name)
|
||||||
db = self.getDb(channel)
|
db = self.getDb(channel)
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
cursor.execute("""SELECT *
|
cursor.execute("""SELECT * FROM user_stats WHERE user_id=%s""", id)
|
||||||
FROM user_stats WHERE nickeq(name,%s)""", name)
|
|
||||||
if cursor.rowcount == 0:
|
if cursor.rowcount == 0:
|
||||||
irc.error(msg, 'I have no stats for that user.')
|
irc.error(msg, 'I have no stats for that user.')
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user