Skip to content

Latest commit

 

History

History
156 lines (107 loc) · 7.84 KB

README.md

File metadata and controls

156 lines (107 loc) · 7.84 KB

Установка

1. Создание бота

  1. Пишем в Telegram боту @BotFather, шлём ему команду /new_bot, вводим название и никнейм бота, следуя инструкциям, получаем Token типа 1234567890:Qweufgyewhfhus3FUEhufw.
  2. Копируем токен и открываем файл bot_config.py в блокноте или другом редакторе. Вставляем Token между скобок в переменную bot_token

2. Деплой Heroku

Просто нажмите на кнопку:

Deploy

Или:

  1. Заходим на https://www.heroku.com/, регистрируем новый аккаунт (Кнопка Sign Up).
  2. В графе Role выбираем Hobbyist, в графе Primary development language выбираем Python.
  3. Подтверждаем почту, создаём пароль для аккаунта.
  4. Надимает на синюю кнопку Click here to proceed. Попадаем в личный кабинет.
  5. Нажимаем на кноку Create new app, вводим имя приложения (например, article-telegram-bot, без разницы), в Region ставим Europe
  6. Скачиваем и устанавливаем Heroku-CLI: https://devcenter.heroku.com/articles/heroku-cli#download-and-install
    Желательно перезагрузитьь компьютер после установки.
  7. В первом шаге установщика проставляем все 3 галочки, далее-установить.
  8. Открываем консоль, пишем в неё heroku login и нажимаем Enter. Открывается браузер, логинимся. Теперь мы залогинены в консоли. Больше логиниться не нужно.
  9. Переходим на страницу https://www.heroku.com/postgres, нажимаем на синюю кнопку Choose a plan, далее на Install Heroku Postgres
  10. В Add-on plan ставим Hobby Dev - Free, ниже в строке ищем своё приложение по имени (article-telegram-bot, например).
  11. Жмём на Provision add-on, база данных соединена, жмём на название Heroku Postgres, ждём, попадаем в дашборд базы данных.
  12. Переходим во вкладку Settings, жмём на кнопку View Credentials…, в списке видим URI (postgres://qweqwrqwrqrw:6da4....), полностью копируем его и вставляем в файл bot_config.py в переменную database_url.
  13. Скачиваем и устанавливаем Git по ссылке https://gitforwindows.org/, не трогая галочки.
  14. Желательно перезагрузить компьютер после установки.
  15. Открываем консоль и прописываем команды по очереди:
cd путь/до/папки/с/проектом/article-telegram-bot
git init
git add .  # Точка в конце обязательна
git commit -m "Commit"
heroku git:remote -a app-name  # Вместо "app-name" имя своего приложения
git push heroku master`

3. Запуск

Бот залит на Heroku и готов к работе.

Запускаем бота:

heroku ps:scale worker=1

Смотрим логи бота в реальном времени:

heroku logs --source app --tail

После этой команды в консоли отобразятся логи.
Чтобы выйти из логов, нажимаем клавиши Ctrl+C и клавишу "Y',

Останавливаем бота:

heroku ps:scale worker=0

Настройка бота

Добавление пользователя

После того, как бот запущен, вы можете добавить пользователя для получения рассылки. Для этого нужно в Telegram отправить боту команду /subscribe. Теперь вы будете получать новые статьи.

Конфигурационный файл

В конфигурационном файле bot_config.py вы можете изменить настройки:

user_secret - Переменная для защиты от левых пользователей ботом. Можно вставить в неё строчку пароля в кавычках ("123qwe"), тогда для добавления пользователя нужно будет отправить эту строку боту, команда /subscribe не сработает.
key_words - Переменная для добавления ключевых слов для статей. Ключевые слова разделяются символом | и должны быть без окончаний, чтобы для текстов России и Россия одновременно работало ключевое слово Росси. Если ключевое слово может находиться не там, где нужно, например, в частях ненужных слов, ставим перед ключевым словом символ \b - (\bРосси). В начале всей строки перед кавычками должен быть знак r (r"\bросси|\bукраин"). В конце всех ключевых слов знака | быть не должно!

Применяем изменения конфигурационного файла

Прописываем команды по одной:

heroku ps:scale worker=0
cd путь/до/папки/с/проектом/article-telegram-bot
git init
git add .
git commit -m "Commit"
git push heroku master
heroku ps:scale worker=1

Смотрим логи

Просмотр работы бота

В консоли запускаем команду:

heroku logs --source app --tail

Теперь записи логов в реальном времени будут отображаться в консоли.

Нажимаем клавиши Ctrl+C и клавишу Y, чтобы выйти из логов.

Описание записей логов

  • Дата записи лога:
2019-10-11T22:01:42.362278+00:00 app[worker.1]: ...

  • бот получает на сайте BBC (BbcParser) последние статьи и сканирует их на предмет новых статей.
BbcParser: Get new articles list...

  • Найдена статья
>> iAoHNYsR - ---------------------------------
>> РИА Новости - 00:51 12.10.2019 - Путин - президент мира - https://ria.ru/123123123/333213231.html
>> Match:россия

Описание:

>> [Системный ID статьи] - ---------------------------------`
>> [Сайт источника] - [Дата загрузки статьи на сайт] - [Заголовок статьи] - [Ссылка на статью]`
>> Match: [Найденные в тексте статьи ключевые статьи]

  • Бот обнаружил новую статью. Получает её текст и сканирует на предмет ключевых слов:
>> ReutersParser: Get article: /article/us-usa-election-religion/qweqwe

  • Бот пытается отправить сообщение пользователю с ID 12345678. ID статьи - iAoHNYsR.
>> Bot: User 12345678 - iAoHNYsR - Try to send message...