mirror of
https://github.com/civsocit/olgram.git
synced 2025-05-28 21:23:26 +00:00
Compare commits
3 Commits
2305590899
...
103618cbd2
Author | SHA1 | Date | |
---|---|---|---|
|
103618cbd2 | ||
|
7e4f671911 | ||
|
eca5c53233 |
|
@ -26,9 +26,12 @@ _redis: ty.Optional[Redis] = None
|
|||
|
||||
|
||||
def _get_translator(message: types.Message) -> ty.Callable:
|
||||
if not message.from_user.locale:
|
||||
try:
|
||||
if not message.from_user.locale:
|
||||
return _
|
||||
return translators.get(message.from_user.locale.language, _)
|
||||
except Exception:
|
||||
return _
|
||||
return translators.get(message.from_user.locale.language, _)
|
||||
|
||||
|
||||
async def init_redis():
|
||||
|
@ -89,8 +92,11 @@ async def send_user_message(message: types.Message, super_chat_id: int, bot, tag
|
|||
if message.from_user.username:
|
||||
user_info += " | @" + message.from_user.username
|
||||
user_info += f" | #ID{message.from_user.id}"
|
||||
if message.from_user.locale:
|
||||
user_info += f" | lang: {message.from_user.locale}"
|
||||
try:
|
||||
if message.from_user.locale:
|
||||
user_info += f" | lang: {message.from_user.locale}"
|
||||
except Exception:
|
||||
pass
|
||||
if message.forward_sender_name:
|
||||
user_info += f" | fwd: {message.forward_sender_name}"
|
||||
tag = await _redis.get(_tag_uid(bot.pk, message.from_user.id), encoding="utf-8")
|
||||
|
@ -219,7 +225,10 @@ async def handle_user_message(message: types.Message, super_chat_id: int, bot):
|
|||
send_auto = not await _redis.get(_last_message_uid(bot.pk, message.chat.id))
|
||||
await _redis.setex(_last_message_uid(bot.pk, message.chat.id), 60 * 60 * 3, 1)
|
||||
if send_auto or bot.enable_always_second_message:
|
||||
text_obj = await BotSecondMessage.get_or_none(bot=bot, locale=str(message.from_user.locale))
|
||||
try:
|
||||
text_obj = await BotSecondMessage.get_or_none(bot=bot, locale=str(message.from_user.locale))
|
||||
except Exception:
|
||||
text_obj = None
|
||||
return SendMessage(chat_id=message.chat.id, text=text_obj.text if text_obj else bot.second_text,
|
||||
parse_mode="HTML")
|
||||
|
||||
|
@ -280,7 +289,10 @@ async def handle_operator_message(message: types.Message, super_chat_id: int, bo
|
|||
# в супер-чате кто-то пишет сообщение сам себе, только для личных сообщений
|
||||
if bot.enable_mailing:
|
||||
asyncio.create_task(MailingUser.get_or_create(telegram_id=message.chat.id, bot=bot))
|
||||
await message.forward(super_chat_id)
|
||||
try:
|
||||
await message.forward(super_chat_id)
|
||||
except exceptions.MessageCantBeForwarded:
|
||||
await message.copy_to(super_chat_id)
|
||||
# И отправить пользователю специальный текст, если он указан
|
||||
if bot.second_text:
|
||||
return SendMessage(chat_id=message.chat.id, text=bot.second_text, parse_mode="HTML")
|
||||
|
@ -292,7 +304,10 @@ async def message_handler(message: types.Message, *args, **kwargs):
|
|||
|
||||
if message.text and message.text == "/start":
|
||||
# На команду start нужно ответить, не пересылая сообщение никуда
|
||||
text_obj = await BotStartMessage.get_or_none(bot=bot, locale=str(message.from_user.locale))
|
||||
try:
|
||||
text_obj = await BotStartMessage.get_or_none(bot=bot, locale=str(message.from_user.locale))
|
||||
except Exception:
|
||||
text_obj = None
|
||||
text = text_obj.text if text_obj else bot.start_text
|
||||
if bot.enable_olgram_text:
|
||||
text += _(ServerSettings.append_text())
|
||||
|
|
Loading…
Reference in New Issue
Block a user