feat(seo): expand city coverage to 40 cities + DuckDB refresh script
- 22 new cities: Madrid, Barcelona, Valencia, Seville, Málaga (ES), Paris, Lyon, Marseille (FR), Milan, Rome (IT), Amsterdam (NL), Vienna (AT), Zurich (CH), Stockholm (SE), Lisbon, Porto (PT), Brussels (BE), Dubai (AE), Sydney, Melbourne (AU), Dublin (IE) - Total: 40 cities × EN + DE = 80 articles - refresh_from_daas.py: sync template_data from planner_defaults serving table; dry-run mode; graceful when analytics unavailable Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
- Expanded programmatic SEO city coverage from 18 to 40 cities (+22 cities across ES, FR,
|
||||
IT, NL, AT, CH, SE, PT, BE, AE, AU, IE) — generates 80 articles (40 cities × EN + DE)
|
||||
- `scripts/refresh_from_daas.py`: syncs template_data rows from DuckDB `planner_defaults`
|
||||
serving table; supports `--dry-run` and `--generate` flags; graceful no-op when DuckDB unavailable
|
||||
|
||||
|
||||
### Added
|
||||
- `analytics.py`: DuckDB read-only reader (`open_analytics_db`, `close_analytics_db`,
|
||||
`fetch_analytics`) registered in app lifecycle (startup/shutdown)
|
||||
|
||||
Reference in New Issue
Block a user