Expand description
Parser de wikitext do PCGamingWiki para dados não disponíveis via Cargo API.
Extrai dois tipos de dados da wikitext bruta da página via action=parse:
-
System requirements — blocos
{{System requirements}}, um por OS. Suporta parâmetros padrão (minCPU,recGPU, etc.), campos duplos (minCPU2,minGPU2para alternativas AMD/Intel) e tiers extras (alt1Title/alt1CPU/etc., comuns em jogos AAA modernos como Witcher 3). -
Game data paths — blocos
{{Game data/config|OS|path}}e{{Game data/saves|OS|path}}.
§Estratégia de parsing
O wikitext não é parseado como árvore — isso seria frágil e lento.
Em vez disso, identificamos blocos de template por nome ({{System requirements),
extraímos o conteúdo até o }} de fechamento correspondente (respeitando
aninhamento), e dentro do bloco extraímos parâmetros com regex simples
|chave = valor.
§Normalização de valores
Todos os valores booleanos da PCGW (true, false, unknown, n/a,
hackable, limited, always on) são preservados como Option<String>
para que o frontend decida a semântica de exibição.
§Integração com fetch.rs
Este módulo é chamado em paralelo com as queries Cargo existentes.
A busca do wikitext usa action=parse&prop=wikitext e requer uma chamada
HTTP adicional — deve respeitar o mesmo rate limiting de 250ms.
Functions§
- fetch_
wikitext - Busca o wikitext bruto de uma página do PCGamingWiki pelo
page_id. - parse_
game_ data_ paths - Extrai todos os caminhos de save e config do wikitext.
- parse_
system_ requirements - Extrai todos os blocos
{{System requirements}}do wikitext. - scrape_
pcgw_ page - Faz o scraping completo de uma página do PCGamingWiki pelo
page_id.