Этот Telegram бот автоматически получает и отправляет новости в указанные группы из API сайта МГТУ "СТАНКИН". Бот периодически проверяет наличие новых новостей и отправляет их в Telegram группы, к которым он присоединен.
- Получает новости со страницы Единого деканата на сайте МГТУ "СТАНКИН" через API.
- Отправляет свежие новости в указанные группы Telegram.
- Автоматически добавляет новую группу в список рассылки, когда его добавляют в неё.
- Логирование всех операций в консоль и файл.
-
Клонируйте репозиторий:
git clone https://github.com/overklassniy/stankin_dean_news_bot.git cd stankin_dean_news_bot
-
Установите необходимые зависимости с использованием
pip
:pip install -r requirements.txt
-
Создайте файл
.env
в корне проекта и добавьте туда токен вашего Telegram бота:BOT_TOKEN=your_bot_token_here
-
Создайте файл
config.json
в корне проекта, используя следующий шаблон:{ "LOGS_DIR": "logs", "GROUPS_FILE": "data/groups.json", "LAST_NEWS_ID_FILE": "data/last_news_id.json", "REQUEST": { "URL": "https://stankin.ru/api_entry.php", "HEADERS": { "Accept": "application/json, text/plain, */*", "Content-Type": "application/json;charset=UTF-8", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36", "Origin": "https://stankin.ru", "Referer": "https://stankin.ru/subdivisions/id_125/news_1" }, "DATA": { "action": "getNews", "data": { "count": 9, "is_main": false, "page": 1, "pull_site": false, "query_search": "", "subdivision_id": 125, "tag": "" } } }, "NEWS_IMAGE_URL": "https://stankin.ru/uploads/files/file_66d589eacfa20.jpg", "SLEEP_TIME": 360 }
В файле config.json
вы можете настроить следующие параметры:
LOGS_DIR
: Директория, в которой будут сохраняться файлы логов.GROUPS_FILE
: Файл, в котором будет храниться список групп, в которые отправляются новости.LAST_NEWS_ID_FILE
: Файл, в котором будет храниться ID последней отправленной новости.REQUEST
: Параметры запроса.URL
: URL API, с которого бот будет получать новости.HEADERS
: HTTP заголовки, которые будут отправлены при запросе к API.DATA
: Тело запроса к API для получения новостей.
NEWS_IMAGE_URL
: Ссылка на изображение, которое будет прикрепляться к отправляемым новостям.SLEEP_TIME
: Время в секундах, задающее интервал между отправкой запросов.
Для запуска бота выполните следующую команду:
python main.py
Бот автоматически начнет проверку новостей и отправку их в группы.
- Добавление в группу: Чтобы бот начал отправлять новости в группу, достаточно добавить его в эту группу. Бот автоматически сохранит ID группы и начнет отправку новостей.
- Получение новостей: Бот периодически (каждые n секунд, заданных в config.json) проверяет наличие новых новостей и отправляет их в группы, если такие есть.
- Получение ссылки на GitHub репозиторий: Используйте
/code
в личных сообщениях бота, чтобы получить ссылку на этот репозиторий.
.
├── data/
│ └── groups.json # Файл с ID групп (создается автоматически)
│ └── last_news_id.json # Файл с последним ID новости (создается автоматически)
├── logs/ # Логи работы бота
├── main.py # Основной файл для запуска бота
├── utils.py # Утилиты и вспомогательные функции
├── config.json # Конфигурационный файл
├── .env # Файл для переменных окружения
├── requirements.txt # Список зависимостей
└── README.md # Документация
- Python - Используемый язык программирования
- aiogram - Фреймворк для асинхронной работы с Telegram Bot API
- aiohttp - Библиотека для асинхронных HTTP-запросов
- python-dotenv - Библиотека для работы с переменными окружения