Реализован сброс счетчиков сообщений.
This commit is contained in:
parent
f98ef98b3b
commit
6388760ebb
1 changed files with 44 additions and 2 deletions
46
bot.py
46
bot.py
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue