Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Bot de Promoções para Telegram

Status do Projeto Node.js Puppeteer Telegram


Este projeto é um bot automatizado que monitora sites de e-commerce em busca de promoções e as compartilha em um canal do Telegram, utilizando links de afiliado para monetização.


image
image

📜 Sobre o Projeto

A ideia nasceu da vontade de automatizar o processo de encontrar e compartilhar ofertas de grandes varejistas como a Amazon. O bot utiliza técnicas de web scraping para extrair informações dos produtos em promoção e a API do Telegram para publicá-los em um canal, tornando o processo rápido, eficiente e autônomo.


✨ Funcionalidades

  • Web Scraping: Realiza a extração de dados (título, preço, imagem, link) da página de ofertas da Amazon.
  • Postagem Automática: Publica as ofertas encontradas em um canal do Telegram, com imagem e texto formatado.
  • Download de Imagens: Baixa a imagem do produto para enviá-la diretamente ao Telegram, evitando problemas com links protegidos (hotlinking).
  • Links de Afiliado: Prepara a estrutura para transformar links de produtos em links de afiliado.
  • Agendamento de Tarefas: Utiliza node-cron para verificar novas promoções em intervalos de tempo definidos (ex: a cada hora).
  • Configuração Segura: Utiliza variáveis de ambiente (.env) para proteger informações sensíveis como o token do bot.

🛠️ Tecnologias Utilizadas

Este projeto foi construído com as seguintes tecnologias:

  • Node.js: Ambiente de execução JavaScript no servidor.
  • Puppeteer: Biblioteca para controlar um navegador (Chrome) e realizar o web scraping.
  • Node-Telegram-Bot-API: Biblioteca para interagir com a API de Bots do Telegram.
  • Axios: Cliente HTTP para fazer o download das imagens dos produtos.
  • Dotenv: Módulo para carregar variáveis de ambiente de um arquivo .env.
  • Node-Cron: Agendador de tarefas para executar o bot periodicamente.

🚀 Começando

Siga as instruções abaixo para configurar e rodar o projeto em seu ambiente local.

Pré-requisitos

Você vai precisar ter instalado em sua máquina:

Instalação

  1. Clone o repositório para sua máquina local:
    git clone [https://github.com/vicenteaugusto9/bot-de-promocoes.git](https://github.com/vicenteaugusto9/bot-de-promocoes.git)
  2. Navegue até a pasta do projeto:
    cd bot-de-promocoes
  3. Instale todas as dependências do projeto:
    npm install
  4. Crie uma cópia do arquivo de exemplo de ambiente:
    cp .env.example .env
  5. Abra o arquivo .env e preencha com suas informações.

⚙️ Configuração

O arquivo .env centraliza todas as configurações e chaves necessárias para o bot funcionar.

# .env - Arquivo de configuração de ambiente

# Token do seu bot, obtido com o @BotFather no Telegram
TELEGRAM_TOKEN="SEU_TOKEN_SUPER_SECRETO_AQUI"

# ID ou @username do seu canal do Telegram
TELEGRAM_CHANNEL_ID="@seu_canal_ou_id"

# Sua tag de afiliado da Amazon (ex: suatag-20)
AMAZON_AFFILIATE_TAG="sua-tag-de-afiliado-20"

▶️ Uso

Para iniciar o bot, execute o seguinte comando no seu terminal:

node src/index.js

O bot fará uma primeira execução imediata e depois seguirá o agendamento definido no index.js (por padrão, a cada hora).


🗺️ Roteiro de Melhorias (Roadmap)

Este projeto está em constante evolução. Os próximos passos planejados são:

  • Implementar scraping de uma página com preços mais consistentes.
  • Corrigir bugs na captura de imagens.
  • Adicionar scraping para o site do Mercado Livre.
  • Criar filtros para ignorar produtos de certas categorias ou abaixo de um certo valor.
  • Refatorar o código para permitir a busca em múltiplas lojas de forma modular.
  • Fazer o deploy da aplicação em um servidor na nuvem (VPS ou PaaS).

🤝 Contato

Vicente Augusto - GitHub

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages