31 lines
797 B
Python
31 lines
797 B
Python
import logging
|
|
import pprint
|
|
|
|
from pelican import signals
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
def modify_feed(context, feed):
|
|
articles = {}
|
|
|
|
for article in context['articles']:
|
|
if article.title in articles:
|
|
raise Exception(f"Duplicate article title found: {article.title}")
|
|
articles[article.title] = article
|
|
|
|
for item in feed.items:
|
|
item_title = item['title']
|
|
article = articles.get(item_title)
|
|
if not article:
|
|
raise Exception(f"Article not found for title: {item_title}")
|
|
|
|
if not hasattr(article, 'guid') or not article.guid:
|
|
raise Exception(f"Article '{article.title}' is missing a guid.")
|
|
|
|
item['unique_id'] = article.guid
|
|
|
|
|
|
def register():
|
|
signals.feed_generated.connect(modify_feed)
|
|
|