Files
welcomecenterbot/tgbot/handlers/handle_default.py

49 lines
1.9 KiB
Python
Raw Normal View History

2023-04-23 19:54:58 +03:00
from tgbot.api import send_message, delete_message, get_chat_administrators
from tgbot.storage import Profile
from tgbot.handlers.send_button import show_request_msg
2023-04-24 09:14:35 +03:00
from tgbot.storage import storage
2023-04-23 19:54:58 +03:00
def handle_default(msg):
print(f'default handler for all messages')
chat_id = str(msg['chat']['id'])
from_id = str(msg['from']['id'])
sender = Profile.get(from_id, msg)
if msg['text'].startswith('/my'):
# команда в групповом чате
print(f'remove some messages in group chat')
# удалить сообщение с командой /my
r = delete_message(chat_id, msg['message_id'])
print(r)
# удалить предыдушее сообщение с кнопкой в этом чате
2023-04-24 09:14:35 +03:00
prev_msg_id = storage.get(f'btn-{chat_id}-{from_id}')
if prev_msg_id:
r = delete_message(chat_id, prev_msg_id)
2023-04-23 19:54:58 +03:00
print(r)
# показать новое сообщение с кнопкой
2023-04-24 09:14:35 +03:00
btn_msg_id = show_request_msg(msg)
storage.set(f'btn-{chat_id}-{from_id}', btn_msg_id)
2023-04-23 19:54:58 +03:00
else:
# любое другое сообщение
if len(sender['parents']) == 0:
# владелец чата автоматически ручается
print(f'setting owner as parent for {from_id}')
r = get_chat_administrators(chat_id)
print(r)
2023-04-24 09:14:35 +03:00
owner_id = ''
for admin in r['result']:
if admin['status'] == 'creator':
owner_id = admin['user']['id']
break
2023-04-23 19:54:58 +03:00
sender['parents'].append(owner_id)
# обновляем профиль владельца
owner = Profile.get(owner_id)
owner['children'].append(from_id)
Profile.save(owner)
# сохранить профиль отправителя
Profile.save(sender)