Skip to content

wallax0x/bot_noticias

Repository files navigation

🤖 WhatsNews Bot 📰

Seu assistente pessoal para entrega de notícias de forma automatizada e agendada via WhatsApp.

Python Selenium Status


🎯 Sobre o Projeto

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.


✨ Funcionalidades Principais

  • 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.

🏗️ Arquitetura do Sistema

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"];
Loading
  • 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.

🚀 Instalação e Configuração

Siga estes passos para colocar o bot em funcionamento.

1. Pré-requisitos

  • Python 3.9 ou superior
  • Google Chrome instalado
  • Uma chave de API da NewsAPI

2. Clone o Repositório

git clone [URL_DO_SEU_REPOSITORIO]
cd [NOME_DA_PASTA_DO_REPOSITORIO]

3. Crie um Ambiente Virtual (Recomendado)

python -m venv venv
# No Windows
venv\Scripts\activate
# No Linux/macOS
source venv/bin/activate

4. Instale as Dependências

Crie um arquivo requirements.txt com o conteúdo abaixo:

selenium
requests
schedule
pyperclip

E instale tudo de uma vez:

pip install -r requirements.txt

5. Configure as Variáveis

Antes 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").

6. Inicialize o Banco de Dados

Execute este comando apenas uma vez para criar o arquivo subscribers.db:

python database_manager.py

🕹️ Como Operar o Bot

O sistema opera com dois terminais.

Terminal 1: O Gerente (Use quando precisar)

Gerencia a lista de grupos.

python admin_terminal.py

Exemplo de uso:

Admin > add CHAIN-BOT
✅ Assinante 'CHAIN-BOT' foi ADICIONADO.

Admin > list
--- Lista de Grupos Assinantes ---
  - CHAIN-BOT
---------------------------------

Admin > exit

Terminal 2: O Carteiro (Deixe rodando)

Este terminal envia as notícias.

python enviador_de_noticias.py

Passos:

  1. O bot fará o login no WhatsApp (escaneie o QR Code na primeira vez).
  2. Ele enviará as notícias uma vez imediatamente para os grupos cadastrados.
  3. Depois, ficará em silêncio até o próximo agendamento.
  4. Apenas mantenha o terminal aberto.

💡 Próximos Passos e Melhorias

  • Adicionar envio de imagem com legenda.
  • Permitir múltiplos tópicos de notícias (QUERY).
  • Criar um comando broadcast no admin_terminal.py para enviar mensagens manuais.
  • Implementar sistema de log para registrar as atividades de envio.

Distribuído sob a licença MIT.

About

Bot em Python que envia noticias em grupos do whatsapp.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages