Git Product home page Git Product logo

space-telegram's Introduction

Загрузка в Telegram фотографий космоса

Этот проект представляет собой набор скриптов для скачивания с сервисов SpaceX и NASA фотографий космоса и загрузки их в Telegram:

  • fetch_apod_nasa_images - получает несколько случайных фотографий Astronomy Pictures of the Day (APOD) с сайта NASA и сохраняет их на локальном компьютере;
  • fetch_nasa_epic_images - получает несколько фотографий Земли Earth Polychromatic Imaging Camera (EPIC) с сайта NASA и сохраняет их на локальном компьютере;
  • fetch_spacex_images - получает фотографии запуска ракеты с сайта SpaceX и сохраняет их на локальном компьютере;
  • publish_image_in_telegram - публикует одну фотографию в telegram-канале с помощью telegram-бота;
  • publish_all_images_in_telegram - публикует в telegram-канале все фотографии из папки с фото, делая задержку после публикации каждой фотографии.

Установка

Для запуска скриптов вам понадобится Python третьей версии.

Скачайте код с GitHub.

Для управления зависимостями Python желательно воспользоваться virtualenv.

Установите зависимости с помощью pip (или pip3, есть конфликт с Python2):

pip install -r requirements.txt

Переменные окружения

Часть настроек утилит берётся из переменных окружения. Чтобы их определить, создайте файл .env в той же папке, где и скрипты, и запишите туда данные в таком формате: ПЕРЕМЕННАЯ=значение.

Доступны 7 переменных:

  • IMAGES_DIRECTORY - относительный (относительно директории, из которой запускаются скрипты) путь к папке с фотографиями. Например: IMAGES_DIRECTORY=images. Значение по умолчанию - images. Используется во всех утилитах.

  • NASA_API_KEY - ваш API KEY с сервиса API NASA. Например: NASA_API_KEY=hg639e20ad155405123dk5677542fecf00231da7. Чтобы получить API KEY, сгенерируйте его на сервисе NASA. Это обязательная переменная. Используется в fetch_apod_nasa_images и fetch_nasa_epic_images.

  • APOD_NASA_COUNT - количество фотографий APOD, которое нужно получить с сайта NASA. Например, APOD_NASA_COUNT=10. Значение по умолчанию - 30. Используется в fetch_apod_nasa_images.

  • EPIC_NASA_COUNT - количество фотографий EPIC, которое нужно получить с сайта NASA. Например, EPIC_NASA_COUNT=2. Значение по умолчанию - 5. Используется в fetch_epic_nasa_images.

  • TELEGRAM_BOT_TOKEN - API-токен telegram-бота, с помощью которого будет осуществляться публикация фотографий. Например: TELEGRAM_BOT_TOKEN=958423683:AAEAtJ5Lde5YYfkjergber. Если такого telegram-бота пока нет, создайте его. Это обязательная переменная. Используется в publish_all_images_in_telegram и publish_image_in_telegram.

  • TELEGRAM_CHANNEL_ID - id telegram-канала, в котором будут публиковаться фотографии. Например: TELEGRAM_CHANNEL_ID=@flood_channel. Если такого telegram-канала пока нет, создайте его и назначьте вашего telegram-бота администратором канала. Это обязательная переменная. Используется в publish_all_images_in_telegram и publish_image_in_telegram.

  • DELAY_IN_SECONDS - задержка в секундах между публикациями фотографий для скрипта publish_all_images_in_telegram. Например: DELAY_IN_SECONDS=3600. Значение по умолчанию - 14400 (4 часа). Используется в publish_all_images_in_telegram.

Запуск

Для запуска нужного вам скрипта наберите в командной строке одну из команд:

python -m fetch_apod_nasa_images
python -m fetch_epic_nasa_images
python -m fetch_spacex_images [{id_конкретного_запуска_ракеты}]
python -m publish_image_in_telegram [{путь_к_файлу_с_фото}]
python -m publish_all_images_in_telegram

Здесь для скрипта fetch_spacex_images можно указать необязательный параметр командной строки {id_конкретного_запуска_ракеты}. Например: 5eb87d47ffd86e000604b38a.
Если этот параметр указан, то скрипт получит фотографии указанного запуска.
Если этот параметр не указан, то скрипт получит фотографии последнего из запусков, для которого имеются фотографии.

Для скрипта publish_image_in_telegram можно указать необязательный параметр командной строки {путь_к_файлу_с_фото} - абсолютный путь к конкретному файлу, который вы хотите опубликовать. Например: C:/images/image1.jpg.
Если этот параметр указан, то скрипт опубликует фото из файла с указанным именем.
Если этот параметр не указан, то скрипт выберет файл для публикации случайным образом из директории, указанной в переменной окружения IMAGES_DIRECTORY или одной из её поддиректорий.

Цель проекта

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

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.