GithubHelp home page GithubHelp logo

space_fotos_to_tg's Introduction

Размещение фотографий космоса в Telegram

Набор скриптов предназначенных для скачивания фотографий с 3-х сервисов: SpaceX, Nasa APOD, NASA EPIC. Размещение фотографий в Telegram.

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

Для написания скрипта использовался Python 3.10.0 Инструмент для управления зависимостями Poetry

  1. Склонировать репозиторий.
  2. Создать виртуальное окружение.
  3. Установить зависимости:
poetry install
  1. Переименовать файл .env_example в .env
mv .env_example .env
  1. Отредактировать файл .env, Пример .env:
NASA_API_KEY=1234567890abcdefghijklmnopqrstuvwxyz1234
TELEGRAM_TOKEN=958423683:AAEAtJ5Lde5YYfkjergber
TELEGRAM_CHAT_ID=@your_chat_id

*Как получить TELEGRAM_TOKEN: https://way23.ru/регистрация-бота-в-telegram.html

*Где получить NASA_API_KEY: https://api.nasa.gov/

*TELEGRAM_CHAT_ID можно посмотреть в описании канала

  1. Активировать виртуальное окружение:
poetry shell

Запуск

1. Для скачивания фотографий:

1.1 Сервис SpaceX (fetch_spacex_launch.py)

Скрипт скачивает фотографии SpaceX. Без аргумента скачивает фото последнего запуска (если есть), если указан ID, то скачивает фото указанного запуска.

usage: fetch_spacex_launch.py [-h] [-id FLIGHT_ID]
options:
-h, --help            show this help message and exit
-id FLIGHT_ID, --flight_id FLIGHT_ID
                        ID запуска

Пример (в этом запуске точно есть фотографии):

python fetch_spacex_launch.py -id 5eb87d47ffd86e000604b38a

1.2 Сервис NASA Astronomy Picture of the Day (APOD) (fetch_nasa_apod.py)

Скрипт скачивает фотографии NASA Astronomy Picture of the Day (APOD). Без аргумента скачивает 1 фото, если указан аргумент, то скачивает указанное количество фото. Поддерживает скачивание только следующих форматов : gif, jpg, png.

usage: fetch_nasa_apod.py [-h] [-c IMAGE_COUNT]

options:
-h, --help            show this help message and exit
-c IMAGE_COUNT, --image_count IMAGE_COUNT
                        Количество фотографий

Пример:

python fetch_nasa_apod.py -c 30

Скачает 30 случайных фотографий.

1.3 Сервис NASA EPIC (fetch_nasa_epic.py)

usage: fetch_nasa_epic.py [-h] [-c IMAGE_COUNT]

Скрипт скачивает фотографии NASA EPIC. Без аргумента скачивает 4 фото,
если указан аргумент, то скачивает указанное количество фото.

options:
  -h, --help            show this help message and exit
  -c IMAGE_COUNT, --image_count IMAGE_COUNT
                        Количество фотографий
python fetch_nasa_epic.py -c 5

Скачает 5 фото.

2. Для публикации постов с фотографиями (publisher_bot)

Скрипт запускает автоматическую публикацию постов в Telegram. Если запустить без параметров, то будут использованы параметры по умолчанию.

usage: publisher_bot.py [-h] [-i IMAGE_COUNT]
                        [-p PERIODICITY_IN_HOURS]
                        [-ip IMAGE_PATH]
                        [-c CAPTION]
options:
  -h, --help            show this help message and exit
  -i IMAGE_COUNT, --image_count IMAGE_COUNT
                        Количество изображений в посте (по умолчанию 4)
  -p PERIODICITY_IN_HOURS, --periodicity_in_hours PERIODICITY_IN_HOURS
                        Периодичность (часы) (по умолчанию 4)
  -ip IMAGE_PATH, --image_path IMAGE_PATH
                        Каталог с фото (по умолчанию 'image/')
  -c CAPTION, --caption CAPTION
                        Подпись (по умолчанию 'Подборка фотографий про космос!!!')

Пример:

python publisher_bot.py -i 5 -p 2 -c Тест

Запустит публикацию каждые 2 часа, с альбомом из 5 фотографий, и подписью 'Тест'

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

Цель проекта

Код написан в образовательных целях на онлайн-курсе для веб-разработчиков dvmn.org.

space_fotos_to_tg's People

Contributors

nebulawalker avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.