welcomecenterbot/tgbot/handlers/handle_members_change.py

53 lines
1.8 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
from tgbot.config import FEEDBACK_CHAT_ID
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 and chat_id != FEEDBACK_CHAT_ID:
# показываем сообщение с кнопкой "поручиться"
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:
r = delete_message(chat_id, prev_msg['id'])
print(r)
storage.remove(f'btn-{chat_id}-{member_id}')