small-fixes

This commit is contained in:
tonyrewin 2023-04-18 12:22:43 +03:00
parent 023666ddf1
commit f7ca51f9e2
2 changed files with 48 additions and 40 deletions

View File

@ -30,8 +30,9 @@ async def handle(req):
msg = update.get('message', update.get('edited_message'))
if msg['chat']['type'] == 'private':
handle_feedback(msg)
elif str(msg['chat']['id']) == FEEDBACK_CHAT_ID:
handle_answer(msg)
elif str(msg['chat']['id']) == FEEDBACK_CHAT_ID \
and 'reply_to_message' in msg:
handle_answer(msg)
elif str(msg['chat']['id']) == CHAT_ID:
if 'new_chat_member' in msg:
handle_welcome(msg)

View File

@ -64,6 +64,8 @@ def handle_welcome(msg):
def handle_left(msg):
print(f'handling member leaving')
member_id = msg["left_chat_member"]["id"]
# read member session
@ -107,44 +109,49 @@ def handle_text(msg):
def handle_button(callback_query):
member_id = str(callback_query['from']['id'])
callback_data = callback_query['data']
reply_owner = str(callback_query['message']['reply_to_message']['from']['id'])
welcome_msg_id = str(callback_query['message']['message_id'])
enter_msg_id = str(callback_query['message']['reply_to_message']['message_id'])
if reply_owner == member_id:
print(f'callback_query in {CHAT_ID}')
if 'reply_to_message' not in callback_query['message']:
# удаляет сообщение с кнопкой, если оно ни на что не отвечает
r = delete_message(CHAT_ID, callback_query['message'])
print(r.json())
else:
member_id = str(callback_query['from']['id'])
callback_data = callback_query['data']
reply_owner = str(callback_query['message']['reply_to_message']['from']['id'])
welcome_msg_id = str(callback_query['message']['message_id'])
enter_msg_id = str(callback_query['message']['reply_to_message']['message_id'])
if reply_owner == member_id:
print(f'callback_query in {CHAT_ID}')
# read session
s = storage.get(f'usr-{member_id}')
if s:
s = json.loads(s)
else:
print('no user session found, create')
s = {
'newcomer': True,
'welcome_id': welcome_msg_id
}
storage.set(f'usr-{member_id}', json.dumps(s))
# read session
s = storage.get(f'usr-{member_id}')
if s:
s = json.loads(s)
else:
print('no user session found, create')
s = {
'newcomer': True,
'welcome_id': welcome_msg_id
}
storage.set(f'usr-{member_id}', json.dumps(s))
if callback_data == BUTTON_NO:
print('wrong answer, cleanup')
r = delete_message(CHAT_ID, enter_msg_id)
print(r.json())
r = delete_message(CHAT_ID, welcome_msg_id)
print(r.json())
if callback_data == BUTTON_NO:
print('wrong answer, cleanup')
r = delete_message(CHAT_ID, enter_msg_id)
print(r.json())
r = delete_message(CHAT_ID, welcome_msg_id)
print(r.json())
# remove banned member session
storage.delete(f'usr-{member_id}')
# remove banned member session
storage.delete(f'usr-{member_id}')
print('ban member')
r = ban_member(CHAT_ID, member_id)
print(r.json())
elif callback_data == BUTTON_OK:
print('proper answer, cleanup')
r = delete_message(CHAT_ID, welcome_msg_id)
print(r.json())
s['newcomer'] = False
print('ban member')
r = ban_member(CHAT_ID, member_id)
print(r.json())
elif callback_data == BUTTON_OK:
print('proper answer, cleanup')
r = delete_message(CHAT_ID, welcome_msg_id)
print(r.json())
s['newcomer'] = False
# store new member session
storage.set(f'usr-{member_id}', json.dumps(s))
# store new member session
storage.set(f'usr-{member_id}', json.dumps(s))