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')) msg = update.get('message', update.get('edited_message'))
if msg['chat']['type'] == 'private': if msg['chat']['type'] == 'private':
handle_feedback(msg) handle_feedback(msg)
elif str(msg['chat']['id']) == FEEDBACK_CHAT_ID: elif str(msg['chat']['id']) == FEEDBACK_CHAT_ID \
handle_answer(msg) and 'reply_to_message' in msg:
handle_answer(msg)
elif str(msg['chat']['id']) == CHAT_ID: elif str(msg['chat']['id']) == CHAT_ID:
if 'new_chat_member' in msg: if 'new_chat_member' in msg:
handle_welcome(msg) handle_welcome(msg)

View File

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