forked from zuckerberg/dailybot
karma module
This commit is contained in:
parent
63378f60aa
commit
9fd6a1490a
42
karma.py
Normal file
42
karma.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
class Module:
|
||||||
|
def __init__(self):
|
||||||
|
self.commands = ["karma"]
|
||||||
|
self.auto = True
|
||||||
|
self.manual = {
|
||||||
|
"desc": "Count a user's karma.",
|
||||||
|
"bot_commands": {
|
||||||
|
"karma": lambda x: f"{x}karma",
|
||||||
|
"info": "Show your total amount of karma."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def set_karma(dbc, nickname, points):
|
||||||
|
dbc.execute("CREATE TABLE IF NOT EXISTS karma "
|
||||||
|
"(nickname TEXT COLLATE NOCASE, points INTEGER);")
|
||||||
|
dbc.execute("INSERT OR IGNORE INTO karma VALUES (?, ?);",
|
||||||
|
(nickname, points))
|
||||||
|
dbc.execute("UPDATE karma SET points=? WHERE nickname=?;",
|
||||||
|
(points, nickname))
|
||||||
|
|
||||||
|
def get_karma(dbc, nickname):
|
||||||
|
try:
|
||||||
|
dbc.execute("SELECT points FROM karma WHERE nickname=?;",
|
||||||
|
(nickname,))
|
||||||
|
return dbc.fetchone()[0]
|
||||||
|
except Exception:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def main(i, irc):
|
||||||
|
dbc = i.db[1].cursor()
|
||||||
|
|
||||||
|
if i.cmd == "karma":
|
||||||
|
k = get_karma(dbc, i.nickname)
|
||||||
|
irc.privmsg(i.channel, f"Karma for {i.nickname}: {k}")
|
||||||
|
|
||||||
|
if i.channel == i.nickname:
|
||||||
|
return
|
||||||
|
|
||||||
|
if re.match("^[a-z_\\-\\[\\]\\\\^{}|`][a-z0-9_\\-\\[\\]\\\\^{}|`]*\\+\\+$", i.msg):
|
||||||
|
set_karma(dbc, i.nickname, get_karma(dbc, i.nickname) + 1)
|
||||||
|
elif re.match("^[a-z_\\-\\[\\]\\\\^{}|`][a-z0-9_\\-\\[\\]\\\\^{}|`]*\\-\\-$", i.msg):
|
||||||
|
set_karma(dbc, i.nickname, get_karma(dbc, i.nickname) - 1)
|
Loading…
x
Reference in New Issue
Block a user