Add module.

This commit is contained in:
2021-09-12 11:36:22 +03:00
parent d6b3adc27e
commit d2357f0e53
5 changed files with 969 additions and 0 deletions

37
bot/modules/todo/data.py Normal file
View 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