- The project is designed to download photos of space using the SpaceX API of Elon Musk and the NASA website, and their publications on the Telegram channel
- The project publishes in the Telegram channel photos from a given directory with a given frequency or a specifically selected photo
Python3 should already be installed. Then use pip (or pip3, there is a conflict with Python2) to install dependencies. Open the command line with the Win+R keys and enter:
pip install -r requirements.txt
It is recommended to use virtualenv/venv to isolate the project. (https://docs.python.org/3/library/venv.html)
Before starting, you need to create a file ".env" in PATH_TO_THE_FOLDER_WITH_SCRIPT\ and configure the environment variables by writing in it:
NASA_API_KEY=Your API_KEY
received on the site `` https://api.nasa.gov/#apod
TELEGRAM_BOT_TOKEN=Your bot token
received in Telegram using @BotFather
https://way23.ru/регистрация-бота-в-telegram.html
TELEGRAM_CHAT_ID - ID of your Telegram chanel or supergroup
How to know? See in
https://101info.ru/kak-uznat-id-kanala-telegram/#ID_канала
python PATH_TO_THE_FOLDER_WITH_SCRIPT\...
If you have installed a virtual environment, then the command can be entered without the path to the script Scripts for downloading photos work separately. The commands to run them have the following format:
python PATH_TO_THE_FOLDER_WITH_SCRIPT\fetch_spacex_images.py [-h] [id]
fetch_spacex_images.py - uploading all photos from the entered SpaceX launch code (by default, the last launch). Files are saved in the PATH_TO_THE_FOLDER_WITH_SCRIPT/Images/SpaceX/
python PATH_TO_THE_FOLDER_WITH_SCRIPT\fetch_nasa_epic_images.py [-h] [date_image]
fetch_nasa_apod_images.py - uploading a photo of the Earth from NASA EPIC by the entered date
- in the format DD.MM.YYYY (by default - the current date); Files are saved in the PATH_TO_THE_FOLDER_WITH_SCRIPT/Images/NASA/EPIC/
python PATH_TO_THE_FOLDER_WITH_SCRIPT\fetch_nasa_apod_images.py [-h] [start_date] [end_date]
fetch_nasa_apod_images.py - uploading photos from NASA APOD by entered dates from- to-
- start_date - start date in DD.MM.YYYY format (by default - current date);
- end_date - the end date in the format DD.MM.YYYY (by default - the current date);
python PATH_TO_THE_FOLDER_WITH_SCRIPT\image_time_post.py [-h] [directory] [pause]
image_time_post.py - a script for publishing photos. Publishes all photos from a given directory every few hours (1 hour = 3600 sec). When all the photos from the directory are published, he begins to publish them again, shuffling the photos in random order. But there is one caveat :)
- by default, the delay is set to 4 hours;
- if you set the publication every 4 hours, the photos will be published once every 4 hours. The delay is set in the script launch line.
- directory - location of photos (full path), is set to PATH_TO_THE_FOLDER_WITH_SCRIPT\Images\SpaceX\ by default;
- pause - the delay between publications in seconds, is set to 14400 seconds by default (4 hours).
python PATH_TO_THE_FOLDER_WITH_SCRIPT\specified_photo_post.py [-h] [directory]
specified_photo_post.py - a script to publish a photo on a specific path. If the file is not found, a random photo is published from all available photos (folder tree, starting with PATH_TO_THE_FOLDER_WITH_SCRIPT\Images)
This code was written for educational purposes as part of an online course for web developers at [dvmn.org] (https://dvmn.org/).
- Проект предназначен для скачивания фотографий космоса по API SpaceX Илона Маска и сайта NASA, а также их публикаций на канале Telegram
- Проект публикует в Telegram-канале фотографии из заданной директории с заданной периодичностью или конкретно выбранной фотографии
Python3 должен быть уже установлен. Затем используйте pip (или pip3, есть конфликт с Python2) для установки зависимостей. Открываем командную строку клавишами Win+R и вводим:
pip install -r requirements.txt
Рекомендуется использовать virtualenv/venv для изоляции проекта. (https://docs.python.org/3/library/venv.html)
До запуска необходимо создать файл ".env" в папке ПУТЬ_К_ПАПКЕ_СО_СКРИПТОМ
и настроить переменные окружения, прописав в нем:
NASA_API_KEY=Ваш API_KEY
полученный на сайте
https://api.nasa.gov/#apod
TELEGRAM_BOT_TOKEN=токен Вашего бота
полученный в Telegram с помощью @BotFather
https://way23.ru/регистрация-бота-в-telegram.html
TELEGRAM_CHAT_ID - ID вашего Telegram канала или чата
Как узнать? Смотрите в
https://101info.ru/kak-uznat-id-kanala-telegram/#ID_канала
python ПУТЬ_К_ПАПКЕ_СО_СКРИПТОМ\...
Если вы установили виртуальное окружение, то команду можно вводить без пути к скрипту Скрипты по скачиванию фотографий работают по отдельности. Команды на их запуск имеют следующий формат:
python ПУТЬ_К_ПАПКЕ_СО_СКРИПТОМ\fetch_spacex_images.py [-h] [id]
fetch_spacex_images.py - загрузка всех фото из введенного кода запуска SpaceX (по умолчанию - последний запуск). Файлы сохраняются в ПУТЬ_К_ПАПКЕ_СО_СКРИПТОМ/Images/SpaceX/
python ПУТЬ_К_ПАПКЕ_СО_СКРИПТОМ\fetch_nasa_epic_images.py [-h] [date_image]
fetch_nasa_apod_images.py - загрузка фото Земли из NASA EPIC по введенной дате в формате ДД.ММ.ГГГГ (по умолчанию - текущая дата); Файлы сохраняются в ПУТЬ_К_ПАПКЕ_СО_СКРИПТОМ/Images/NASA/EPIC/
python ПУТЬ_К_ПАПКЕ_СО_СКРИПТОМ\fetch_nasa_apod_images.py [-h] [start_date] [end_date]
fetch_nasa_apod_images.py - загрузка фото из NASA APOD по введенным датам с- по-
- start_date - начальная дата в формате ДД.ММ.ГГГГ (по умолчанию - текущая дата);
- end_date - конечная дата в формате ДД.ММ.ГГГГ (по умолчанию - текущая дата);
python ПУТЬ_К_ПАПКЕ_СО_СКРИПТОМ\image_time_post.py [-h] [directory] [pause]
image_time_post.py - скрипт публикации фотографий. Публикует все фотографии из заданной директории раз в несколько часов (1 час = 3600 сек). Когда все фото из директории опубликованы – он начинает публиковать их заново, перемешав фото в случайном порядке. Но есть один нюанс :)
- по умолчанию задержка выставлена в 4 часа;
- если задать публикацию раз в 4 часа – фото будут публиковаться по одному раз в 4 часа. Задержка задается в строке запуска скрипта.
- directory - местоположение фотографий (полный путь), по умолчанию задана ПУТЬ_К_ПАПКЕ_СО_СКРИПТОМ\Images\SpaceX;
- pause - задержка между публикациями в секундах, по умолчанию задана в 14400 секунд (4 часа).
python ПУТЬ_К_ПАПКЕ_СО_СКРИПТОМ\specified_photo_post.py [-h] [directory]
specified_photo_post.py - скрипт для публикации фото по конкретному пути. Если файл не найден - публикуется случайное фото из всех имеющихся фотографий (дерево папок, начиная с ПУТЬ_К_ПАПКЕ_СО_СКРИПТОМ\Images)
Код написан в образовательных целях на онлайн-курсе для веб-разработчиков dvmn.org.