Contribuindo
Adicionando um feed (o caso mais comum)
-
Edite
rss.txte acrescente uma linha:Veículo - Editoria|https://exemplo.com.br/editoria/feed- Prefira a URL do feed RSS; use o sufixo
| HTMLsó se o site não tiver RSS utilizável (regras completas); - use
-no nome para alimentarfeed_group/feed_section.
- Prefira a URL do feed RSS; use o sufixo
-
Teste localmente sem gravar nada:
python scripts/collect_news.py --dry-run -v --limit-per-feed 3 -
Abra o pull request. O CI valida
rss.txt, roda os testes e faz uma coleta de amostra — confira no resumo do job se o feed novo respondeu.
Mudanças no código do coletor
- O código segue o desenho descrito em Arquitetura:
responsabilidade única por módulo (
feedlist→fetcher→parsers→collector), e a CLI só amarra as peças; - regras que não podem quebrar:
data/é append-only — nunca sobrescrever ou apagar snapshots;- um feed com problema não pode derrubar a coleta inteira;
- credenciais de proxy nunca aparecem em logs, relatórios ou dados
(use
mask()); - jobs de CI que acessam a internet não recebem token de escrita;
- todo comportamento novo precisa de teste offline (como) — o CI e o
workflow semanal rodam
unittestantes de qualquer coleta; - mudanças no esquema do JSONL exigem bump de
SCHEMA_VERSION(scripts/brnews/collector.py) e atualização de Formato dos dados e dedata/README.md.
Mudanças nesta documentação
A documentação vive em website/docs/ (Markdown/MDX do Docusaurus):
cd website
npm install
npm run start # preview com hot reload
npm run build # o build precisa passar sem links quebrados
A página inicial do projeto (Jekyll) vive em site/. As duas são publicadas juntas
pelo workflow pages.yml a cada push na main.
Dados
Os snapshots em data/ são gerados pelo workflow semanal. Evite editá-los
manualmente; se um snapshot tiver problema, prefira documentar e corrigir o coletor
— o histórico é parte do valor do acervo.