【发布时间】:2020-12-11 15:28:12
【问题描述】:
我尝试创建一个 tasks.loop() 来检查需要取消静音的静音用户,但是这样做时有一些问题,由于某种原因我不能使用 fetchall() 因为它会给我这个错误
toremove = muteremove[2]
IndexError: list index out of range
如果我使用 fetchone() 可能它每 10 秒只获取 1 个用户,我的意思是如何每 10 秒获取所有数据以取消静音用户?
另外,如果我使用 fetchone(),它会说它can't convert str into datetime.datetime object,我该如何解决这个问题?
@tasks.loop(seconds=10)
async def muted_user_check(self):
self.cur.execute(f"SELECT userId, guildId, expiredAt FROM mutedlist")
muteremove = self.cur.fetchall()
if muteremove is None:
print("No user to unmute :D")
if muteremove is not None:
toremove = muteremove[2]
timenow = datetime.utcnow()
if timenow > toremove:
self.cur.execute(f"DELETE FROM mutedlist WHERE guildId = {muteremove[1]} and userId = {muteremove[0]}")
【问题讨论】:
标签: sqlite discord discord.py discord.py-rewrite