Реализован сброс счетчиков сообщений.

This commit is contained in:
Kirill Kirilenko 2025-08-20 20:04:03 +03:00
parent f98ef98b3b
commit 6388760ebb

46
bot.py
View file

@ -1,7 +1,8 @@
import asyncio
import calendar import calendar
import datetime
import time import time
from vkbottle import GroupTypes, GroupEventType
from vkbottle.bot import Bot, Message from vkbottle.bot import Bot, Message
import config import config
@ -155,5 +156,46 @@ async def any_message_handler(message: Message):
# if user_id == bot.api.users.get() # if user_id == bot.api.users.get()
print("Bot started.") async def wait_until(target_time: datetime.datetime):
now = datetime.datetime.now(target_time.tzinfo)
if now >= target_time:
return
delay_seconds = (target_time - now).total_seconds()
await asyncio.sleep(delay_seconds)
async def counters_reset_task():
tz = datetime.timezone(datetime.timedelta(hours=3), name="MSK")
target_time = datetime.time(6, 0, 0, tzinfo=tz)
now = datetime.datetime.now(tz)
if now.hour > target_time.hour or now.hour == target_time.hour and now.minute > target_time.minute:
target_date = now.date() + datetime.timedelta(days=1)
else:
target_date = now.date()
target_datetime = datetime.datetime.combine(target_date, target_time)
await wait_until(target_datetime)
print('Resetting daily counters...')
for chat_id in config.DB['chats']:
for user_id in config.DB['chats'][chat_id]['users']:
config.DB['chats'][chat_id]['users'][user_id]['messages_today'] = 0
if target_datetime.day == 1:
print('Resetting monthly counters...')
for chat_id in config.DB['chats']:
for user_id in config.DB['chats'][chat_id]['users']:
config.DB['chats'][chat_id]['users'][user_id]['messages_month'] = 0
db_save()
async def startup_task():
print("Bot started.")
bot.loop_wrapper.on_startup.append(startup_task())
bot.loop_wrapper.add_task(counters_reset_task())
bot.run_forever() bot.run_forever()