2024-01-07 09:19:46 +00:00
|
|
|
from bot.config import FEEDBACK_CHAT_ID
|
|
|
|
from bot.announce import edit_announce
|
|
|
|
from bot.api import telegram_api
|
|
|
|
import logging
|
2024-09-26 22:45:52 +00:00
|
|
|
from utils.store import get_all_removed, get_average_toxic
|
2024-01-07 09:19:46 +00:00
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
logging.basicConfig(level=logging.INFO)
|
|
|
|
|
|
|
|
start_message = {
|
|
|
|
'en': "Welcome home! You can type any message here to be passed to chat",
|
|
|
|
'ru': "Доброе утро! Можешь напечатать здесь любое сообщение для передачи в чат"
|
|
|
|
}
|
|
|
|
|
2024-09-26 11:07:00 +00:00
|
|
|
|
2024-01-07 09:19:46 +00:00
|
|
|
async def handle_private(msg, state):
|
|
|
|
text = msg.get("text")
|
|
|
|
sender = msg.get("from", {})
|
2024-09-26 11:07:00 +00:00
|
|
|
uid = sender.get("id")
|
2024-01-07 09:19:46 +00:00
|
|
|
lang = sender.get("language_code", "ru")
|
|
|
|
if lang != "ru" and lang != "en":
|
|
|
|
lang = "en"
|
2024-09-26 20:16:56 +00:00
|
|
|
if text and text.startswith("/"):
|
2024-01-07 09:19:46 +00:00
|
|
|
if text == '/start':
|
2024-09-26 11:07:00 +00:00
|
|
|
await telegram_api("sendMessage", chat_id=uid, text=start_message[lang])
|
2024-09-26 19:52:47 +00:00
|
|
|
state['welcome'] = True
|
|
|
|
elif state.get('welcome'):
|
2024-09-26 12:13:51 +00:00
|
|
|
await edit_announce(msg)
|
2024-09-26 19:52:47 +00:00
|
|
|
state['welcome'] = False
|
2024-09-26 12:13:51 +00:00
|
|
|
return
|
2024-09-26 17:28:16 +00:00
|
|
|
elif text.startswith('/toxic'):
|
2024-09-26 19:42:21 +00:00
|
|
|
toxic_score = await get_average_toxic(msg)
|
2024-09-26 17:28:16 +00:00
|
|
|
text = f"Средняя токсичность сообщений: {toxic_score}%"
|
|
|
|
await telegram_api("sendMessage", chat_id=uid, reply_to_message_id=msg.get("message_id"), text=text)
|
|
|
|
return
|
2024-09-26 11:07:00 +00:00
|
|
|
elif text == '/removed':
|
|
|
|
removed_messages = await get_all_removed(uid)
|
2024-09-26 16:43:39 +00:00
|
|
|
if removed_messages:
|
|
|
|
await telegram_api("sendMessage", chat_id=uid, text="\n\n".join(removed_messages))
|
2024-09-26 12:13:51 +00:00
|
|
|
return
|
2024-09-26 16:48:23 +00:00
|
|
|
|
2024-09-26 16:53:45 +00:00
|
|
|
await telegram_api("forwardMessage", from_chat_id=sender.get("id"), message_id=msg.get("message_id"), chat_id=FEEDBACK_CHAT_ID)
|