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
This commit is contained in:
cottongin
2026-04-06 18:59:51 -04:00
parent 9a8b586292
commit 67c35f7e9c
3 changed files with 20 additions and 9 deletions

View File

@@ -103,13 +103,17 @@ def regenerate(issue_id):
issue = Issue.query.get_or_404(issue_id) issue = Issue.query.get_or_404(issue_id)
article_ids = json.loads(issue.article_ids) 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 = [ headlines = [
a.title for a in Article.query.filter(Article.id.in_(article_ids)) a.title for a in articles_for_issue
.order_by(Article.pub_date.asc()).all() if "Obituaries" not in json.loads(a.categories)
] ]
categories_list = [] 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)) categories_list.extend(json.loads(a.categories))
try: try:

View File

@@ -159,13 +159,17 @@ def create_issue():
week_start = date.fromisoformat(week_start_str) week_start = date.fromisoformat(week_start_str)
week_end = date.fromisoformat(week_end_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 = [ headlines = [
a.title for a in Article.query.filter(Article.id.in_(included_ids)) a.title for a in articles_for_issue
.order_by(Article.pub_date.asc()).all() if "Obituaries" not in json.loads(a.categories)
] ]
categories_list = [] 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)) categories_list.extend(json.loads(a.categories))
try: try:

View File

@@ -76,7 +76,10 @@ class SchedulerManager:
return return
article_ids = [a.id for a in articles] 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 = [] categories_list = []
for a in articles: for a in articles: