diff --git a/core/views.py b/core/views.py index 36d0748..b03d991 100644 --- a/core/views.py +++ b/core/views.py @@ -256,6 +256,7 @@ def sitemap_static_view(request: HttpRequest) -> HttpResponse: Returns: HttpResponse: The rendered sitemap XML. """ + # `request` is unused but required by Django's view signature. base_url: str = _build_base_url().rstrip("/") sitemap_urls: list[dict[str, str]] = [ {"loc": f"{base_url}{reverse('core:dashboard')}"}, @@ -326,16 +327,14 @@ def sitemap_twitch_channels_view(request: HttpRequest) -> HttpResponse: Returns: HttpResponse: The rendered sitemap XML. """ - base_url: str = _build_base_url().rstrip("/") - channel_detail_prefix: str = reverse("twitch:channel_list") + # `request` is unused but required by Django's view signature. + base_url: str = _build_base_url() sitemap_urls: list[dict[str, str]] = [] - channels: QuerySet[Channel] = Channel.objects.only( - "twitch_id", - "updated_at", - ).order_by() + channels: QuerySet[Channel] = Channel.objects.all() for channel in channels: - full_url: str = f"{base_url}{channel_detail_prefix}{channel.twitch_id}/" + resource_url: str = reverse("twitch:channel_detail", args=[channel.twitch_id]) + full_url: str = f"{base_url}{resource_url}" entry: dict[str, str] = {"loc": full_url} if channel.updated_at: entry["lastmod"] = channel.updated_at.isoformat() @@ -355,34 +354,29 @@ def sitemap_twitch_drops_view(request: HttpRequest) -> HttpResponse: Returns: HttpResponse: The rendered sitemap XML. """ - base_url: str = _build_base_url().rstrip("/") - campaign_detail_prefix: str = reverse("twitch:campaign_list") - reward_campaign_detail_prefix: str = reverse("twitch:reward_campaign_list") + # `request` is unused but required by Django's view signature. + base_url: str = _build_base_url() sitemap_urls: list[dict[str, str]] = [] - campaigns: QuerySet[DropCampaign] = ( - DropCampaign.objects - .filter( - is_fully_imported=True, - ) - .only("twitch_id", "updated_at") - .order_by() + campaigns: QuerySet[DropCampaign] = DropCampaign.objects.filter( + is_fully_imported=True, ) for campaign in campaigns: - full_url: str = f"{base_url}{campaign_detail_prefix}{campaign.twitch_id}/" + resource_url: str = reverse("twitch:campaign_detail", args=[campaign.twitch_id]) + full_url: str = f"{base_url}{resource_url}" campaign_url_entry: dict[str, str] = {"loc": full_url} if campaign.updated_at: campaign_url_entry["lastmod"] = campaign.updated_at.isoformat() sitemap_urls.append(campaign_url_entry) - reward_campaigns: QuerySet[RewardCampaign] = RewardCampaign.objects.only( - "twitch_id", - "updated_at", - ).order_by() + reward_campaigns: QuerySet[RewardCampaign] = RewardCampaign.objects.all() for reward_campaign in reward_campaigns: - full_url = ( - f"{base_url}{reward_campaign_detail_prefix}{reward_campaign.twitch_id}/" + resource_url = reverse( + "twitch:reward_campaign_detail", + args=[reward_campaign.twitch_id], ) + + full_url: str = f"{base_url}{resource_url}" reward_campaign_url_entry: dict[str, str] = {"loc": full_url} if reward_campaign.updated_at: reward_campaign_url_entry["lastmod"] = ( @@ -405,15 +399,14 @@ def sitemap_twitch_others_view(request: HttpRequest) -> HttpResponse: Returns: HttpResponse: The rendered sitemap XML. """ - base_url: str = _build_base_url().rstrip("/") - game_detail_prefix: str = reverse("twitch:games_grid") - organization_detail_prefix: str = reverse("twitch:org_list") - badge_set_detail_prefix: str = reverse("twitch:badge_list") + # `request` is unused but required by Django's view signature. + base_url: str = _build_base_url() sitemap_urls: list[dict[str, str]] = [] - games: QuerySet[Game] = Game.objects.only("twitch_id", "updated_at").order_by() + games: QuerySet[Game] = Game.objects.all() for game in games: - full_url: str = f"{base_url}{game_detail_prefix}{game.twitch_id}/" + resource_url: str = reverse("twitch:game_detail", args=[game.twitch_id]) + full_url: str = f"{base_url}{resource_url}" entry: dict[str, str] = {"loc": full_url} if game.updated_at: @@ -421,12 +414,10 @@ def sitemap_twitch_others_view(request: HttpRequest) -> HttpResponse: sitemap_urls.append(entry) - orgs: QuerySet[Organization] = Organization.objects.only( - "twitch_id", - "updated_at", - ).order_by() + orgs: QuerySet[Organization] = Organization.objects.all() for org in orgs: - full_url: str = f"{base_url}{organization_detail_prefix}{org.twitch_id}/" + resource_url: str = reverse("twitch:organization_detail", args=[org.twitch_id]) + full_url: str = f"{base_url}{resource_url}" entry: dict[str, str] = {"loc": full_url} if org.updated_at: @@ -434,9 +425,10 @@ def sitemap_twitch_others_view(request: HttpRequest) -> HttpResponse: sitemap_urls.append(entry) - badge_sets: QuerySet[ChatBadgeSet] = ChatBadgeSet.objects.only("set_id").order_by() + badge_sets: QuerySet[ChatBadgeSet] = ChatBadgeSet.objects.all() for badge_set in badge_sets: - full_url = f"{base_url}{badge_set_detail_prefix}{badge_set.set_id}/" + resource_url = reverse("twitch:badge_set_detail", args=[badge_set.set_id]) + full_url = f"{base_url}{resource_url}" sitemap_urls.append({"loc": full_url}) # Emotes currently don't have individual detail pages, but keep a listing here. @@ -456,20 +448,16 @@ def sitemap_kick_view(request: HttpRequest) -> HttpResponse: Returns: HttpResponse: The rendered sitemap XML. """ - base_url: str = _build_base_url().rstrip("/") - kick_campaign_detail_prefix: str = reverse("kick:campaign_list") + # `request` is unused but required by Django's view signature. + base_url: str = _build_base_url() sitemap_urls: list[dict[str, str]] = [] - kick_campaigns: QuerySet[KickDropCampaign] = ( - KickDropCampaign.objects - .filter( - is_fully_imported=True, - ) - .only("kick_id", "updated_at") - .order_by() + kick_campaigns: QuerySet[KickDropCampaign] = KickDropCampaign.objects.filter( + is_fully_imported=True, ) for campaign in kick_campaigns: - full_url: str = f"{base_url}{kick_campaign_detail_prefix}{campaign.kick_id}/" + resource_url: str = reverse("kick:campaign_detail", args=[campaign.kick_id]) + full_url: str = f"{base_url}{resource_url}" entry: dict[str, str] = {"loc": full_url} if campaign.updated_at: entry["lastmod"] = campaign.updated_at.isoformat() @@ -489,6 +477,7 @@ def sitemap_youtube_view(request: HttpRequest) -> HttpResponse: Returns: HttpResponse: The rendered sitemap XML. """ + # `request` is unused but required by Django's view signature. base_url: str = _build_base_url() sitemap_urls: list[dict[str, str]] = [ {"loc": f"{base_url}{reverse('youtube:index')}"}, diff --git a/twitch/feeds.py b/twitch/feeds.py index b235c58..cd69848 100644 --- a/twitch/feeds.py +++ b/twitch/feeds.py @@ -268,7 +268,7 @@ def _active_reward_campaigns( return queryset.filter(starts_at__lte=now, ends_at__gte=now) -def generate_details_link_html(item: DropCampaign) -> list[SafeText]: +def genereate_details_link_html(item: DropCampaign) -> list[SafeText]: """Helper method to append a details link to the description if available. Args: @@ -1017,7 +1017,7 @@ class DropCampaignFeed(TTVDropsBaseFeed): parts.extend(generate_date_html(item=item)) parts.extend(generate_drops_summary_html(item=item)) parts.extend(generate_channels_html(item)) - parts.extend(generate_details_link_html(item)) + parts.extend(genereate_details_link_html(item)) return SafeText("".join(str(p) for p in parts)) @@ -1556,7 +1556,7 @@ class DropCampaignDiscordFeed(TTVDropsAtomBaseFeed, DropCampaignFeed): parts.extend(generate_discord_date_html(item=item)) parts.extend(generate_drops_summary_html(item=item)) parts.extend(generate_channels_html(item)) - parts.extend(generate_details_link_html(item)) + parts.extend(genereate_details_link_html(item)) return SafeText("".join(str(p) for p in parts))