Releases: LXSCA7/gorimpo
v1.2.1
🛠️ Patch Notes - v1.2.1
Essa versão adiciona melhorias na resiliência do GOrimpo, adicionando a possibilidade de implementarmos proxies, inicialmente, apenas com proxyscrape. Também faz mudanças na arquitetura, com a refatoração do OLXScraper, e implementa o notificador Gotify, além de acrescentar melhorias na performance do Dockerfile. É a primeira versão oficial do GOrimpo com implementações da comunidade.
🚀 Features:
- Agora é possível integrar o GOrimpo com o Gotify (by @dipievil);
- Implementado proxies para evitar banimento de IP, focando em usuários que rodam o GOrimpo 24h em uma VPS.
🔧 Improvements & Fixes:
v1.2.1-beta.2
🚀 GOrimpo v1.2.1-beta.2
Esta segunda versão beta faz o Circuit Breaker ignorar instabilidades normais do proxy e focar apenas em erros críticos de sistema.
🛡️ O que mudou?
🧠 Classificação de Erros de Domínio
- ErrProxyFailure: Introduzimos um novo tipo de erro de domínio para sinalizar falhas de infraestrutura.
- CB Silence: O
GorimpoServiceagora utilizaerrors.Ispara identificar falhas de proxy. Se o erro for de rede, o contador de erros consecutivos do Circuit Breaker não é incrementado, evitando cooldowns desnecessários.
🔄 Refatoração do Adaptador OLX
- Parser vs Playwright: Finalizamos a separação em submódulos dentro do package
olx. - Search Resilience: O método
Searchagora é capaz de silenciar timeouts do Playwright, tratando-os como "nenhuma oferta encontrada temporariamente" em vez de falha fatal do adaptador.
🕵️ Debug & Logs
- Adicionado logging aprimorado no
waitForContentpara facilitar o rastreio de bloqueios silenciosos do Cloudflare. - Melhoria no log de
currentProxypara dar visibilidade de quando o "Sticky Proxy" está em ação.
v1.2.1-beta.1
🚀 GOrimpo v1.2.1-beta.1 - Proxy & Resilience Update
Esta versão beta introduz uma refatoração massiva na arquitetura de busca da OLX, focando em estabilidade, evasão de bans e modularidade.
🛡️ Destaques desta Versão
🔄 Rotação Dinâmica de Proxies (v1.2)
Implementamos um sistema de feedback em tempo real para o consumo de proxies gratuitos.
- Feedback Loop: O scraper agora identifica falhas de conexão ou bloqueios da Cloudflare e marca o IP como inválido instantaneamente.
- Gatilho de Renovação: O "tanque" de proxies é renovado automaticamente quando a taxa de falha atinge 50% do pool inicial.
- Sticky Identity: Implementamos o mapeamento de User-Agent fixo por IP. Se um proxy funcionou como "Chrome no Windows", ele manterá essa identidade até ser descartado, reduzindo drasticamente o fingerprinting suspeito.
🔔 Notificadores: Gotify Support
Adicionado suporte nativo ao **Gotify! Agora você pode receber seus alertas de ofertas em servidores próprios de notificação, mantendo o self-hosting completo do ecossistema.
🐳 Dockerização Comunitária
Graças à contribuição de parceiros da comunidade, o GOrimpo agora conta com um Dockerfile otimizado e suporte a Docker Compose.
🏗️ Mudanças na Arquitetura (Internal Refactor)
- Hexagonal Sub-packages: O adaptador da OLX foi quebrado em submódulos (
parser,playwright,util), preparando o terreno para a futura implementação da API Nativa. - Orquestração de Sessão: O
Searchagora gerencia o ciclo de vida do browser de forma mais eficiente, evitando vazamento de memória em caso de retries.
⚠️ Notas do Beta
Esta é uma versão de testes. Se encontrar problemas na rotação de proxies, abra uma Issue ou reporte no nosso canal
v1.2.0
🛠️ Patch Notes - v1.2.0 - The Ninja Update
Esta versão representa o maior salto tecnológico do GOrimpo até o momento. O foco total foi em Resiliência, Invisibilidade e Arquitetura, transformando o sistema em um fantasma digital capaz de operar em marketplaces com proteções perimetrais agressivas.
🚀 Principais Funcionalidades
🕵️ Bypass Anti-Bot
- Multi-Browser Engine: Suporte dinâmico aos motores Chromium, Firefox e WebKit (Safari), alternando o comportamento de renderização para anular fingerprinting.
- Dynamic Identity Factory: Geração em tempo real de milhares de User-Agents reais (versões 2026), eliminando padrões fixos de identidade.
- Behavioral Mimicry: Implementação de micro-respiros comportamentais (15-45s) em buscas sem resultados e Jitter dinâmico entre ciclos para simular navegação humana.
- Advanced Stealth Flags: Injeção da flag
AutomationControllede headers reais de navegação para ocultar rastros de automação.
🛡️ Resiliência & Estabilidade
- Adaptive Circuit Breaker: Inteligência de proteção de IP com castigo escalonado (15min, 25min, 35min...) ao detectar bloqueios 403.
- Visual Debugging: Captura automática de screenshots em caso de falha de renderização, enviando a "foto do erro" para o Telegram.
- Pausa de Reciclagem: Descanso programado a cada 50 buscas para limpar rastros de comportamento repetitivo e preservar a reputação do IP.
- Prevenção de Memory Leak: Gerenciamento rigoroso de processos do Playwright com encerramento em cascata (
defer cleanup).
🧠 Inteligência de Dados
- Filtro de Relevância: Detecção e descarte automático de anúncios "Destaque/Patrocinados" que não condizem com o termo de busca.
- Vapo-Latency Tracking: Parsing avançado de datas da OLX ("Hoje", "Ontem", "26 de fev"), permitindo medir o tempo exato entre a postagem e a captura.
- Rich Notifications: Inclusão de Tags (Entrega Fácil, Garantia OLX) e metadados diretamente no alerta do Telegram.
⚙️ Arquitetura & Infraestrutura
- Refatoração Hexagonal (Ports & Adapters): Desacoplamento total do core, facilitando a inclusão de novos marketplaces e notifiers.
- Observability Stack: Integração nativa com logs estruturados (JSON), Loki, Promtail e métricas via Prometheus.
- Hot Reload: Atualização de buscas, jitter e limites via
config.yamlsem necessidade de reiniciar o container.
🔧 Fixes e Melhorias Técnicas
- WebKit Fix: Remoção de argumentos de linha de comando incompatíveis com o Safari em ambientes Docker.
- Log Identity: Ícones visuais nos logs para identificação imediata do motor em uso (🌐 Chrome, 🦊 Firefox, 🧭 WebKit).
- Telegram Optimization: Suporte a Tópicos (Forum) para organização profissional de categorias.
⚖️ Licença
Este projeto agora é distribuído sob a Polyform Non-Commercial License 1.0.0. O uso é livre para fins pessoais e educacionais; a comercialização ou uso para fins lucrativos por terceiros é estritamente proibida sem autorização prévia.
v1.2.0-beta.5
🛠️ Patch Notes - v1.2.0-beta.5
Esta versão corrige o erro crítico de inicialização do motor WebKit (Safari) em ambientes Linux/Docker, garantindo que o pool de identidades esteja 100% operacional.
🚀 Improvements & Fixes:
- Engine-Specific Arguments: Corrigido o erro
Unknown option --disable-blink-features. Agora, flags específicas do motor Blink (Chromium) são injetadas apenas quando o motor correspondente é selecionado. - WebKit Stability: Removidas as restrições incompatíveis do motor WebKit, permitindo que as identidades de macOS/Safari rodem sem erros na VPS.
- Log Identity Fix: Correção estética nos logs de sistema. Agora a Raposa (🦊) representa corretamente o Firefox e o Globo (🌐) representa o Chrome.
- Stealth Optimization: Refinamento do comportamento do Playwright para garantir que o Firefox e o WebKit utilizem suas proteções nativas de automação em vez de flags de terceiros.
v1.2.0-beta.4
🛠️ Patch Notes - v1.2.0-beta.4
Esta versão transforma o GOrimpo em um fantasma digital, focando em diversidade de identidades e mimetização de comportamento humano para anular as detecções da Cloudflare/OLX.
🚀 Features:
- Multi-Browser Engine Support: O bot agora alterna dinamicamente entre Chromium, Firefox e WebKit (Safari).
- Dynamic Identity Factory: Implementação de uma fábrica de identidades em memória que gera milhares de combinações de User-Agents, eliminando a necessidade de listas manuais no YAML.
- Behavioral Stealth (Micro-Respiro): Adicionado um delay randômico de 15 a 45 segundos sempre que uma busca não retorna resultados novos. Isso remove o padrão rítmico e simula a navegação de um usuário real.
- Adaptive Circuit Breaker: Sistema de gelo incremental. O primeiro ban resulta em 15 min de repouso, mas reincidências aumentam o castigo em +10 min por nível (15, 25, 35...), protegendo a reputação da VPS.
- Config-Driven Identity: Novo campo
user_agent_countnoconfig.yamlque permite controlar a escala do pool de identidades sem necessidade de rebuild.
🔧 Improvements & Fixes:
- Visual Log Identity: Adição de ícones nos logs (🦊 para Chromium, 🌐 para Firefox, 🧭 para WebKit) para facilitar o monitoramento do disfarce em uso.
- Hexagonal Refactoring: Desacoplamento total da geração de identidades através da porta
IdentityGenerator, facilitando testes e futuras integrações com proxies. - Dockerfile Optimization: Preparação da imagem para suportar todas as dependências de sistema dos três novos motores de busca.
⚠️ Technical Note:
Esta versão exige que o comando de instalação do Playwright no Dockerfile seja atualizado para `O tamanho da imagem final será maior devido aos navegadores adicionais.
v1.2.0-beta.3
🛠️ Patch Notes - v1.2.0-beta.3 (Stealth Refinement)
Esta versão foca em tornar o GOrimpo virtualmente invisível para sistemas de detecção de bots (Cloudflare/Akamai), eliminando padrões rítmicos de acesso.
🚀 Features:
- Advanced Stealth Mode: Implementada a flag
--disable-blink-features=AutomationControlledno Chromium, ocultando o rastro de automação (navigator.webdriver). - Dynamic Cycle Jitter: O intervalo entre os ciclos de busca agora é totalmente imprevisível (2 a 5 minutos + segundos aleatórios), mimetizando o comportamento de navegação humana.
- Custom Browser Headers: Adicionada injeção de headers reais (
Accept-Language,Connection), garantindo que o browser pareça uma sessão legítima vinda do Brasil.
v1.2.0-beta.2
🛠️ Patch Notes - v1.2.0-beta.2
Esta versão transforma o GOrimpo de um simples scraper em um sistema de monitoramento resiliente e autossuficiente. Introduzimos inteligência de proteção contra bloqueios (Circuit Breaker), observabilidade visual e refatoração arquitetural para escala.
🚀 Features:
- Circuit Breaker: Implementada inteligência de sobrevivência. Após 3 falhas consecutivas, o sistema abre o disjuntor e entra em um cooldown de 15 minutos para preservar o IP da VPS e evitar detecção agressiva.
- Visual Debugging (Screenshots): Agora o scraper tira uma "foto do crime" (screenshot) em caso de timeout ou erro de renderização, enviando-a automaticamente para o tópico 'system' no Telegram.
- Modo Furtivo (Bypass Anti-Bot): Rotação dinâmica de User-Agents e delays aleatórios (Jitter) para mimetizar o comportamento humano e mitigar bloqueios 403 (Cloudflare).
- Search Context: Adicionado parâmetro
show_search_termnoconfig.yaml. Quando ativado, as notificações no Telegram exibem qual termo de busca originou aquele achado. - Stack de Observabilidade: Integração nativa com Loki + Promtail para centralização de logs estruturados e monitoramento via Grafana.
- Hot Reload: Atualização em tempo real de seletores, Jitter e User-Agents através da edição do
config.yamlsem downtime do container.
🛠️ Refactors:
- Arquitetura Hexagonal: Desacoplamento total do
ConfigManagere segregação de interfaces (VisualScraper,Notifier,Scraper), garantindo o cumprimento do Interface Segregation Principle. - Fail-Fast Loop: O ciclo de garimpo agora valida o estado do disjuntor antes de cada busca individual, abortando a execução imediatamente se um bloqueio for detectado.
- Isolamento de Setup: Extração da lógica de inicialização do Chromium para
setupBrowser, melhorando a testabilidade e responsabilidade única.
🐛 Bug Fixes & Infra:
- Memory Leak Protection: Implementado encerramento em cascata do Playwright com
defer cleanup(), garantindo o fechamento de processos zumbis do Chromium em caso de panic ou erro. - Pausa de Reciclagem: Implementado descanso programado de 5 a 8 minutos a cada 50 buscas globais para "esfriar" a sessão do bot e limpar rastros de comportamento repetitivo.
- JSON Logging: Migração total para
slog.JSONHandlerem produção, facilitando a indexação e busca de erros no Loki. - Pre-release Pipeline: GitHub Actions atualizado para taguear imagens Docker como
-betaautomaticamente, protegendo a branchlatest.
v1.2.0-beta.1
🛠️ Patch Notes - v1.2.0-beta.1
Essa versão introduz o "Modo Furtivo", equipando o GOrimpo com ferramentas para contornar proteções antibot (como os bloqueios 403 da Cloudflare) e rodar de forma invisível nos marketplaces.
🚀 Features:
- Modo Furtivo (Bypass Anti-Bot): Adicionado suporte a rotação dinâmica de User-Agents e delays aleatórios (Jitter) para imitar o comportamento humano e mitigar bloqueios. - Hot Reload do Scraper: Agora é possível atualizar os limites de Jitter e a lista de User-Agents em tempo real editando o
config.yaml, sem precisar reiniciar a aplicação ou derrubar o container.
🛠️ Refactors:
- Arquitetura Hexagonal: Desacoplamento do
ConfigManager, segregando as interfaces emProvidereWatcher(seguindo o Interface Segregation do SOLID) para manter a camada de Domínio pura e isolada da Infraestrutura. - Isolamento de Setup do Playwright: Extração da inicialização do navegador para a função independentesetupBrowser, melhorando a leitura e a responsabilidade única do método de busca.
🐛 Bug Fixes & ⚙️ Infra:
- Prevenção de Memory Leak: Implementado o encerramento em cascata (rollback manual) no
setupBrowsercomdefer cleanup(). Isso garante que processos fantasmas do Chromium não fiquem rodando na memória caso ocorra falha de conexão ou erro ao abrir páginas. - Pipeline de CI/CD Inteligente: Atualização no GitHub Actions (docker.yml) para identificar dinamicamente releases-betae gerar as tags Docker correspondentes, protegendo a imagemlatestde produção.
v1.1.2
🛠️ Patch Notes - v1.1.1
Esta versão melhora o GOrimpo em produção, introduzindo monitoramento avançado no Grafana, correção de bugs silenciosos no banco de dados e um sistema resiliente de comunicação com a API do Telegram.
✨ Novidades (Features)
- Busca Otimizada (Most Recent First): A ordenação das buscas na plataforma agora é forçada por padrão para "Mais Recentes" (
sf=1). Isso garante que o GOrimpo raspe os anúncios assim que eles saem do forno, focando exatamente nos vendedores que acabaram de postar e precisam de negócio rápido. - Telemetria Completa com Prometheus: Adicionados contadores rigorosos para monitorar o funil de ofertas:
gorimpo_scraped_total: Total bruto de itens lidos da plataforma.gorimpo_valid_total: Ofertas que passaram pelos filtros iniciais.gorimpo_discarded_total: Ofertas barradas (separadas por labels de motivopriceefilter).gorimpo_sent_total: O que foi enviado com sucesso para o Telegram.
(A arquitetura de labels agora permite dashboards no Grafana com filtros dinâmicos por produto/termo de busca).
🐛 Correções de Bugs (Bug Fixes)
- Escudo Anti-Ban do Telegram (Erro 429): O bot agora intercepta ativamente o limite de requisições (
Too Many Requests), faz o parse do JSON de erro e pausa a execução exatamente pelo tempo exigido noretry_afterantes de tentar enviar novamente, garantindo que nenhuma oferta seja perdida. - Falso-Positivo de Duplicados no SQLite: Corrigido um erro silencioso de digitação na tabela
discarded_offersque impedia o salvamento dos itens descartados, fazendo com que o sistema os marcasse incorretamente como duplicados. - Filtro de Preço Máximo (
max_price): Ajustada a lógica de limite de preço. Agora, omitir o valor noconfig.yaml(ou definir como0) é tratado como infinito, em vez de bloquear todas as ofertas válidas.
🛠️ Melhorias Técnicas (Refactors & Under the Hood)
- Logs de Alta Precisão: O terminal agora exibe sumários exatos, separando claramente itens que são "lixos novos" de "lixos já registrados no banco", evitando confusões sobre o funcionamento do filtro.
- Agrupamento de Mensagens de Sistema: O aviso de "Novas Categorias Configuradas" agora utiliza
strings.Builderpara enviar um único bloco de texto eficiente no Telegram, em vez de múltiplas mensagens avulsas.