Skip to content

pas-zhukov/space-telegram

Repository files navigation

Space Telegram Bot and Parsers (NASA, SpaceX)


Телеграм-бот для автоматической публикации фотографий космоса от NASA и SpaceX в выбранном телеграм-канале.

Проект состоит из двух основных частей:

  • Парсеры фотографий на базе API NASA, SpaceX
  • Телеграм-бот

Можно использовать в работе только одну из них или обе.

Установка зависимостей

Первым делом, скачайте код:

git clone https://github.com/pas-zhukov/space-telegram.git

Для работы скриптов понадобятся библиотеки, перечисленные в reqirements.txt. Их можно установить при помощи pip:

pip install -r requirements.txt

Переменные окружения

Для работы скриптов рядом с ними необходимо положить файл .env со следующими полями:

Обязательные переменные:

  • IMAGES_PATH - путь к папке с изображениями. Туда будут скачиваться новые, и оттуда же будут браться файлы для постинга в канале. Например, images.

Переменные, необходимые для работы парсеров:

  • NASA_API_KEY - ключ API NASA. Получить можно здесь.

Переменные, необходимые для работы Телеграм-бота:

Запуск парсеров

Парсер SpaceX

Данный скрипт загружает фотографии с запуска ракеты SpaceX. По умолчанию скачивает фотографии с последнего запуска, на котором делались фотографии:

python fetch_spacex_images.py

При необходимости, можно скачать фотографии конкретного запуска, используя ID запуска:

python fetch_spacex_images.py -id <ID запуска>

Например:

python fetch_spacex_images.py -id 5eb87d42ffd86e000604b384

Парсеры EPIC и APOD (NASA)

Парсеры Astronomy Picture of the Day (APOD) и Earth Polychromatic Imaging Camera (EPIC) работают аналогично друг другу, по умолчанию загружают по 10 фотографий.

APOD Parser:

python fetch_nasa_apod_images.py

EPIC Parser:

python fetch_nasa_epic_images.py

Каждый из них поддерживает возможность указать количество изображений для загрузки.

APOD Parser:

python fetch_nasa_apod_images.py -c <кол-во изображений>

EPIC Parser:

python fetch_nasa_epic_images.py -c <кол-во изображений>

Например, такой вызов загрузит 5 EPIC фотографий:

python fetch_nasa_epic_images.py -c 5

Скрипт для ручной публикации

Чтобы опубликовать конкретную картинку, можно воспользоваться вспомогательным скриптом:

python space_bot_publish.py -p <путь к файлу с картинкой>

Если не указать аргумент -r, скрипт опубликует случайную картинку из папки, указанной в переменной окружения IMAGES_PATH.

Запуск бота

Бот публикует изображения с заданной периодичностью. Перед запуском необходимо скачать картинки (парсерами или вручную), они должны быть размещены в директории, указанной в переменной окружения IMAGES_PATH.

  1. Создать бота, поместить токен в .env (см. инструкцию выше).
  2. Создать Telgram-канал, сделать бота администратором в этом канале. Поместить имя канала в .env (см. инструкцию выше).
  3. Запустить бота командой:
python space_autopublishing.py -d <периодичность публикаций в часах>

Если не указать параметр -d, то по умолчанию бот будет постить фотографии каждые 4 часа:

python space_autopublishing.py

Если фотографии в папке закончатся, бот перемешает их и начнёт публиковать заново с той же периодичностью.

Цели проекта

Код написан в учебных целях.

About

Бот для автопостинга фотографий космоса от NASA и SpaceX в выбранном канале.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages