2023-04-23 16:54:58 +00:00
|
|
|
|
from tgbot.api import approve_chat_join_request, delete_message
|
|
|
|
|
from tgbot.handlers.send_button import show_request_msg
|
2023-04-24 06:14:35 +00:00
|
|
|
|
from tgbot.storage import Profile, storage
|
2023-04-23 16:54:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def handle_join_request(msg):
|
|
|
|
|
print(f'handle join request {msg}')
|
|
|
|
|
chat_id = str(msg['chat']['id'])
|
|
|
|
|
from_id = str(msg['from']['id'])
|
|
|
|
|
actor = Profile.get(from_id, msg)
|
|
|
|
|
|
|
|
|
|
if len(actor['parents']) == 0:
|
|
|
|
|
# показываем сообщение с кнопкой "поручиться"
|
2023-04-24 06:14:35 +00:00
|
|
|
|
btn_msg_id = show_request_msg(msg)
|
2023-04-23 16:54:58 +00:00
|
|
|
|
# удаляем предыдущее сообщение с кнопкой в этом чате
|
2023-04-24 06:14:35 +00: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 16:54:58 +00:00
|
|
|
|
print(r)
|
2023-04-24 06:14:35 +00:00
|
|
|
|
storage.set(f'btn-{chat_id}-{from_id}', btn_msg_id)
|
2023-04-23 16:54:58 +00:00
|
|
|
|
else:
|
|
|
|
|
# за пользователя поручились ранее
|
|
|
|
|
r = approve_chat_join_request(chat_id, from_id)
|
|
|
|
|
print(r)
|
|
|
|
|
Profile.save(actor)
|
|
|
|
|
|