from django.conf import settings from django.contrib.syndication.views import Feed from django.shortcuts import get_object_or_404 from taggit.models import Tag from apps.blog.models import ArticlePage class AllArticlesFeed(Feed): title = "No Hype AI" link = "/articles/" description = "Honest AI coding tool reviews for developers." def items(self): return ArticlePage.objects.live().order_by("-first_published_at")[:20] def item_title(self, item: ArticlePage): return item.title def item_description(self, item: ArticlePage): return item.summary def item_pubdate(self, item: ArticlePage): return item.first_published_at def item_author_name(self, item: ArticlePage): return item.author.name def item_link(self, item: ArticlePage): return f"{settings.WAGTAILADMIN_BASE_URL}{item.url}" class TagArticlesFeed(AllArticlesFeed): def get_object(self, request, tag_slug: str): return get_object_or_404(Tag, slug=tag_slug) def title(self, obj): return f"No Hype AI — {obj.name}" def items(self, obj): return ArticlePage.objects.live().filter(tags=obj).order_by("-first_published_at")[:20]