Этот проект собирает самые свежие фотографии из разных API (SpaceX и NASA) и автоматически публикует их в заданный Telegram‑чат.
├── get_spacex_launch.py # Скачать фото последнего (или указанного) запуска SpaceX
├── get_nasa_apod.py # Скачать случайную подборку фото дня (APOD) от NASA
├── get_nasa_epic.py # Скачать архивные снимки Земли (EPIC) от NASA
├── support_scripts.py # Вспомогательные функции (скачивание, получение расширения)
├── nasa_bot.py # Бот для автоматической публикации фото в Telegram
├── .env # Файл с секретными ключами и настройками
└── images/ # Папка для скачанных изображений
- Python 3.7+
- Установленные пакеты:
pip install -r requirements.txt
-
Клонируйте репозиторий:
git clone https://github.com/AR4I-XD/NASA_bot cd nasa_bot -
Создайте файл
.envв корне проекта со следующим содержимым:# Ключ NASA API (https://api.nasa.gov/) NASA_API_KEY=ваш_nasa_api_ключ # Токен Telegram-бота (BotFather) TG_API_TOKEN=ваш_telegram_bot_token # ID чата или канала, куда бот будет отправлять фото TG_CHAT_ID=@ваш_channel_or_chat_id # Задержка между отправками в часах (целое число) TG_TIME_DELAY=6
-
Убедитесь, что папка
images/существует (она создаётся автоматически при первом запуске скриптов).
-
Последний (или указанный) запуск SpaceX
python get_spacex_launch.py [ID_запуска] [Папка сохранения]
По умолчанию скачиваются фото последнего запуска (
default="latest"). -
NASA APOD (Astronomy Picture of the Day)
python get_nasa_apod.py [Папка сохранения]Скачивает 20 случайных изображений из архива APOD.
-
NASA EPIC (Earth Polychromatic Imaging Camera)
python get_nasa_epic.py [Папка сохранения]
Скачивает все доступные архивные снимки Земли в высоком разрешении.
После выполнения каждого скрипта в указанной папке или папке по умолчанию images появятся файлы с именами вида:
images/
├── spacex0.jpg
├── spacex1.jpg
├── nasa_apod_0.png
├── nasa_epic_0.png
└── ...
Запустите бота:
python nasa_bot.py [Папка с изображениями]Бот случайным образом перемешает файлы из указанной папки и будет отправлять их в указанный чат/канал, делая паузу в TIME_DELAY часов между публикациями.
- Проверяйте актуальность API и их лимиты (в случае NASA: 1 000 запросов в час по бесплатному ключу).