O WhatsNews Bot é um sistema completo construído em Python que automatiza a busca por notícias recentes na internet e as entrega para grupos específicos no WhatsApp. O bot é gerenciado por um painel de controle via terminal, garantindo que apenas administradores autorizados possam definir para quais grupos as notícias serão enviadas.
É a ferramenta perfeita para manter comunidades, equipes ou amigos atualizados com as últimas novidades sobre qualquer tópico de interesse.
- ✅ Busca de Notícias em Tempo Real: Conecta-se à NewsAPI para obter as manchetes mais recentes sobre qualquer tópico.
- ✅ Envio Agendado: Utiliza um sistema de agendamento para enviar as notícias em intervalos definidos (ex: a cada 4 horas), funcionando de forma 100% autônoma.
- ✅ Painel de Controle Seguro: A lista de grupos que recebem as notícias é gerenciada através de um terminal de administração, garantindo que apenas pessoas autorizadas possam fazer alterações.
- ✅ "Memória" Persistente: Usa um banco de dados SQLite (
subscribers.db) para armazenar a lista de grupos, garantindo que os dados não se percam. - ✅ Arquitetura Modular: O sistema é dividido em componentes claros e independentes, facilitando a manutenção e a adição de novas funcionalidades.
O bot opera com uma arquitetura de 3 componentes principais, o que garante organização e estabilidade:
graph TD
A["👨💻 Você (Admin)"] -- Comandos --> B["🖥️ admin_terminal.py (O Gerente)"];
B -- Adiciona/Remove --> C["🗃️ database_manager.py (A Memória)"];
D["🤖 enviador_de_noticias.py (O Carteiro)"] -- Lê a lista --> C;
D -- Busca notícias --> E["🌐 NewsAPI"];
D -- Envia para --> F["📱 WhatsApp"];
- A Memória (
database_manager.py): O cérebro que armazena a lista de grupos. - O Gerente (
admin_terminal.py): Sua ferramenta para dar ordens e gerenciar a lista. - O Carteiro (
enviador_de_noticias.py): O robô que faz o trabalho pesado de buscar e entregar as notícias.
Siga estes passos para colocar o bot em funcionamento.
- Python 3.9 ou superior
- Google Chrome instalado
- Uma chave de API da NewsAPI
git clone [URL_DO_SEU_REPOSITORIO]
cd [NOME_DA_PASTA_DO_REPOSITORIO]python -m venv venv
# No Windows
venv\Scripts\activate
# No Linux/macOS
source venv/bin/activateCrie um arquivo requirements.txt com o conteúdo abaixo:
selenium
requests
schedule
pyperclipE instale tudo de uma vez:
pip install -r requirements.txtAntes de rodar, ajuste as configurações nos arquivos:
-
No arquivo
admin_terminal.py:CONTROL_GROUP: Coloque o nome do grupo privado que você criou para ser seu painel de controle.ADMINS_LIST: Coloque seu nome de usuário do WhatsApp, exatamente como aparece no grupo.
-
No arquivo
enviador_de_noticias.py:API_KEY: Cole a sua chave secreta da NewsAPI.QUERY: Defina o tópico de notícias que você quer buscar (ex: "Brasil", "criptomoedas", "Fórmula 1").
Execute este comando apenas uma vez para criar o arquivo subscribers.db:
python database_manager.pyO sistema opera com dois terminais.
Gerencia a lista de grupos.
python admin_terminal.pyExemplo de uso:
Admin > add CHAIN-BOT
✅ Assinante 'CHAIN-BOT' foi ADICIONADO.
Admin > list
--- Lista de Grupos Assinantes ---
- CHAIN-BOT
---------------------------------
Admin > exitEste terminal envia as notícias.
python enviador_de_noticias.pyPassos:
- O bot fará o login no WhatsApp (escaneie o QR Code na primeira vez).
- Ele enviará as notícias uma vez imediatamente para os grupos cadastrados.
- Depois, ficará em silêncio até o próximo agendamento.
- Apenas mantenha o terminal aberto.
- Adicionar envio de imagem com legenda.
- Permitir múltiplos tópicos de notícias (
QUERY). - Criar um comando
broadcastnoadmin_terminal.pypara enviar mensagens manuais. - Implementar sistema de log para registrar as atividades de envio.
Distribuído sob a licença MIT.