Skip to content

Scripts for automated downloading of space photos via NASA/SpaceX API and uploading to Telegram chat

License

dmitriev-ilya/SpaceTelegramBot

Repository files navigation

Автоматизированная загрузка фотографий космоса в Telegram-чат

Проект представляет собой набор скриптов для автоматизации сбора фотографий на космическую тематику и публикации их в Telegram-чате.

Основной скрипт запускает бота, который последовательно загружает фотографии в Telegram чат из выбранной директории, с задержкой публикации на указанное количество часов.

Навигация по скриптам:


Как установить

Python3 должен быть уже установлен. Затем используйте pip (или pip3, есть конфликт с Python2) для установки зависимостей:

pip install -r requirements.txt

Помимо этого, для работы понадобится создать файл .env в корневом каталоге проекта. Данный файл необходим для работы с переменными окружения и должен содержать в себе переменные:

NASA_API_KEY=<nasa_api_key>
TELEGRAM_TOKEN=<telegram_bot_token>
TELEGRAM_CHAT_ID=@<chat_id>

Для получения NASA_API_KEY необходимо сгенерировать ключ по ссылке API.NASA.

Также необходимо создать Telegram-бота, если он ещё не создан, для получения TELEGRAM_TOKEN. Для этого нужно обратиться к @BotFather. Подробная инструкция по настройке и созданию бота приведена здесь - Инструкция по созданию Telegram-бота

TELEGRAM_CHAT_ID - ссылка на публичный Telegram-канал (в формате @my_chanel), в котором будут публиковаться фотографии.

ВАЖНО! Бот должен быть Администратором вышеуказанного Telegram-канала.

Использование скриптов

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

Основной исполняемый скрипт main_script.py

Запускает бота, который последовательно загружает фотографии в Telegram-чат из выбранной директории, с задержкой публикации на указанное время. Работает в бесконечном цикле, когда фотографии для публикации заканчиваются - публикует этот же набор фотографий, но в другом порядке. Запускается из терминала или командной строки.

Имеет два аргумента:

  • --images_dir_path, -i - путь к папке с набором фотографий. По умолчанию - 'images'
  • --sleep_time, -s - время задержки публикации в часах. По умолчанию - 4 часа.

Пример запуска:

$python3 main_script.py -i pictures -s 2

Пример работы скрипта:

image

Вспомогательный скрипт image_bot.py

Бот загружает единичную фотографию в указанный Telegram-чат. Запускается из терминала или командной строки.

Принимает два обязательных аргумента:

  • --image_path, -i - путь к фотографии.
  • --chat_id, -id - ссылка на чат, в формате @my_tel_ch.

Пример запуска:

$python3 image_bot.py -i images/image_1 -id 2 @my_tel_ch.

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

Вспомогательный скрипт fetch_spacex_images.py

Через SpaceX-API загружает набор фотографий вылета от SpaceX по указанному ID запуска в каталог /images(при отсутствии создаёт его), если конкретный запуск не указан - загружает фото последнего запуска. Запускается из терминала или командной строки.

Принимает один аргумент:

  • --launch_id, -i - ID запуска, если не указан, то скачиваются фото последнего запуска

Пример запуска:

$python3 fetch_spacex_images.py --launch_id 5eb87d47ffd86e000604b38a

Вспомогательный скрипт fetch_nasa_apod.py

Через API.NASA загружает набор фотографий на космическую тему от NASA Astronomy Picture of the Day в каталог /images (при отсутствии создаёт его). Может загружать конкретное количество фотографий. Запускается из терминала или командной строки. Для работы требует NASA_API_KEY в .env.

Принимает один аргумент:

  • --count, -c - количество фото, которое необходимо скачать. По умолчанию - 30 шт.

Пример запуска:

$python3 fetch_nasa_apod.py --count 40

Вспомогательный скрипт fetch_nasa_epic.py

Через API.NASA загружает набор фотографий земли с разных ракурсов от NASA EPIC в каталог /images (при отсутствии создаёт его). Запускается из терминала или командной строки. Для работы требует NASA_API_KEY в .env.

Пример запуска:

$python3 fetch_nasa_epic.py

About

Scripts for automated downloading of space photos via NASA/SpaceX API and uploading to Telegram chat

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages