Этот проект для того, чтобы скачивать фото с разных разделов NASA, а именно: APOD (A Picture Of The Day) и EPIC (Earth Polychromatic Imaging Camera), а также с серверов SpaceX в больщих количествах, а после публиковать их в телеграм каналах при помощи бота.
На компьютере пользователя должен быть установлен Python3.
Затем используйте pip (или pip3, есть конфликт Python2) для установки зависимостей:
pip install -r requirments.txt
Рекомендуется использовать virtulenv/venv для изоляци проекта.
В данном проекте переменными окружения являются NASA_API_KEY, TELEGRAM_BOT_TOKEN и TG_CHAT_ID. В этих переменных хранятся ваш api key от сайта NASA, токен от вашего телеграм-бота и id от канала или чата в телеграме. Чтобы в этой переменной хранился ваши ключ и токен вам надо создать файл .env и в нём написать строки
NASA_API_KEY="Ваш ключ"
TELEGRAM_BOT_TOKEN="Ваш токен"
TG_CHAT_ID="Ваш id"
, где вместо "Ваш ключ" надо подставить api key без кавычек, вместо TELEGRAM_BOT_TOKEN - токен телеграм бота, а вместо TG_CHAT_ID - id от канала или чата в телеграме.
Для того, чтобы загрузить снимки космоса на свой компьютер вы можете воспользовать одним из 3 представленных скриптов:
fetch_spacex_images.py
fetch_EPIC_photos.py
fetch_apod_images.py
Чтобы воспользоваться любой из этих функций, вам надо перейти в командной строке в местоположение вашей директории с проектом и ввести эту команду
python script_name directory,
где вместо script_name вам надо ввести название одного из этих 3 скриптов, а вместо directory - то название директори, которое вы хотите.
Также в скрипте под названием fetch_spacex_photos.py Вам нужно после названия директории ввести id запуска:
python fetch_spacex_photos.py directory launch_id,
где вместо launch_id - вы вводите id запуска. Если не ввести id запуска то будут скачаны снимки с последнего запуска. Примерная команда в консоли должна выглядеть так:
python fetch_EPIC_photos.py images,
а для скрипта fetch_spacex_photos.py так:
python fetch_spacex_photos.py 5eb87d47ffd86e000604b38a images,
Примечание: У некоторых запусков может не быть снимков. Если их нет, то на экран выведется ошибка, однако по id запуска, указанного в примере, снимки есть, поэтому можно использоавть его.
Чтобы опубликовать фото вам нужно добавить Вашего бота в свой канал, перейти в командной строке в местонахождение вашей папки и написать эту команду
python space_photos_bot.py chat_id time image,
где вместо chat_id Вы должны написать id своего канала в Телеграм, вместо time - временной интервал, через который будет публиковаться картинка, а вместо image - название изображения (с указанием расширения).
Картинки будут браться из дериктори под названием images. Для того чтобы все корректно работало, Вам надо создать папку images и перенести туда все изображения
Чтобы узнать id своего Телеграм-канала вам надо перейти по этой ссылке и отправить боту приглашение в свой канал. После этого бот вернет вам id вашего канала.
Если вы не укажете название директории, временной интервал и название изображения, то будут указаны значения по умолчанию, а именно:
Директория - images,
Временной интервал - 14400 (4 часа),
Название изображения - случайное изображение из указанной директории
Chat_id указывать обязательно!
После того, как Вы введете эту команду в Ваш чат будет с указанным временным интервалом отправляться указанное или случайное (если не указали) изображение из указанной директории.
Код написан в образовательных целях на онлайн-курсе для веб-разработчиков dvmn.org.