Sangeetha-Grantha

Metadata Value
Status Completed
Version 1.0.0
Last Updated 2026-09-10
Author Sangeetha Grantha Team
Document Type Evidence record

Guru Guha Blog Source Adapter


[!NOTE] Historical evidence: results, counts, commands, and observations below belong to the original work described here. The editorial update date is not a new test or corpus verification. For present behavior, use current feature map.

Purpose

Fix the guru-guha.blogspot.com extraction pipeline end-to-end so that all 26+ krithis imported from this source have correct structural sections (PALLAVI, ANUPALLAVI, CHARANAM) and clean lyrics — no metadata pollution, no navigation cruft, no URLs in lyric text.

Root Causes

  1. False metadata boundary: Structure parser’s “Meaning” pattern matched “Meaning of Kriti” navigation links at offset 48, truncating the entire lyric window
  2. Navigation table pollution: Language-switch <table> elements extracted as lyric content
  3. URL noise in lyrics: Fragment links rendered with full URLs
  4. Stale sections not upgraded: Re-extraction didn’t replace all-OTHER sections from bad extractions
  5. Retry counter not reset: retry() reset status to PENDING but left attempts at max

Implementation Details

Python Extraction Worker Fixes

Backend Fixes

Code Changes

File Change
tools/krithi-extract-enrich-worker/src/html_extractor.py Navigation table stripping, link filtering
tools/krithi-extract-enrich-worker/src/structure_parser.py Metadata boundary hardening, minimum-content guard
tools/krithi-extract-enrich-worker/src/worker.py URL-based composer inference fallback
tools/krithi-extract-enrich-worker/tests/test_html_extractor.py Guru-guha blog tests
modules/backend/api/.../services/LyricVariantPersistenceService.kt Section upgrade, multi-status backfill
modules/backend/api/.../routes/ImportRoutes.kt Re-extract endpoint, typed response DTOs
modules/backend/dal/.../repositories/KrithiLyricRepository.kt deleteAllVariants()
modules/backend/dal/.../repositories/ExtractionQueueRepository.kt Reset attempts in retry()
database/migrations/42__reset_guru_guha_extraction_attempts.sql Reset extraction attempts for guru-guha entries
database/migrations/43__reset_guru_guha_to_pending.sql Reset guru-guha queue entries to PENDING

Results

Ref: application_documentation/10-implementations/track-097-guru-guha-blog-source-adapter.md


Section index · Documentation home · Feature status