Compare commits

...

2 commits

21
bot.py
View file

@ -4,6 +4,7 @@ import datetime
import time import time
from vkbottle.bot import Bot, Message from vkbottle.bot import Bot, Message
from vkbottle_types.objects import MessagesGetConversationMembers
import config import config
from config import db_load, db_save from config import db_load, db_save
@ -24,20 +25,26 @@ async def get_user_info(user_id):
return None 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="!старт") @bot.on.chat_message(text="!старт")
async def stats_handler(message: Message): async def stats_handler(message: Message):
chat_id = str(message.peer_id) chat_members = await bot.api.messages.get_conversation_members(peer_id=message.peer_id, extended=False)
user_id = str(message.from_id)
# TODO if not user_is_admin(message.from_id, chat_members):
if user_id != '5326732': await message.answer('О таком меня может попросить только администратор беседы.')
return return
chat_id = str(message.peer_id)
if chat_id not in config.DB['chats']: if chat_id not in config.DB['chats']:
config.DB['chats'][chat_id] = {'users': {}} 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: for member in chat_members.items:
if member.member_id < 0: if member.member_id < 0:
continue continue
@ -176,6 +183,7 @@ async def counters_reset_task():
target_date = now.date() target_date = now.date()
target_datetime = datetime.datetime.combine(target_date, target_time) 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...')
@ -190,6 +198,7 @@ async def counters_reset_task():
config.DB['chats'][chat_id]['users'][user_id]['messages_month'] = 0 config.DB['chats'][chat_id]['users'][user_id]['messages_month'] = 0
db_save() db_save()
target_datetime = target_datetime + datetime.timedelta(days=1)
async def startup_task(): async def startup_task():