Giter Site home page Giter Site logo

omathiasschulz / twitter-space-rover-bot Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 69 KB

Twitter Space Rover Bot 🤖

Home Page: https://x.com/SpaceRoverBot

License: MIT License

Python 78.86% HTML 11.93% Dockerfile 9.21%
twitter twitter-bot bot python tweepy apod nasa python-3 python-script

twitter-space-rover-bot's Introduction

twitter-space-rover-bot

O Twitter Space Rover Bot 🚀✨ é um bot automatizado que compartilha imagens astronômicas da NASA no Twitter. O Bot utiliza a API da Nasa 🔭 para obter diariamente a Foto Astronômica do Dia (APOD - Astronomy Picture of the Day) e compartilha no Twitter.

Além publicar a imagem do dia, o bot também realiza uma publicação da explicação da imagem já traduzido em Português.

Link para o Bot 🤖

Este projeto foi desenvolvido para entusiastas da astronomia que desejam explorar diariamente imagens e informações sobre o universo 🪐.

Executar o projeto

Antes de começar, certifique-se de ter os seguintes acessos:

Após obter os acessos é necessário criar o arquivo .env e configurar as variáveis de ambiente de acordo com o descrito no arquivo .env.example para a correta execução da aplicação.

A aplicação pode ser executada de duas maneiras, que são explicadas abaixo.

Executar o projeto com Docker

O Docker é uma plataforma projetada para facilitar a criação, implantação e execução de aplicativos, garantindo consistência entre diferentes ambientes, desde o desenvolvimento até a produção. Com o Docker é possível encapsular um aplicativo e suas dependências em um contêiner, que inclui tudo o que é necessário para a execução do aplicativo.

Com o docker apenas é necessário rodar o seguinte comando para executar a aplicação:

docker-compose up

Executar o projeto com Virtual Environment

Uma Virtual Environment (Python venv) permite isolar as dependências do projeto, o que permite que diferentes projetos tenham suas próprias versões específicas de bibliotecas e evitando conflitos entre eles.

A venv utilizada neste projeto foi baseada no Python na versão 3.10.

Instalar o Python 3.10

Caso vocês não possua o Python na versão 3.10 instalado você pode rodar os seguintes comandos para instalar:

sudo add-apt-repository universe
sudo apt-get update
sudo apt install python3.10 python3.10-dev python3.10-venv

Criar uma venv

Rode o seguinte comando na pasta principal do projeto para criar a venv com o Python 3.10:

virtualenv venv --python=python3.10

Após criar a venv apenas é necessário ativa-lá:

source venv/bin/activate

Em seguida instale as dependências do projeto na venv e a venv estará pronta para uso:

pip install -r requirements.txt

Ativar a venv

Lembresse que sempre que um novo terminal for aberto para executar o projeto é necessário ativar a venv com o seguinte comando:

source venv/bin/activate

Nova dependência

Para salvar uma nova dependências do projeto utilize o sequinte comando e o requirements.txt será atualizado:

pip freeze > requirements.txt

Bibliotecas utilizadas

Algumas bibliotecas instaladas para construção do projeto.

Tradução do texto

O texto é traduzido utilizando a biblioteca python deep-translator.

Geração de imagem

As imagens da explicação são geradas utilizando a biblioteca python html2image.

Exemplos de Consulta na API da NASA

Exemplo de request GET para consulta do APOD (Astronomy Picture of the Day) do dia de hoje:

https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY

Exemplo de request GET para consulta do APOD (Astronomy Picture of the Day) dos dias de 01 de Janeiro de 2024 até 12 de Janeiro de 2024:

https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY&start_date=2024-01-01&end_date=2024-01-12

Ambiente de Produção

A aplicação está rodando em produção com uma máquina t2.micro da EC2 (Amazon Elastic Compute Cloud) AWS (Amazon Web Services), utilizando como base os arquivos docker-compose.prod.yml e Dockerfile.prod.

O principal motivo para escolha do serviço EC2 foi para aprender a utilizar uma poderosa ferramenta disponibilizada pela AWS.

No Dockerfile foi configurado uma Cron job para execução do script create_apod_tweet.py, no qual será executada todo dia às 9 horas da manhã e, com isso, será criado dois posts no Twitter, um post da imagem do dia e outro post com a explicação da imagem.

Cron jobs

Cron é um serviço de agendamento de tarefas em sistemas operacionais baseados em Unix.

Cron job é uma tarefa definida para ser executada em um intervalo ou período específico.

Cron tab é o arquivo que contém a lista de tarefas a serem executadas.

Licença

Este projeto está sob a licença MIT, que pode ser encontrada no arquivo LICENSE.

Contribuições

Contribuições são bem-vindas! Se você quiser contribuir para este projeto, por favor, abra uma issue ou envie uma solicitação de pull request.

twitter-space-rover-bot's People

Contributors

omathiasschulz avatar

Stargazers

João Paulo Back 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.