fix-reply-feedback5

This commit is contained in:
Untone 2023-09-18 11:12:25 +03:00
parent 638f4ae407
commit 980b455585
2 changed files with 24 additions and 22 deletions

View File

@ -42,24 +42,25 @@ async def handle_feedback(msg, state):
async def handle_answer(msg): async def handle_answer(msg):
logger.info("handle answering feedback") logger.info("handle answering feedback")
logger.debug(msg) logger.debug(msg)
answered_msg = msg["reply_to_message"] if "reply_to_message" in msg:
if "from" not in answered_msg: answered_msg = msg.get("reply_to_message")
answered_msg["from"] = vars(msg.from_user) if "from" not in answered_msg:
r = await get_chat_administrators(msg["chat"]["id"]) answered_msg["from"] = vars(msg.from_user)
logger.debug(r) r = await get_chat_administrators(msg["chat"]["id"])
admins = [] logger.debug(r)
for a in r["result"]: admins = []
admins.append(a["user"]["id"]) for a in r["result"]:
if answered_msg["from"]["is_bot"] and msg["from"]["id"] in admins: admins.append(a["user"]["id"])
support_msg_id = str(answered_msg["message_id"]) if answered_msg["from"]["is_bot"] and msg["from"]["id"] in admins:
# получение сохраненного информации о сообщении для ответа support_msg_id = str(answered_msg["message_id"])
stored_feedback = storage.get(f"fbk-{support_msg_id}") # получение сохраненного информации о сообщении для ответа
if stored_feedback: stored_feedback = storage.get(f"fbk-{support_msg_id}")
logger.info("handle an answer from feedback group") if stored_feedback:
stored_feedback = json.loads(stored_feedback) logger.info("handle an answer from feedback group")
r = await send_message( stored_feedback = json.loads(stored_feedback)
f'{stored_feedback["chat_id"]}', r = await send_message(
msg["text"], f'{stored_feedback["chat_id"]}',
reply_to=stored_feedback["message_id"], msg["text"],
) reply_to=stored_feedback["message_id"],
logger.debug(r) )
logger.debug(r)

View File

@ -28,7 +28,8 @@ async def handle_routing(msg, state):
elif str(cid) == FEEDBACK_CHAT_ID: elif str(cid) == FEEDBACK_CHAT_ID:
# сообщения из группы обратной связи # сообщения из группы обратной связи
logger.info("feedback chat message") logger.info("feedback chat message")
if "reply_to_message" in msg: logger.debug(msg)
if msg.get("reply_to_message"):
await handle_answer(msg) await handle_answer(msg)
elif msg["text"] == "/graph": elif msg["text"] == "/graph":
await handle_command_graph(msg) await handle_command_graph(msg)