Compare commits
No commits in common. "56fbb3c346588d32ace9f615ebe7d67308c1c72b" and "6388760ebb9da5493772643868ebf565f46f77ea" have entirely different histories.
56fbb3c346
...
6388760ebb
1 changed files with 16 additions and 25 deletions
41
bot.py
41
bot.py
|
|
@ -4,7 +4,6 @@ import datetime
|
|||
import time
|
||||
|
||||
from vkbottle.bot import Bot, Message
|
||||
from vkbottle_types.objects import MessagesGetConversationMembers
|
||||
|
||||
import config
|
||||
from config import db_load, db_save
|
||||
|
|
@ -25,26 +24,20 @@ async def get_user_info(user_id):
|
|||
return None
|
||||
|
||||
|
||||
def user_is_admin(user_id: int, chat_members: MessagesGetConversationMembers):
|
||||
for member in chat_members.items:
|
||||
if member.member_id != user_id:
|
||||
continue
|
||||
return member.is_admin
|
||||
return False
|
||||
|
||||
|
||||
@bot.on.chat_message(text="!старт")
|
||||
async def stats_handler(message: Message):
|
||||
chat_members = await bot.api.messages.get_conversation_members(peer_id=message.peer_id, extended=False)
|
||||
chat_id = str(message.peer_id)
|
||||
user_id = str(message.from_id)
|
||||
|
||||
if not user_is_admin(message.from_id, chat_members):
|
||||
await message.answer('О таком меня может попросить только администратор беседы.')
|
||||
# TODO
|
||||
if user_id != '5326732':
|
||||
return
|
||||
|
||||
chat_id = str(message.peer_id)
|
||||
if chat_id not in config.DB['chats']:
|
||||
config.DB['chats'][chat_id] = {'users': {}}
|
||||
|
||||
chat_members = await bot.api.messages.get_conversation_members(peer_id=message.peer_id, extended=False)
|
||||
|
||||
for member in chat_members.items:
|
||||
if member.member_id < 0:
|
||||
continue
|
||||
|
|
@ -183,22 +176,20 @@ async def counters_reset_task():
|
|||
target_date = now.date()
|
||||
target_datetime = datetime.datetime.combine(target_date, target_time)
|
||||
|
||||
while True:
|
||||
await wait_until(target_datetime)
|
||||
await wait_until(target_datetime)
|
||||
|
||||
print('Resetting daily counters...')
|
||||
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_today'] = 0
|
||||
config.DB['chats'][chat_id]['users'][user_id]['messages_month'] = 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()
|
||||
target_datetime = target_datetime + datetime.timedelta(days=1)
|
||||
db_save()
|
||||
|
||||
|
||||
async def startup_task():
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue