- 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
1 line
11 KiB
JSON
1 line
11 KiB
JSON
{"nodes": [{"id": "$graphify-root$_specs_002_google_news_extractor_tasks_md", "label": "tasks.md", "file_type": "document", "node_kind": "page", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", "label": "Implementation Tasks: Google News Headlines Extractor", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_1_setup_shared_infrastructure", "label": "Phase 1: Setup (Shared Infrastructure)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L9"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_2_foundational_blocking_prerequisites", "label": "Phase 2: Foundational (Blocking Prerequisites)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L18"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_3_user_story_1_extra\u00e7\u00e3o_b\u00e1sica_de_not\u00edcias_por_assunto_e_idioma_priority_p1_mvp", "label": "Phase 3: User Story 1 - Extra\u00e7\u00e3o B\u00e1sica de Not\u00edcias por Assunto e Idioma (Priority: P1) \ud83c\udf1f MVP", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L27"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_tests_for_user_story_1", "label": "Tests for User Story 1 \ud83e\uddea", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L33"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_for_user_story_1", "label": "Implementation for User Story 1", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L36"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_4_user_story_2_filtragem_regional_e_edi\u00e7\u00e3o_geogr\u00e1fica_priority_p2", "label": "Phase 4: User Story 2 - Filtragem Regional e Edi\u00e7\u00e3o Geogr\u00e1fica (Priority: P2)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L45"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_tests_for_user_story_2", "label": "Tests for User Story 2 \ud83e\uddea", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L51"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_for_user_story_2", "label": "Implementation for User Story 2", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L54"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_5_user_story_3_pagina\u00e7\u00e3o_e_controle_de_volume_de_resultados_priority_p3", "label": "Phase 5: User Story 3 - Pagina\u00e7\u00e3o e Controle de Volume de Resultados (Priority: P3)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L61"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_tests_for_user_story_3", "label": "Tests for User Story 3 \ud83e\uddea", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L67"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_for_user_story_3", "label": "Implementation for User Story 3", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L70"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_6_url_resolution_headless_configuration_real_time_logging", "label": "Phase 6: URL Resolution, Headless Configuration & Real-Time Logging", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L77"}, {"id": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_7_verification_e2e_testing", "label": "Phase 7: Verification & E2E Testing", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L88"}], "edges": [{"source": "$graphify-root$_specs_002_google_news_extractor_tasks_md", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_md", "target": "$graphify-root$_specs_002_google_news_extractor_spec_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L5", "weight": 1.0, "target_file": "$graphify-root$/specs/002-google-news-extractor/spec.md"}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_md", "target": "$graphify-root$_specs_002_google_news_extractor_plan_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L5", "weight": 1.0, "target_file": "$graphify-root$/specs/002-google-news-extractor/plan.md"}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_md", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L5", "weight": 1.0, "target_file": "$graphify-root$/specs/002-google-news-extractor/contracts/cli_contract.md"}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_1_setup_shared_infrastructure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_2_foundational_blocking_prerequisites", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_3_user_story_1_extra\u00e7\u00e3o_b\u00e1sica_de_not\u00edcias_por_assunto_e_idioma_priority_p1_mvp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_3_user_story_1_extra\u00e7\u00e3o_b\u00e1sica_de_not\u00edcias_por_assunto_e_idioma_priority_p1_mvp", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_tests_for_user_story_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_3_user_story_1_extra\u00e7\u00e3o_b\u00e1sica_de_not\u00edcias_por_assunto_e_idioma_priority_p1_mvp", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_for_user_story_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L36", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_4_user_story_2_filtragem_regional_e_edi\u00e7\u00e3o_geogr\u00e1fica_priority_p2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L45", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_4_user_story_2_filtragem_regional_e_edi\u00e7\u00e3o_geogr\u00e1fica_priority_p2", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_tests_for_user_story_2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L51", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_4_user_story_2_filtragem_regional_e_edi\u00e7\u00e3o_geogr\u00e1fica_priority_p2", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_for_user_story_2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L54", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_5_user_story_3_pagina\u00e7\u00e3o_e_controle_de_volume_de_resultados_priority_p3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L61", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_5_user_story_3_pagina\u00e7\u00e3o_e_controle_de_volume_de_resultados_priority_p3", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_tests_for_user_story_3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L67", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_5_user_story_3_pagina\u00e7\u00e3o_e_controle_de_volume_de_resultados_priority_p3", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_for_user_story_3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L70", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_6_url_resolution_headless_configuration_real_time_logging", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L77", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_tasks_phase_7_verification_e2e_testing", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/tasks.md", "source_location": "L88", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} |