2023-04-23 16:54:58 +00:00
|
|
|
|
import json
|
|
|
|
|
|
2023-09-11 15:52:35 +00:00
|
|
|
|
from bot.api import send_message, forward_message, delete_message, get_chat_administrators
|
|
|
|
|
from bot.handlers.send_button import show_request_msg
|
|
|
|
|
from bot.utils.mention import userdata_extract
|
|
|
|
|
from bot.storage import storage, Profile
|
|
|
|
|
from bot.config import FEEDBACK_CHAT_ID
|
2023-04-23 16:54:58 +00:00
|
|
|
|
|
|
|
|
|
|
2023-09-11 17:02:29 +00:00
|
|
|
|
def handle_feedback(msg, state):
|
2023-04-23 16:54:58 +00:00
|
|
|
|
mid = msg['message_id']
|
|
|
|
|
cid = msg['chat']['id']
|
2023-04-24 06:16:28 +00:00
|
|
|
|
if msg['text'] == '/start':
|
|
|
|
|
r = send_message(cid, 'Напишите своё сообщение для администрации чата')
|
|
|
|
|
print(r)
|
|
|
|
|
else:
|
2023-09-11 17:02:29 +00:00
|
|
|
|
uid = msg['from']['id']
|
|
|
|
|
if state.is_talking(uid):
|
|
|
|
|
r = forward_message(cid, mid, state.talking[uid])
|
|
|
|
|
print(r)
|
|
|
|
|
state.aho(uid)
|
|
|
|
|
else:
|
|
|
|
|
r = forward_message(cid, mid, FEEDBACK_CHAT_ID)
|
|
|
|
|
print(r)
|
|
|
|
|
support_msg_id = r['result']['message_id']
|
|
|
|
|
# сохранение айди сообщения в приватной переписке с ботом
|
|
|
|
|
storage.set(f'fbk-{support_msg_id}', json.dumps({
|
|
|
|
|
"author_id": msg["from"]["id"],
|
|
|
|
|
"message_id": mid,
|
|
|
|
|
"chat_id": cid
|
|
|
|
|
}))
|
2023-04-24 06:16:28 +00:00
|
|
|
|
|
2023-04-23 16:54:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def handle_answer(msg):
|
2023-04-24 06:14:35 +00:00
|
|
|
|
answered_msg = msg['reply_to_message']
|
2023-04-29 20:37:28 +00:00
|
|
|
|
r = get_chat_administrators(msg['chat']['id'])
|
|
|
|
|
print(r)
|
2023-05-01 16:31:17 +00:00
|
|
|
|
admins = []
|
2023-04-29 20:37:28 +00:00
|
|
|
|
for a in r['result']:
|
|
|
|
|
admins.append(a['user']['id'])
|
|
|
|
|
if answered_msg['from']['is_bot'] and msg['from']['id'] in admins:
|
2023-04-24 06:14:35 +00:00
|
|
|
|
support_msg_id = str(answered_msg['message_id'])
|
|
|
|
|
# получение сохраненного информации о сообщении для ответа
|
|
|
|
|
stored_feedback = storage.get(f'fbk-{support_msg_id}')
|
|
|
|
|
if stored_feedback:
|
2023-09-11 17:02:29 +00:00
|
|
|
|
print('handle an answer from feedback group')
|
2023-04-24 06:14:35 +00:00
|
|
|
|
stored_feedback = json.loads(stored_feedback)
|
|
|
|
|
r = send_message(f'{stored_feedback["chat_id"]}', msg['text'], reply_to=stored_feedback["message_id"])
|
|
|
|
|
print(r)
|
2023-04-23 16:54:58 +00:00
|
|
|
|
|