(Tasklist): Make tasklists global.
This commit is contained in:
@@ -1,2 +1,2 @@
|
||||
CONFIG_FILE = "config/bot.conf"
|
||||
DATA_VERSION = 0
|
||||
DATA_VERSION = 1
|
||||
|
||||
@@ -129,7 +129,6 @@ class Tasklist:
|
||||
Update the in-memory tasklist from data and regenerate the pages
|
||||
"""
|
||||
self.tasklist = data.tasklist.fetch_rows_where(
|
||||
guildid=self.member.guild.id,
|
||||
userid=self.member.id,
|
||||
_extra=("AND last_updated_at > timezone('utc', NOW()) - INTERVAL '24h' "
|
||||
"ORDER BY created_at ASC, taskid ASC")
|
||||
@@ -331,7 +330,7 @@ class Tasklist:
|
||||
|
||||
if unrewarded:
|
||||
# Select tasks to reward up to the limit of rewards
|
||||
recent_rewards = data.tasklist_rewards.queries.count_recent_for(self.member.guild.id, self.member.id)
|
||||
recent_rewards = data.tasklist_rewards.queries.count_recent_for(self.member.id)
|
||||
max_to_reward = max((task_reward_limit - recent_rewards, 0))
|
||||
reward_tasks = unrewarded[:max_to_reward]
|
||||
|
||||
@@ -354,7 +353,6 @@ class Tasklist:
|
||||
|
||||
# Track reward
|
||||
data.tasklist_rewards.insert(
|
||||
guildid=self.member.guild.id,
|
||||
userid=self.member.id,
|
||||
reward_count=rewarding_count
|
||||
)
|
||||
@@ -376,12 +374,12 @@ class Tasklist:
|
||||
Add provided tasks to the task list
|
||||
"""
|
||||
insert = [
|
||||
(self.member.guild.id, self.member.id, task)
|
||||
(self.member.id, task)
|
||||
for task in tasks
|
||||
]
|
||||
return data.tasklist.insert_many(
|
||||
*insert,
|
||||
insert_keys=('guildid', 'userid', 'content')
|
||||
insert_keys=('userid', 'content')
|
||||
)
|
||||
|
||||
def _delete_tasks(self, *indexes):
|
||||
@@ -460,7 +458,6 @@ class Tasklist:
|
||||
# Fetch accurate count of current tasks
|
||||
count = data.tasklist.select_one_where(
|
||||
select_columns=("COUNT(*)",),
|
||||
guildid=self.member.guild.id,
|
||||
userid=self.member.id
|
||||
)[0]
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ from data import RowTable, Table
|
||||
|
||||
tasklist = RowTable(
|
||||
'tasklist',
|
||||
('taskid', 'guildid', 'userid', 'content', 'complete', 'rewarded', 'created_at', 'last_updated_at'),
|
||||
('taskid', 'userid', 'content', 'complete', 'rewarded', 'created_at', 'last_updated_at'),
|
||||
'taskid'
|
||||
)
|
||||
|
||||
@@ -25,13 +25,13 @@ tasklist_rewards = Table('tasklist_reward_history')
|
||||
|
||||
|
||||
@tasklist_rewards.save_query
|
||||
def count_recent_for(guildid, userid, interval='24h'):
|
||||
def count_recent_for(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)
|
||||
"userid = {}"
|
||||
"AND reward_time > timezone('utc', NOW()) - INTERVAL '{}'".format(userid, interval)
|
||||
)
|
||||
return curs.fetchone()[0] or 0
|
||||
|
||||
Reference in New Issue
Block a user