Files
TextNLPClassifierApp/graphify-out/cache/ast/v0.9.47-s2/85d028e158cce8838ecdcd69f101e4904f1e8274d876ee6cd34ec37ba62aa02e.json
T
andreferraro 6e3d57619b feat(extractor): add Google News headlines extractor with Foxcape headless and URL resolution
- Add standalone CLI script scripts/extract_google_news.py for Google News RSS scraping
- Integrate foxcape in headless mode as primary stealth anti-bot engine
- Implement parallel article URL resolution using googlenewsdecoder and ThreadPoolExecutor
- Support language and regional locale mapping (-l, --lang, --locale)
- Implement real-time progress logging in stderr and --silent flag
- Add unit, integration, and live E2E tests in tests/test_extract_google_news.py
- Add full SpecKit documentation (specs/002-google-news-extractor/)
- Create comprehensive README.md covering both NLP Classifier and Google News Extractor
2026-08-20 11:50:16 -03:00

1 line
4.5 KiB
JSON

{"nodes": [{"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_md", "label": "cli_contract.md", "file_type": "document", "node_kind": "page", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "label": "CLI Contract: Google News Headlines Extractor", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", "label": "1. Comando e Argumentos", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L3"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_sintaxe", "label": "Sintaxe", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L5"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_argumentos_de_linha_de_comando", "label": "Argumentos de Linha de Comando", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L10"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_2_c\u00f3digos_de_sa\u00edda_exit_codes", "label": "2. C\u00f3digos de Sa\u00edda (Exit Codes)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L23"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_3_protocolo_de_streams_stdout_stderr", "label": "3. Protocolo de Streams (Stdout / Stderr)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L33"}], "edges": [{"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_md", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_sintaxe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_argumentos_de_linha_de_comando", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_2_c\u00f3digos_de_sa\u00edda_exit_codes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_3_protocolo_de_streams_stdout_stderr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L33", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}