Add module.
This commit is contained in:
37
bot/modules/todo/data.py
Normal file
37
bot/modules/todo/data.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from data import RowTable, Table
|
||||
|
||||
tasklist = RowTable(
|
||||
'tasklist',
|
||||
('taskid', 'guildid', 'userid', 'content', 'complete', 'rewarded', 'created_at', 'last_updated_at'),
|
||||
'taskid'
|
||||
)
|
||||
|
||||
|
||||
@tasklist.save_query
|
||||
def expire_old_tasks():
|
||||
with tasklist.conn:
|
||||
with tasklist.conn.cursor() as curs:
|
||||
curs.execute(
|
||||
"DELETE FROM tasklist WHERE "
|
||||
"last_updated_at < timezone('utc', NOW()) - INTERVAL '7d' "
|
||||
"RETURNING *"
|
||||
)
|
||||
return curs.fetchall()
|
||||
|
||||
|
||||
tasklist_channels = Table('tasklist_channels')
|
||||
|
||||
tasklist_rewards = Table('tasklist_reward_history')
|
||||
|
||||
|
||||
@tasklist_rewards.save_query
|
||||
def count_recent_for(guildid, userid, interval='24h'):
|
||||
with tasklist_rewards.conn:
|
||||
with tasklist_rewards.conn.cursor() as curs:
|
||||
curs.execute(
|
||||
"SELECT SUM(reward_count) FROM tasklist_reward_history "
|
||||
"WHERE "
|
||||
"guildid = {} AND userid = {}"
|
||||
"AND reward_time > timezone('utc', NOW()) - INTERVAL '{}'".format(guildid, userid, interval)
|
||||
)
|
||||
return curs.fetchone()[0] or 0
|
||||
Reference in New Issue
Block a user