welcomecenterbot/handlers/handle_private.py

41 lines
1.6 KiB
Python
Raw Normal View History

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 19:37:00 +00:00
from 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"
if text.startswith("/"):
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 12:13:51 +00:00
elif text.startswith('/message'):
await edit_announce(msg)
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)