fix with html tags

This commit is contained in:
2024-10-31 21:58:46 +03:00
parent 5050767b60
commit 5c3fece394
9 changed files with 207 additions and 185 deletions

View File

@@ -1,3 +1,4 @@
import html
import traceback import traceback
from aiogram import Router, F from aiogram import Router, F
@@ -33,109 +34,121 @@ BotDB = bdf.get_db()
async def post_for_group(call: CallbackQuery, state: FSMContext): async def post_for_group(call: CallbackQuery, state: FSMContext):
logger.info( logger.info(
f'Получен callback-запрос с действием: {call.data} от пользователя {call.from_user.full_name} (ID сообщения: {call.message.message_id})') f'Получен callback-запрос с действием: {call.data} от пользователя {call.from_user.full_name} (ID сообщения: {call.message.message_id})')
text_post = html.escape(str(call.message.text))
text_post_with_photo = html.escape(str(call.message.caption))
if call.message.content_type == 'text' and call.message.text != "^": if call.message.content_type == 'text' and call.message.text != "^":
try: try:
# Пересылаем сообщение в канал # Пересылаем сообщение в канал
await send_text_message(MAIN_PUBLIC, call.message, call.message.text) await send_text_message(MAIN_PUBLIC, call.message, text_post)
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки # Получаем из базы автора
author_id = BotDB.get_author_id_by_message_id(call.message.message_id) author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
# Очищаем предложку и удаляем оттуда пост # Очищаем предложку и удаляем оттуда пост
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id) await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
logger.info(f'Текст сообщения опубликован в канале {MAIN_PUBLIC}.') logger.info(f'Текст сообщения опубликован в канале {MAIN_PUBLIC}.')
await call.answer(text='Выложено!', show_alert=True, cache_time=3) await call.answer(text='Выложено!', cache_time=3)
# Отвечаем пользователю
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
except Exception as e: except Exception as e:
await call.bot.send_message(chat_id=IMPORTANT_LOGS, if e.message != 'Forbidden: bot was blocked by the user':
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}") await call.bot.send_message(chat_id=IMPORTANT_LOGS,
logger.error(f'Ошибка при публикации текста в канал {MAIN_PUBLIC}: {str(e)}') text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3) logger.error(f'Ошибка при публикации текста в канал {MAIN_PUBLIC}: {str(e)}')
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3)
elif call.message.content_type == 'photo': elif call.message.content_type == 'photo':
try: try:
await send_photo_message(MAIN_PUBLIC, call.message, call.message.photo[-1].file_id, call.message.caption) await send_photo_message(MAIN_PUBLIC, call.message, call.message.photo[-1].file_id, text_post_with_photo)
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки # Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
author_id = BotDB.get_author_id_by_message_id(call.message.message_id) author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
# Удаляем пост из предложки # Удаляем пост из предложки
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id) await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
logger.info(f'Пост с фото опубликован в канале {MAIN_PUBLIC}.') logger.info(f'Пост с фото опубликован в канале {MAIN_PUBLIC}.')
await call.answer(text='Выложено!', show_alert=True, cache_time=3) await call.answer(text='Выложено!', cache_time=3)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
except Exception as e: except Exception as e:
await call.bot.send_message(chat_id=IMPORTANT_LOGS, if e.message != 'Forbidden: bot was blocked by the user':
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}") await call.bot.send_message(chat_id=IMPORTANT_LOGS,
logger.error(f'Ошибка при публикации фотографии в канал {MAIN_PUBLIC}: {str(e)}') text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3) logger.error(f'Ошибка при публикации фотографии в канал {MAIN_PUBLIC}: {str(e)}')
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3)
elif call.message.content_type == 'video': elif call.message.content_type == 'video':
try: try:
await send_video_message(MAIN_PUBLIC, call.message, call.message.video.file_id, call.message.caption) await send_video_message(MAIN_PUBLIC, call.message, call.message.video.file_id, text_post_with_photo)
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки # Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
author_id = BotDB.get_author_id_by_message_id(call.message.message_id) author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id) await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
logger.info(f'Пост с видео опубликован в канале {MAIN_PUBLIC}.') logger.info(f'Пост с видео опубликован в канале {MAIN_PUBLIC}.')
await call.answer(text='Выложено!', show_alert=True, cache_time=3) await call.answer(text='Выложено!', cache_time=3)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
except Exception as e: except Exception as e:
await call.bot.send_message(chat_id=IMPORTANT_LOGS, if e.message != 'Forbidden: bot was blocked by the user':
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}") await call.bot.send_message(chat_id=IMPORTANT_LOGS,
logger.error(f'Ошибка при публикации видео в канал {MAIN_PUBLIC}: {str(e)}') text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3) logger.error(f'Ошибка при публикации видео в канал {MAIN_PUBLIC}: {str(e)}')
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3)
elif call.message.content_type == 'video_note': elif call.message.content_type == 'video_note':
try: try:
await send_video_note_message(MAIN_PUBLIC, call.message, call.message.video_note.file_id) await send_video_note_message(MAIN_PUBLIC, call.message, call.message.video_note.file_id)
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки # Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
author_id = BotDB.get_author_id_by_message_id(call.message.message_id) author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id) await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
logger.info(f'Пост с кружком опубликован в канале {MAIN_PUBLIC}.') logger.info(f'Пост с кружком опубликован в канале {MAIN_PUBLIC}.')
await call.answer(text='Выложено!', show_alert=True, cache_time=3) await call.answer(text='Выложено!', cache_time=3)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
except Exception as e: except Exception as e:
await call.bot.send_message(chat_id=IMPORTANT_LOGS, if e.message != 'Forbidden: bot was blocked by the user':
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}") await call.bot.send_message(chat_id=IMPORTANT_LOGS,
logger.error(f'Ошибка при публикации кружка в канал {MAIN_PUBLIC}: {str(e)}') text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3) logger.error(f'Ошибка при публикации кружка в канал {MAIN_PUBLIC}: {str(e)}')
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3)
elif call.message.content_type == 'audio': elif call.message.content_type == 'audio':
try: try:
await send_audio_message(MAIN_PUBLIC, call.message, call.message.audio.file_id, call.message.caption) await send_audio_message(MAIN_PUBLIC, call.message, call.message.audio.file_id, text_post_with_photo)
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки # Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
author_id = BotDB.get_author_id_by_message_id(call.message.message_id) author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id) await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
logger.info(f'Пост с аудио опубликован в канале {MAIN_PUBLIC}.') logger.info(f'Пост с аудио опубликован в канале {MAIN_PUBLIC}.')
await call.answer(text='Выложено!', show_alert=True, cache_time=3) await call.answer(text='Выложено!', cache_time=3)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
except Exception as e: except Exception as e:
await call.bot.send_message(chat_id=IMPORTANT_LOGS, if e.message != 'Forbidden: bot was blocked by the user':
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}") await call.bot.send_message(chat_id=IMPORTANT_LOGS,
logger.error(f'Ошибка при публикации аудио в канал {MAIN_PUBLIC}: {str(e)}') text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3) logger.error(f'Ошибка при публикации аудио в канал {MAIN_PUBLIC}: {str(e)}')
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3)
elif call.message.content_type == 'voice': elif call.message.content_type == 'voice':
try: try:
await send_voice_message(MAIN_PUBLIC, call.message, call.message.voice.file_id) await send_voice_message(MAIN_PUBLIC, call.message, call.message.voice.file_id)
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки # Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
author_id = BotDB.get_author_id_by_message_id(call.message.message_id) author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id) await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
logger.info(f'Пост с войсом опубликован в канале {MAIN_PUBLIC}.') logger.info(f'Пост с войсом опубликован в канале {MAIN_PUBLIC}.')
await call.answer(text='Выложено!', show_alert=True, cache_time=3) await call.answer(text='Выложено!', cache_time=3)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
except Exception as e: except Exception as e:
await call.bot.send_message(chat_id=IMPORTANT_LOGS, if e.message != 'Forbidden: bot was blocked by the user':
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}") await call.bot.send_message(chat_id=IMPORTANT_LOGS,
logger.error(f'Ошибка при публикации войса в канал {MAIN_PUBLIC}: {str(e)}') text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3) logger.error(f'Ошибка при публикации войса в канал {MAIN_PUBLIC}: {str(e)}')
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3)
elif call.message.text == "^": elif call.message.text == "^":
# Получаем контент медиагруппы и текст для публикации # Получаем контент медиагруппы и текст для публикации
post_content = BotDB.get_post_content_from_telegram_by_last_id(call.message.message_id) post_content = BotDB.get_post_content_from_telegram_by_last_id(call.message.message_id)
post_text = BotDB.get_post_text_from_telegram_by_last_id(call.message.message_id) pre_text = BotDB.get_post_text_from_telegram_by_last_id(call.message.message_id)
post_text = html.escape(str(pre_text))
# Готовим список для удаления # Готовим список для удаления
post_ids = BotDB.get_post_ids_from_telegram_by_last_id(call.message.message_id) post_ids = BotDB.get_post_ids_from_telegram_by_last_id(call.message.message_id)
@@ -148,11 +161,12 @@ async def post_for_group(call: CallbackQuery, state: FSMContext):
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки # Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
author_id = BotDB.get_author_id_by_helper_message_id(call.message.message_id) author_id = BotDB.get_author_id_by_helper_message_id(call.message.message_id)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
# TODO: Удалить фотки с локалки после выкладки? # TODO: Удалить фотки с локалки после выкладки?
await call.bot.delete_messages(chat_id=GROUP_FOR_POST, message_ids=message_ids) await call.bot.delete_messages(chat_id=GROUP_FOR_POST, message_ids=message_ids)
await call.answer(text='Выложено!', show_alert=True, cache_time=3) await call.answer(text='Выложено!', cache_time=3)
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
@callback_router.callback_query( @callback_router.callback_query(
@@ -169,11 +183,11 @@ async def decline_post_for_group(call: CallbackQuery, state: FSMContext):
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки # Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
author_id = BotDB.get_author_id_by_message_id(call.message.message_id) author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
await send_text_message(author_id, call.message, 'Твой пост был отклонен😔')
logger.info( logger.info(
f'Сообщение отклонено админом {call.from_user.full_name} (ID: {call.from_user.id}).') f'Сообщение отклонено админом {call.from_user.full_name} (ID: {call.from_user.id}).')
await call.answer(text='Отклонено!', show_alert=True, cache_time=3) await call.answer(text='Отклонено!', cache_time=3)
await send_text_message(author_id, call.message, 'Твой пост был отклонен😔')
if call.message.text == '^': if call.message.text == '^':
post_ids = BotDB.get_post_ids_from_telegram_by_last_id(call.message.message_id) post_ids = BotDB.get_post_ids_from_telegram_by_last_id(call.message.message_id)
message_ids = [row[0] for row in post_ids] message_ids = [row[0] for row in post_ids]
@@ -183,14 +197,16 @@ async def decline_post_for_group(call: CallbackQuery, state: FSMContext):
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки # Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
author_id = BotDB.get_author_id_by_helper_message_id(call.message.message_id) author_id = BotDB.get_author_id_by_helper_message_id(call.message.message_id)
await send_text_message(author_id, call.message, 'Твой пост был отклонен😔')
await call.answer(text='Удалено!', show_alert=True, cache_time=3) await call.answer(text='Удалено!', cache_time=3)
await send_text_message(author_id, call.message, 'Твой пост был отклонен😔')
except Exception as e: except Exception as e:
await call.bot.send_message(IMPORTANT_LOGS, if e.message != 'Forbidden: bot was blocked by the user':
f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}") await call.bot.send_message(IMPORTANT_LOGS,
logger.error(f'Ошибка при удалении сообщения в группе {GROUP_FOR_POST}: {str(e)}') f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3) logger.error(f'Ошибка при удалении сообщения в группе {GROUP_FOR_POST}: {str(e)}')
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3)
@callback_router.callback_query( @callback_router.callback_query(

View File

@@ -52,7 +52,7 @@ async def handle_start_message(message: types.Message, state: FSMContext):
await message.forward(chat_id=GROUP_FOR_LOGS) await message.forward(chat_id=GROUP_FOR_LOGS)
full_name = message.from_user.full_name full_name = message.from_user.full_name
username = message.from_user.username username = message.from_user.username
first_name = message.from_user.first_name first_name = get_first_name(message)
is_bot = message.from_user.is_bot is_bot = message.from_user.is_bot
language_code = message.from_user.language_code language_code = message.from_user.language_code
user_id = message.from_user.id user_id = message.from_user.id
@@ -86,10 +86,9 @@ async def handle_start_message(message: types.Message, state: FSMContext):
await message.bot.send_message(chat_id=IMPORTANT_LOGS, await message.bot.send_message(chat_id=IMPORTANT_LOGS,
text=f"Произошла ошибка при получении стикеров: {str(e)}\n\nTraceback:\n{traceback.format_exc()}") text=f"Произошла ошибка при получении стикеров: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
try: try:
markup = get_reply_keyboard(BotDB, message.from_user.id) markup = get_reply_keyboard(BotDB, message.from_user.id)
hello_message = messages.get_message(get_first_name(message), 'HELLO_MESSAGE') hello_message = messages.get_message(get_first_name(message), 'HELLO_MESSAGE')
await message.answer(hello_message, reply_markup=markup) await message.answer(hello_message, reply_markup=markup, parse_mode='HTML')
except Exception as e: except Exception as e:
logger.error( logger.error(
f"Произошла ошибка при отправке приветственного сообщения для пользователя {message.from_user.id} Имя: {message.from_user.full_name}. Ошибка: {str(e)}") f"Произошла ошибка при отправке приветственного сообщения для пользователя {message.from_user.id} Имя: {message.from_user.full_name}. Ошибка: {str(e)}")
@@ -169,14 +168,19 @@ async def end_message(message: types.Message, state: FSMContext):
async def suggest_router(message: types.Message, state: FSMContext, album: list = None): async def suggest_router(message: types.Message, state: FSMContext, album: list = None):
logger.info( logger.info(
f"Вызов функции suggest_router. Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}") f"Вызов функции suggest_router. Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
first_name = get_first_name(message)
try: try:
post_caption = '' post_caption = ''
if message.media_group_id is not None:
await send_text_message(GROUP_FOR_LOGS, message,
f'Закинул медиагруппу, пользователь: имя - {first_name}, ник - {message.from_user.username}')
else:
await message.forward(chat_id=GROUP_FOR_LOGS)
if message.content_type == 'text': if message.content_type == 'text':
lower_text = message.text.lower() lower_text = message.text.lower()
# Получаем текст сообщения и преобразовываем его по правилам # Получаем текст сообщения и преобразовываем его по правилам
post_text = get_text_message(lower_text, message.from_user.full_name, post_text = get_text_message(lower_text, first_name,
message.from_user.username) message.from_user.username)
# Получаем клавиатуру для поста # Получаем клавиатуру для поста
markup = get_reply_keyboard_for_post() markup = get_reply_keyboard_for_post()
@@ -188,7 +192,7 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
# Отправляем юзеру ответ, что сообщение отравлено и возвращаем его в меню # Отправляем юзеру ответ, что сообщение отравлено и возвращаем его в меню
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id) markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
success_send_message = messages.get_message(get_first_name(message), 'SUCCESS_SEND_MESSAGE') success_send_message = messages.get_message(first_name, 'SUCCESS_SEND_MESSAGE')
await message.answer(success_send_message, reply_markup=markup_for_user) await message.answer(success_send_message, reply_markup=markup_for_user)
await state.set_state("START") await state.set_state("START")
@@ -196,7 +200,7 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
if message.caption: if message.caption:
lower_caption = message.caption.lower() lower_caption = message.caption.lower()
# Получаем текст сообщения и преобразовываем его по правилам # Получаем текст сообщения и преобразовываем его по правилам
post_caption = get_text_message(lower_caption, message.from_user.full_name, post_caption = get_text_message(lower_caption, first_name,
message.from_user.username) message.from_user.username)
markup = get_reply_keyboard_for_post() markup = get_reply_keyboard_for_post()
@@ -209,14 +213,14 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
# Отправляем юзеру ответ и возвращаем его в меню # Отправляем юзеру ответ и возвращаем его в меню
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id) markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
success_send_message = messages.get_message(get_first_name(message), 'SUCCESS_SEND_MESSAGE') success_send_message = messages.get_message(first_name, 'SUCCESS_SEND_MESSAGE')
await message.answer(success_send_message, reply_markup=markup_for_user) await message.answer(success_send_message, reply_markup=markup_for_user)
await state.set_state("START") await state.set_state("START")
elif message.content_type == 'video' and message.media_group_id is None: elif message.content_type == 'video' and message.media_group_id is None:
if message.caption: if message.caption:
lower_caption = message.caption.lower() lower_caption = message.caption.lower()
post_caption = get_text_message(lower_caption, message.from_user.full_name, post_caption = get_text_message(lower_caption, first_name,
message.from_user.username) message.from_user.username)
markup = get_reply_keyboard_for_post() markup = get_reply_keyboard_for_post()
# Получаем текст сообщения и преобразовываем его по правилам # Получаем текст сообщения и преобразовываем его по правилам
@@ -235,7 +239,7 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
# Отправляем юзеру ответ и возвращаем его в меню # Отправляем юзеру ответ и возвращаем его в меню
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id) markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
success_send_message = messages.get_message(get_first_name(message), 'SUCCESS_SEND_MESSAGE') success_send_message = messages.get_message(first_name, 'SUCCESS_SEND_MESSAGE')
await message.answer(success_send_message, reply_markup=markup_for_user) await message.answer(success_send_message, reply_markup=markup_for_user)
await state.set_state("START") await state.set_state("START")
@@ -252,7 +256,7 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
# Отправляем юзеру ответ и возвращаем его в меню # Отправляем юзеру ответ и возвращаем его в меню
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id) markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
success_send_message = messages.get_message(get_first_name(message), 'SUCCESS_SEND_MESSAGE') success_send_message = messages.get_message(first_name, 'SUCCESS_SEND_MESSAGE')
await message.answer(success_send_message, reply_markup=markup_for_user) await message.answer(success_send_message, reply_markup=markup_for_user)
await state.set_state("START") await state.set_state("START")
@@ -260,7 +264,7 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
if message.caption: if message.caption:
lower_caption = message.caption.lower() lower_caption = message.caption.lower()
# Получаем текст сообщения и преобразовываем его по правилам # Получаем текст сообщения и преобразовываем его по правилам
post_caption = get_text_message(lower_caption, message.from_user.full_name, post_caption = get_text_message(lower_caption, first_name,
message.from_user.username) message.from_user.username)
markup = get_reply_keyboard_for_post() markup = get_reply_keyboard_for_post()
@@ -274,7 +278,7 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
# Отправляем юзеру ответ и возвращаем его в меню # Отправляем юзеру ответ и возвращаем его в меню
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id) markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
success_send_message = messages.get_message(get_first_name(message), 'SUCCESS_SEND_MESSAGE') success_send_message = messages.get_message(first_name, 'SUCCESS_SEND_MESSAGE')
await message.answer(success_send_message, reply_markup=markup_for_user) await message.answer(success_send_message, reply_markup=markup_for_user)
await state.set_state("START") await state.set_state("START")
@@ -291,7 +295,7 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
# Отправляем юзеру ответ и возвращаем его в меню # Отправляем юзеру ответ и возвращаем его в меню
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id) markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
success_send_message = messages.get_message(get_first_name(message), 'SUCCESS_SEND_MESSAGE') success_send_message = messages.get_message(first_name, 'SUCCESS_SEND_MESSAGE')
await message.answer(success_send_message, reply_markup=markup_for_user) await message.answer(success_send_message, reply_markup=markup_for_user)
await state.set_state("START") await state.set_state("START")
@@ -301,7 +305,7 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
# Получаем сообщение и проверяем есть ли подпись. Если подпись есть, то преобразуем ее через функцию # Получаем сообщение и проверяем есть ли подпись. Если подпись есть, то преобразуем ее через функцию
if album[0].caption: if album[0].caption:
lower_caption = album[0].caption.lower() lower_caption = album[0].caption.lower()
post_caption = get_text_message(lower_caption, message.from_user.full_name, post_caption = get_text_message(lower_caption, first_name,
message.from_user.username) message.from_user.username)
# Иначе обрабатываем фото и получаем медиагруппу # Иначе обрабатываем фото и получаем медиагруппу
@@ -321,7 +325,7 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
# Получаем клавиатуру для пользователя, благодарим за пост, и возвращаем в дефолтное сообщение # Получаем клавиатуру для пользователя, благодарим за пост, и возвращаем в дефолтное сообщение
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id) markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
success_send_message = messages.get_message(get_first_name(message), 'SUCCESS_SEND_MESSAGE') success_send_message = messages.get_message(first_name, 'SUCCESS_SEND_MESSAGE')
await message.answer(success_send_message, reply_markup=markup_for_user) await message.answer(success_send_message, reply_markup=markup_for_user)
await state.set_state("START") await state.set_state("START")
else: else:

View File

@@ -1,3 +1,4 @@
import html
import os import os
from datetime import datetime, timedelta from datetime import datetime, timedelta
@@ -13,7 +14,8 @@ BotDB = bdf.get_db()
def get_first_name(message: types.Message) -> str: def get_first_name(message: types.Message) -> str:
return message.from_user.first_name first_name = html.escape(message.from_user.first_name)
return first_name
def get_text_message(post_text: str, first_name: str, username: str): def get_text_message(post_text: str, first_name: str, username: str):