Предисловие
Данное обучение будет полезно тем, кто хочет делать рассылку пользователям, которые отписали боту и попали в базу данных. Это продолжение прошлого урока, в котором мы научились добавлять пользователей в базу данных MongoDB.
Здесь мы рассмотрим простой скрипт для рассылок, а в будущем я планирую рассказать как интегрировать полноценную админ панель с рассылкой, но в любом случае, он базирован на том, что мы сейчас напишем.
Вот пример лайтовой админки на одном из наших проектов:
Никнеймы зарисованы по понятным причинам.
Также познакомимся с конструкцией try:
чтобы рассылка не прерывалась, если бот к примеру заблокирован пользователем, или возникла какая-то ошибка.
Реализация
Реализация на удивление проста.
Создадим файл sender.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
from db import users_db from bot import bot def send_message_to_all_users(message: str): # Функция для рассылки, принимает сообщение if message != '': # Перебираем всех пользователей в бд for user in users_db.find(): # Пытаемся отправить сообщение try: bot.send_message(user['chat_id'], message) # Если какая-то ошибка - выводим это except Exception as e: print('Something wrong') if __name__ == '__main__': # Считываем сообщение с клавиатуры input_message = input('Введите сообщение для рассылки: ') send_message_to_all_users(input_message) |
Вот так выглядит элементарная рассылка. Ее можно выполнять пока бот работает. Достаточно открыть второй терминал/консоль и ввести
1 |
python3 sender.py |
Дальше вводим запрашиваемое сообщение и проверяем, сработала ли рассылка.
Все пришло!)
На всякий случай вот код урока на github.
Спасибо за внимание!
<- Третья часть | Пятая часть ->
Всего комментариев: 0