0.0.11 refactor, fixes unlink

This commit is contained in:
2023-05-01 19:31:17 +03:00
parent 730725a924
commit 41882595b1
8 changed files with 54 additions and 22 deletions

View File

@@ -5,34 +5,38 @@ from tgbot.storage import Profile
# remove link of callback sender
# from member vouched before
def handle_unlink(callback_query):
print('handle unlink button pressed, private chat only')
def handle_unlink(payload):
print('handle unlink button pressed or command, private chat only')
from_id = str(callback_query['from']['id'])
linked_id = str(callback_query['data'].replace('unlink', ''))
from_id = str(payload['from']['id'])
linked_id = ''
if 'data' in payload:
linked_id = str(payload['data'].replace('unlink', ''))
elif 'text' in payload:
linked_id = str(payload['text'].replace('/unlink ', ''))
# удаляем связь с потомком
actor = Profile.get(from_id, callback_query)
actor['children'].remove(linked_id)
actor = Profile.get(from_id, payload)
actor['children'].remove(str(linked_id))
Profile.save(actor)
# удаляем связь с предком
linked = Profile.get(linked_id)
linked['parents'].remove(from_id)
linked['parents'].remove(str(from_id))
Profile.save(linked)
# удаляем старое сообщение с кнопками
reply_msg_id = callback_query['message']['message_id']
reply_msg_id = payload['message']['message_id']
r = delete_message(from_id, reply_msg_id)
print(r)
# если ещё есть связи - посылаем новое сообщение
if len(actor['children']) > 0:
handle_command_my(callback_query)
handle_command_my(payload)
# если больше никто не поручился - kick out
if len(linked['parents']) == 0:
lang = callback_query['from'].get('language_code', 'ru')
lang = payload['from'].get('language_code', 'ru')
for chat_id in linked['chats']:
r = kick_member(chat_id, linked_id)
print(r)