bot_of_pray/python-bot/utils/message_sender.py

54 lines
2.0 KiB
Python

# utils/message_sender.py
from utils.logger import logger
from telegram import Update, Bot
from telegram.ext import CallbackContext
from telegram.error import TelegramError
from telegram.constants import ParseMode
async def send_message(
update: Update,
context: CallbackContext,
text: str,
parse_mode: str = ParseMode.HTML,
reply_markup=None,
disable_web_page_preview: bool = False,
chat_id: int = None,
):
try:
if chat_id:
# Отправка по указанному chat_id
await context.bot.send_message(
chat_id=chat_id,
text=text,
parse_mode=parse_mode,
reply_markup=reply_markup,
disable_web_page_preview=disable_web_page_preview
)
elif update.message:
# Отправка в ответ на сообщение
await update.message.reply_text(
text=text,
parse_mode=parse_mode,
reply_markup=reply_markup,
disable_web_page_preview=disable_web_page_preview
)
elif update.callback_query:
# Отправка в ответ на callback-запрос
await update.callback_query.message.reply_text(
text=text,
parse_mode=parse_mode,
reply_markup=reply_markup,
disable_web_page_preview=disable_web_page_preview
)
else:
raise ValueError("Некорректный тип обновления")
except TelegramError as e:
logger.error(f"Ошибка при отправке сообщения: {e}")
return False
return True
# Вспомогательная функция для получения всех ID (пример)
def get_all_user_ids():
# Здесь логика получения всех ID из базы данных
return [12345, 67890] # Пример списка ID