Как сделать что б функция проверяла себя каждую минуту?
Существует код для ds-бота на python. С момента начала работы функции захвата сообщений. Затем о наложении запрета и выдаче времени. И 3 функции, которые должны включаться каждую минуту и проверять, прошло ли время запрета. Как я могу заставить его отзываться каждую минуту? желательно асинхронный вызов, если это невозможно, то можно просто. Все, что я ищу, не имеет значения.
async def unban_func(message):
connect = sqlite3.connect('users.db')
cursor = connect.cursor()
time_now_h = datetime.now().hour
time_now_m = datetime.now().minute
with connect:
cursor.execute(f"SELECT H_to_unbun FROM users")
time_unban_h = cursor.fetchall()
cursor.execute(f"SELECT M_to_unbun FROM users")
time_unban_m = cursor.fetchall()
time_unban_h_mass = []
time_unban_m_mass = []
for g in time_unban_h:
time_unban_h_mass.append(g[0])
for g in time_unban_m:
time_unban_m_mass.append(g[0])
for h in time_unban_h_mass:
for m in time_unban_m_mass:
index_h = time_unban_h_mass.index(h)
index_m = time_unban_m_mass.index(m)
if index_h == index_m:
if int(h) == int(time_now_h) and int(m) == int(time_now_m):
with connect:
cursor.execute(f"""SELECT id FROM users WHERE H_to_unbun = {h} AND M_to_unbun = {m}""")
message_author_id = cursor.fetchall()
cursor.execute(f"SELECT roles FROM users WHERE id = {message_author_id}")
mass_roles = cursor.fetchall()
ban_role = discord.utils.get(message.guild.roles, name="ban")
mass_roles_sort = mass_roles[0][0].split(' ')
mass_roles_sort.pop()
for t in mass_roles_sort:
g = discord.utils.get(message.guild.roles, name=t)
await message.author.add_roles(g)
await message.author.remove_roles(ban_role)
cursor.execute(f"""UPDATE users SET warning = {1} WHERE id = {message_author_id}""")
connect.commit()
else:
pass
Ответы (1 шт):
Автор решения: arsen08
→ Ссылка
import time
t=0
local_time = 60
time.sleep(local_time)
t=1
if t==1:
unban_func