Um bot para Discord autônomo e proativo, construído com Python e discord.py, que mantém um servidor atualizado com as últimas notícias. O bot busca manchetes de portais de notícias através de feeds RSS e as entrega em canais específicos de forma automática e sob demanda.
O projeto foi totalmente implantado na AWS (Amazon Web Services), rodando como um serviço persistente em uma instância EC2 para garantir operação 24/7.
Este bot foi projetado para ser um serviço robusto e eficiente, combinando programação orientada a eventos com tarefas agendadas.
- Entrega Automática de Notícias: Utilizando a extensão
tasksdodiscord.py, o bot busca e envia as 10 principais notícias para um canal pré-configurado a cada 3 horas, mantendo a comunidade informada de forma autônoma. - Busca de Notícias sob Demanda: Responde ao comando
!noticiaspara buscar e exibir instantaneamente as 10 últimas manchetes. - Parsing de Feeds RSS: Utiliza a biblioteca
feedparserpara consumir feeds RSS de portais de notícias, uma abordagem robusta que não depende de chaves de API. - Limpeza de HTML: Emprega o
BeautifulSouppara analisar e limpar o conteúdo HTML dos resumos das notícias, garantindo que as mensagens no Discord sejam limpas, legíveis e sem tags indesejadas. - Formatação Profissional com Embeds: As notícias são apresentadas em "Embeds" do Discord, com títulos clicáveis, resumos concisos e uma formatação visualmente agradável.
Para garantir a operação contínua (24/7), o bot foi implantado em uma instância EC2 t2.micro na AWS, dentro do Free Tier.
- O ambiente no servidor foi configurado em uma máquina Ubuntu Linux.
- A aplicação roda como um serviço persistente gerenciado pelo
systemd, garantindo que o bot seja reiniciado automaticamente em caso de falha ou após um reboot do servidor. - A segurança é garantida por um Security Group que limita o acesso SSH apenas a IPs autorizados.
| Área | Tecnologia | Propósito |
|---|---|---|
| Core | Python 3.10+ | Linguagem principal |
| discord.py | Interação com a API do Discord e tarefas agendadas | |
| feedparser | Análise de feeds RSS/XML | |
| BeautifulSoup4 | Limpeza de HTML dos resumos das notícias | |
| python-dotenv | Gerenciamento de segredos (token do bot) | |
| Deploy | AWS EC2 | Hospedagem em servidor virtual na nuvem |
| Ubuntu Linux | Sistema operacional do servidor | |
| systemd | Gerenciamento do processo como um serviço persistente | |
| SSH | Acesso seguro e gerenciamento do servidor |
- Python 3.10 ou superior.
- Uma conta no Discord e um servidor para testes.
- Ter criado uma Aplicação de Bot no Portal de Desenvolvedores do Discord e ter o token do bot.
# Clone o repositório
git clone [https://github.com/seu-usuario/discord-news-bot.git](https://github.com/seu-usuario/discord-news-bot.git)
cd discord-news-bot
# Crie e ative o ambiente virtual
python3 -m venv venv
source venv/bin/activate
# Instale as dependências
pip install -r requirements.txt- Crie um arquivo chamado
.envna raiz do projeto. - Adicione suas credenciais a ele:
DISCORD_TOKEN=seu_token_secreto_aqui NEWS_CHANNEL_ID=id_do_canal_de_noticias_aqui
# Com a venv ativa, execute o script
python3 bot.py✅ O bot ficará online no seu servidor do Discord e responderá aos comandos.