# bernardo-s-oliveira/bot-telegram architecture

> Architecture diagram of the GitHub repository bernardo-s-oliveira/bot-telegram, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bernardo-s-oliveira/bot-telegram
- Repository: https://github.com/bernardo-s-oliveira/bot-telegram

## Overview

Este é um bot local de ofertas para Telegram, com coleta automática em Mercado Livre, Shopee e Amazon e conversão manual de links enviados no privado. No ciclo automático, coleta e enriquecimento alimentam filtros, validação de histórico e seleção; as ofertas escolhidas são formatadas, publicadas nos destinos configurados e registradas para evitar repetição e acompanhar preços. O painel local oferece configuração, testes de fontes e controle do bot. As relações refletem o README e os trechos amostrados; ligações de subsistemas não amostrados foram omitidas quando não era possível confirmar o chamador.

Main entry points: [`ofertas/pipeline.py`](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/pipeline.py) (Ciclo automático), [`ofertas/sources/__init__.py`](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/sources/__init__.py) (Roteador de fontes), [`ofertas/bot_interativo.py`](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/bot_interativo.py) (Bot interativo), [`ofertas/main.py`](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/main.py) (Comandos do bot)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Interfaces e execução"]
  node_main["Comandos do bot<br/>[main.py]"]
  node_panel["Painel local<br/>[painel.py]"]
  node_panel_html["Interface web<br/>[painel_html.py]"]
  node_interactive_bot["Bot interativo<br/>[bot_interativo.py]"]
  node_config["Configuração<br/>[config.py]"]
end

subgraph group_collection["Coleta e afiliados"]
  node_pipeline["Ciclo automático<br/>[pipeline.py]"]
  node_source_router["Roteador de fontes<br/>[__init__.py]"]
  node_ml_source["Mercado Livre<br/>[mercadolivre.py]"]
  node_shopee_source["Shopee<br/>[shopee.py]"]
  node_amazon_source["Amazon<br/>[amazon.py]"]
  node_orders["Pedidos de clientes<br/>[pedidos.py]"]
end

subgraph group_selection["Qualidade e seleção"]
  node_destinations["Destinos e divisão<br/>[destinos.py]"]
  node_selection["Filtros e score<br/>[selecao.py]"]
  node_mix["Mix de categorias<br/>[mix.py]"]
  node_product_types["Tipos e nichos<br/>[tipos.py]"]
end

subgraph group_publishing["Publicação e estado"]
  node_database[("Histórico e posts<br/>[db.py]")]
  node_formatter["Formatador de ofertas<br/>[formatter.py]"]
  node_poster["Publicador Telegram<br/>[telegram_poster.py]"]
end

node_operator(("Operador"))
node_telegram_user(("Usuário Telegram"))
node_telegram(("Telegram"))
node_marketplaces(("Lojas e APIs"))

node_operator -->|"configura e controla"| node_panel
node_panel -->|"serve interface"| node_panel_html
node_panel -->|"grava configuração"| node_config
node_operator -->|"executa comandos"| node_main
node_main -->|"inicia ciclo"| node_pipeline
node_main -->|"inicia conversor"| node_interactive_bot
node_interactive_bot -->|"detecta link"| node_source_router
node_source_router -->|"encaminha URL"| node_ml_source
node_source_router -->|"encaminha URL"| node_shopee_source
node_source_router -->|"encaminha URL"| node_amazon_source
node_pipeline -->|"coleta ofertas"| node_ml_source
node_pipeline -->|"coleta ofertas"| node_shopee_source
node_pipeline -->|"coleta ofertas"| node_amazon_source
node_ml_source -->|"consulta e gera links"| node_marketplaces
node_shopee_source -->|"consulta API"| node_marketplaces
node_amazon_source -->|"consulta API e páginas"| node_marketplaces
node_pipeline -->|"avalia pedidos"| node_orders
node_pipeline -->|"lê e grava histórico"| node_database
node_pipeline -->|"divide ofertas"| node_destinations
node_pipeline -->|"filtra e pontua"| node_selection
node_pipeline -->|"equilibra categorias"| node_mix
node_pipeline -->|"classifica produtos"| node_product_types
node_pipeline -->|"formata selecionadas"| node_formatter
node_pipeline -->|"envia publicações"| node_poster
node_poster -->|"publica mensagens"| node_telegram
node_interactive_bot -->|"recebe e responde"| node_telegram
node_telegram_user -->|"envia link"| node_interactive_bot
node_config -->|"fornece opções"| node_pipeline

click node_main "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/main.py"
click node_panel "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/painel.py"
click node_panel_html "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/painel_html.py"
click node_interactive_bot "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/bot_interativo.py"
click node_config "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/config.py"
click node_pipeline "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/pipeline.py"
click node_source_router "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/sources/__init__.py"
click node_ml_source "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/sources/mercadolivre.py"
click node_shopee_source "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/sources/shopee.py"
click node_amazon_source "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/sources/amazon.py"
click node_orders "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/pedidos.py"
click node_destinations "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/destinos.py"
click node_selection "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/selecao.py"
click node_mix "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/mix.py"
click node_product_types "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/tipos.py"
click node_database "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/db.py"
click node_formatter "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/formatter.py"
click node_poster "https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/telegram_poster.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_panel,node_panel_html,node_interactive_bot,node_config toneBlue
class node_pipeline,node_source_router,node_ml_source,node_shopee_source,node_amazon_source,node_orders toneAmber
class node_destinations,node_selection,node_mix,node_product_types,node_marketplaces toneMint
class node_database,node_formatter,node_poster toneRose
class node_operator,node_telegram_user,node_telegram toneIndigo
```

## Components

### Interfaces e execução

- [Comandos do bot](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/main.py): `ofertas/main.py`
- [Painel local](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/painel.py): `ofertas/painel.py`
- [Interface web](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/painel_html.py): `ofertas/painel_html.py`
- [Bot interativo](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/bot_interativo.py): `ofertas/bot_interativo.py`
- [Configuração](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/config.py): `ofertas/config.py`

### Coleta e afiliados

- [Ciclo automático](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/pipeline.py): `ofertas/pipeline.py`
- [Roteador de fontes](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/sources/__init__.py): `ofertas/sources/__init__.py`
- [Mercado Livre](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/sources/mercadolivre.py): `ofertas/sources/mercadolivre.py`
- [Shopee](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/sources/shopee.py): `ofertas/sources/shopee.py`
- [Amazon](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/sources/amazon.py): `ofertas/sources/amazon.py`
- [Pedidos de clientes](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/pedidos.py): `ofertas/pedidos.py`

### Qualidade e seleção

- [Destinos e divisão](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/destinos.py): `ofertas/destinos.py`
- [Filtros e score](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/selecao.py): `ofertas/selecao.py`
- [Mix de categorias](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/mix.py): `ofertas/mix.py`
- [Tipos e nichos](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/tipos.py): `ofertas/tipos.py`

### Publicação e estado

- [Histórico e posts](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/db.py): `ofertas/db.py`
- [Formatador de ofertas](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/formatter.py): `ofertas/formatter.py`
- [Publicador Telegram](https://github.com/bernardo-s-oliveira/bot-telegram/blob/main/ofertas/telegram_poster.py): `ofertas/telegram_poster.py`

### Other components

- **Operador**
- **Usuário Telegram**
- **Telegram**
- **Lojas e APIs**

## Connections

- Operador → Painel local: configura e controla
- Painel local → Interface web: serve interface
- Painel local → Configuração: grava configuração
- Operador → Comandos do bot: executa comandos
- Comandos do bot → Ciclo automático: inicia ciclo
- Comandos do bot → Bot interativo: inicia conversor
- Bot interativo → Roteador de fontes: detecta link
- Roteador de fontes → Mercado Livre: encaminha URL
- Roteador de fontes → Shopee: encaminha URL
- Roteador de fontes → Amazon: encaminha URL
- Ciclo automático → Mercado Livre: coleta ofertas
- Ciclo automático → Shopee: coleta ofertas
- Ciclo automático → Amazon: coleta ofertas
- Mercado Livre → Lojas e APIs: consulta e gera links
- Shopee → Lojas e APIs: consulta API
- Amazon → Lojas e APIs: consulta API e páginas
- Ciclo automático → Pedidos de clientes: avalia pedidos
- Ciclo automático → Histórico e posts: lê e grava histórico
- Ciclo automático → Destinos e divisão: divide ofertas
- Ciclo automático → Filtros e score: filtra e pontua
- Ciclo automático → Mix de categorias: equilibra categorias
- Ciclo automático → Tipos e nichos: classifica produtos
- Ciclo automático → Formatador de ofertas: formata selecionadas
- Ciclo automático → Publicador Telegram: envia publicações
- Publicador Telegram → Telegram: publica mensagens
- Bot interativo → Telegram: recebe e responde
- Usuário Telegram → Bot interativo: envia link
- Configuração → Ciclo automático: fornece opções
