From 67c35f7e9c16ec87f276ff3c86472021821fd8fe Mon Sep 17 00:00:00 2001 From: cottongin Date: Mon, 6 Apr 2026 18:59:51 -0400 Subject: [PATCH] feat(cover): filter obituaries from cover headlines Exclude articles categorized as "Obituaries" from the headline list passed to cover generation. Applied in all three call sites: manual publish, issue regenerate, and auto-publish scheduler. Made-with: Cursor --- src/routes/issues.py | 12 ++++++++---- src/routes/publish.py | 12 ++++++++---- src/scheduler.py | 5 ++++- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/routes/issues.py b/src/routes/issues.py index abe46b4..d90e16b 100644 --- a/src/routes/issues.py +++ b/src/routes/issues.py @@ -103,13 +103,17 @@ def regenerate(issue_id): issue = Issue.query.get_or_404(issue_id) article_ids = json.loads(issue.article_ids) + articles_for_issue = ( + Article.query.filter(Article.id.in_(article_ids)) + .order_by(Article.pub_date.asc()) + .all() + ) headlines = [ - a.title for a in Article.query.filter(Article.id.in_(article_ids)) - .order_by(Article.pub_date.asc()).all() + a.title for a in articles_for_issue + if "Obituaries" not in json.loads(a.categories) ] - categories_list = [] - for a in Article.query.filter(Article.id.in_(article_ids)).all(): + for a in articles_for_issue: categories_list.extend(json.loads(a.categories)) try: diff --git a/src/routes/publish.py b/src/routes/publish.py index 31c1c29..f714bba 100644 --- a/src/routes/publish.py +++ b/src/routes/publish.py @@ -159,13 +159,17 @@ def create_issue(): week_start = date.fromisoformat(week_start_str) week_end = date.fromisoformat(week_end_str) + articles_for_issue = ( + Article.query.filter(Article.id.in_(included_ids)) + .order_by(Article.pub_date.asc()) + .all() + ) headlines = [ - a.title for a in Article.query.filter(Article.id.in_(included_ids)) - .order_by(Article.pub_date.asc()).all() + a.title for a in articles_for_issue + if "Obituaries" not in json.loads(a.categories) ] - categories_list = [] - for a in Article.query.filter(Article.id.in_(included_ids)).all(): + for a in articles_for_issue: categories_list.extend(json.loads(a.categories)) try: diff --git a/src/scheduler.py b/src/scheduler.py index 54589cf..8bf08a5 100644 --- a/src/scheduler.py +++ b/src/scheduler.py @@ -76,7 +76,10 @@ class SchedulerManager: return article_ids = [a.id for a in articles] - headlines = [a.title for a in articles] + headlines = [ + a.title for a in articles + if "Obituaries" not in json.loads(a.categories) + ] categories_list = [] for a in articles: