Compare commits
2 commits
6388760ebb
...
56fbb3c346
| Author | SHA1 | Date | |
|---|---|---|---|
| 56fbb3c346 | |||
| a41d7ece98 |
1 changed files with 25 additions and 16 deletions
21
bot.py
21
bot.py
|
|
@ -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():
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue