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