This repository has been archived on 2025-07-30. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
welcomecenterbot/tgbot/handlers/handle_members_change.py
2023-04-28 15:24:14 +03:00

52 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from tgbot.handlers.send_button import show_request_msg
from tgbot.api import unmute_member, mute_member, delete_message
from tgbot.storage import Profile, storage
def handle_join(msg):
chat_id = str(msg['chat']['id'])
from_id = str(msg['from']['id'])
actor = Profile.get(from_id, msg)
newcomer_id = str(msg['new_chat_member']['id'])
if from_id == newcomer_id:
if len(actor['parents']) == 0:
# показываем сообщение с кнопкой "поручиться"
show_request_msg(msg)
# до одобрения - мьют
r = mute_member(chat_id, newcomer_id)
print(r)
else:
# за пользователя поручились ранее
pass
else:
# пользователи приглашены другим участником
print(f'{len(msg["new_chat_members"])} members were invited by {from_id}')
for m in msg['new_chat_members']:
newcomer = Profile.get(m['id'])
newcomer['parents'].append(from_id)
Profile.save(newcomer)
actor['children'].append(m['id'])
r = unmute_member(chat_id, newcomer['id'])
print(r)
# обновляем профиль пригласившего
Profile.save(actor)
def handle_left(msg):
print(f'handling member leaving')
member_id = msg["left_chat_member"]["id"]
chat_id = msg['chat']['id']
# удаление сообщения с кнопкой в этом чате
prev_msg = storage.get(f'btn-{chat_id}-{member_id}')
if prev_msg_id:
r = delete_message(chat_id, prev_msg['id'])
print(r)
storage.remove(f'btn-{chat_id}-{member_id}')