Communitygithub.com

baronguyen001/ai-automation-skills

Gira um pool de proxies HTTP/SOCKS em modo round-robin, com rastreamento de falhas e um período de espera que desativa proxies mortos antes de tentar novamente. Você fornece a lista de proxies via env – nenhum proxy é incluído. Use para: rodar proxies, distribuir requisições entre proxies, evitar bloqueios de IP, repetir através de um proxy diferente ou verificar a saúde dos proxies.

O que é ai-automation-skills?

Esta skill implementa um rotador de proxies que distribui requisições de scraping entre um pool de proxies HTTP/SOCKS, utilizando seleção round-robin e rastreamento de falhas para evitar proxies que estejam mortos. Quando um proxy falha repetidamente, ele é colocado em um período de espera (cooldown) antes de ser testado novamente, permitindo que o sistema se recupere automaticamente de proxies intermitentes ou permanentemente ruins. A skill é acionada quando o usuário solicita rotação de proxies, distribuição de requisições entre proxies, bloqueio de IP ou retry através de outro proxy, sendo útil em cenários de scraping web onde múltiplas requisições precisam ser distribuídas para evitar bloqueios. Ela suporta plataformas como Claude Code, Cursor e Codex, e funciona através de um arquivo Python (`rotator.py`) referenciado, que se integra com variáveis de ambiente para carregar a lista de proxies e com uma função de relatório para alimentar o pool de proxies, garantindo auto-cura.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/baronguyen001/ai-automation-skills/tree/HEAD/skills/proxy-rotator

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Rotador de Proxies

Use esta skill quando um scraper precisar distribuir requisições entre vários proxies e parar de sobrecarregar aqueles que se tornaram inativos. O rotador entrega o próximo proxy saudável, conta falhas e desativa um proxy por um período de espera após falhar muitas vezes – depois dá a ele outra chance. Você fornece a lista de proxies; nada é comprometido.

Quando invocar

  • O usuário diz: "rodar proxies", "distribuir requisições entre proxies", "parar de ser bloqueado por IP", "repetir através de outro proxy".
  • O código na conversa faz muitas requisições de saída e precisa distribuí-las por um pool de proxies.

Quando NÃO invocar

  • Uma única conexão é suficiente, ou o destino permite explicitamente seu volume – rodar proxies adiciona complexidade desnecessária.
  • A intenção é evadir um bloqueio explícito ou abusar de um serviço; mantenha o uso dentro dos termos do destino.

Exemplo concreto

Entrada do usuário:

Tenho 5 proxies. Faça round-robin entre eles e pule qualquer um que começar a falhar.

Saída:

import requests
from rotator import ProxyRotator

rot = ProxyRotator.from_env()        # PROXY_POOL="http://h1:8080,socks5://h2:1080,..."
for url in urls:
    p = rot.get()                    # próximo proxy saudável
    try:
        r = requests.get(url, proxies=p.as_dict(), timeout=15)
        rot.report(p, ok=r.ok)       # alimenta o resultado de volta para que o pool se auto-cure
    except Exception:
        rot.report(p, ok=False)      # muitas falhas -> desativado por um período de espera

Padrão a aplicar

  1. Carregue proxies do ambiente ou de um arquivo ignorado pelo git – nunca faça commit de URLs reais de proxy ou credenciais.
  2. Sempre chame report(proxy, ok=...) após cada requisição para que proxies com falha sejam desativados automaticamente.
  3. Ajuste max_fails e cooldown para o destino; um cooldown curto recupera proxies instáveis, um longo descarta os ruins.
  4. Execute health_check antes de um lote grande para desativar proxies mortos antecipadamente.
  5. Trate o erro "nenhum proxy saudável" – recue e repita em vez de quebrar a execução.

Referência: assets/rotator.py.

Fonte

Extraído do uso em produção nos projetos de automação do autor. v1.0.0. Veja também: [[playwright-login-session]], [[pipeline-orchestrator]], [[cron-dispatch]].

→ Construa o bot executável completo com Trawlkit.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

baronguyen001/ai-automation-skills

Schedule any script to run on a recurring schedule on Windows (Task Scheduler) or Linux (cron) - register, list, and remove jobs from one command, with logging to a file and a guard against overlapping runs. Use for schedule a script, run nightly, set up a cron job, windows task scheduler, or run on a timer.

baronguyen001/ai-automation-skills

Turn a run's list of result dicts into a schema'd CSV and a Markdown table from one column spec - declare columns once, emit both, with stable ordering and safe escaping, stdlib only, no pandas. Use when the user asks to write results to CSV, export a report, make a markdown summary table, or save a run's output as a spreadsheet.

baronguyen001/ai-automation-skills

Strip HTML to clean plain text with the standard library only (no BeautifulSoup/lxml): drops script/style, turns block tags into line breaks, and collapses whitespace. Use when the user wants readable text from an HTML page/email, to clean scraped HTML before sending it to an LLM, or to build a text index from web content.

baronguyen001/ai-automation-skills

Persist records between scheduled runs as append-only JSON Lines (one object per line) with streaming reads and optional key-based dedup, stdlib only. Use when the user wants to log run results to JSONL, append events to a file, dedup records by id across runs, or keep a simple durable history without a database.

baronguyen001/ai-automation-skills

Extract text and simple table-like rows from a PDF for downstream AI without OCR binaries. Use when the user asks to read a PDF, turn a PDF into text, pull simple tables from statements/reports, or feed PDF content into an LLM pipeline.

baronguyen001/ai-automation-skills

Parse an RSS 2.0 or Atom feed into normalized item dicts (title, link, id, published, summary) with the standard library only - no feedparser. Use when the user asks to read an RSS/Atom feed, poll a blog/news feed, extract feed entries, or watch a site that publishes a feed.

baronguyen001/ai-automation-skills

Upload and download run artifacts from S3-compatible storage with BYO bucket and credentials from env. Use when the user asks to store scraper output, archive reports, publish artifacts to object storage, fetch a prior run file, or use MinIO/R2/Spaces/S3 without hardcoding credentials.

baronguyen001/ai-automation-skills

Draft a short-form TikTok/Reels/Shorts or long-form video script from a topic and creator persona file - hook variants, beat-structured body, CTA, b-roll cues, caption overlays, and [STORY]/[NUMBER] slots so the model never fabricates personal facts. Use for write a video script, tiktok script, youtube script, or /shortform-script.

baronguyen001/ai-automation-skills

Give scheduled scripts memory between runs with one SQLite file - a seen-set for dedup, a key/value cursor to resume where you left off, and order-preserving new-item filtering. Use for dedup across runs, don't re-alert the same item, remember the last id, resume a scraper, or persist state between cron runs.

Habilidades Relacionadas