diff --git a/twitch/feeds.py b/twitch/feeds.py index a172e50..85ba7ad 100644 --- a/twitch/feeds.py +++ b/twitch/feeds.py @@ -468,10 +468,7 @@ class DropCampaignFeed(Feed): def items(self) -> list[DropCampaign]: """Return the latest 100 drop campaigns.""" return list( - DropCampaign.objects - .filter(operation_name="DropCampaignDetails") - .select_related("game") - .order_by("-added_at")[:100], + DropCampaign.objects.select_related("game").order_by("-added_at")[:100], ) def item_title(self, item: Model) -> SafeText: @@ -615,10 +612,7 @@ class GameCampaignFeed(Feed): def items(self, obj: Game) -> list[DropCampaign]: """Return the latest 100 drop campaigns for this game, ordered by most recently added.""" return list( - DropCampaign.objects - .filter(game=obj, operation_name="DropCampaignDetails") - .select_related("game") - .order_by("-added_at")[:100], + DropCampaign.objects.filter(game=obj).select_related("game").order_by("-added_at")[:100], ) @@ -653,10 +647,7 @@ class OrganizationCampaignFeed(Feed): def items(self, obj: Organization) -> list[DropCampaign]: """Return the latest 100 drop campaigns for this organization, ordered by most recently added.""" return list( - DropCampaign.objects - .filter(game__owners=obj, operation_name="DropCampaignDetails") - .select_related("game") - .order_by("-added_at")[:100], + DropCampaign.objects.filter(game__owners=obj).select_related("game").order_by("-added_at")[:100], ) def item_author_name(self, item: DropCampaign) -> str: diff --git a/twitch/urls.py b/twitch/urls.py index e31d0ad..494f51e 100644 --- a/twitch/urls.py +++ b/twitch/urls.py @@ -26,8 +26,8 @@ urlpatterns: list[URLPattern] = [ path("docs/rss/", views.docs_rss_view, name="docs_rss"), path("emotes/", views.emote_gallery_view, name="emote_gallery"), path("games/", views.GamesGridView.as_view(), name="game_list"), - path("games//", views.GameDetailView.as_view(), name="game_detail"), path("games/list/", views.GamesListView.as_view(), name="game_list_simple"), + path("games//", views.GameDetailView.as_view(), name="game_detail"), path("organizations/", views.org_list_view, name="org_list"), path("organizations//", views.organization_detail_view, name="organization_detail"), path("rss/campaigns/", DropCampaignFeed(), name="campaign_feed"), diff --git a/twitch/views.py b/twitch/views.py index 3e7b718..2bc41c8 100644 --- a/twitch/views.py +++ b/twitch/views.py @@ -104,7 +104,6 @@ def search_view(request: HttpRequest) -> HttpResponse: results["games"] = Game.objects.filter(Q(name__istartswith=query) | Q(display_name__istartswith=query)) results["campaigns"] = DropCampaign.objects.filter( Q(name__istartswith=query) | Q(description__icontains=query), - operation_name="DropCampaignDetails", ).select_related("game") results["drops"] = TimeBasedDrop.objects.filter(name__istartswith=query).select_related("campaign") results["benefits"] = DropBenefit.objects.filter(name__istartswith=query).prefetch_related( @@ -120,7 +119,6 @@ def search_view(request: HttpRequest) -> HttpResponse: ) results["campaigns"] = DropCampaign.objects.filter( Q(name__icontains=query) | Q(description__icontains=query), - operation_name="DropCampaignDetails", ).select_related("game") results["drops"] = TimeBasedDrop.objects.filter( name__icontains=query, @@ -242,7 +240,7 @@ def drop_campaign_list_view(request: HttpRequest) -> HttpResponse: game_filter: str | None = request.GET.get("game") status_filter: str | None = request.GET.get("status") per_page: int = 100 - queryset: QuerySet[DropCampaign] = DropCampaign.objects.filter(operation_name="DropCampaignDetails") + queryset: QuerySet[DropCampaign] = DropCampaign.objects.all() if game_filter: queryset = queryset.filter(game__twitch_id=game_filter) @@ -351,7 +349,6 @@ def drop_campaign_detail_view(request: HttpRequest, twitch_id: str) -> HttpRespo try: campaign: DropCampaign = DropCampaign.objects.prefetch_related("game__owners").get( twitch_id=twitch_id, - operation_name="DropCampaignDetails", ) except DropCampaign.DoesNotExist as exc: msg = "No campaign found matching the query" @@ -568,7 +565,7 @@ class GameDetailView(DetailView): now: datetime.datetime = timezone.now() all_campaigns: QuerySet[DropCampaign] = ( DropCampaign.objects - .filter(game=game, operation_name="DropCampaignDetails") + .filter(game=game) .prefetch_related("game__owners") .prefetch_related( Prefetch( @@ -677,7 +674,7 @@ def dashboard(request: HttpRequest) -> HttpResponse: now: datetime.datetime = timezone.now() active_campaigns: QuerySet[DropCampaign] = ( DropCampaign.objects - .filter(start_at__lte=now, end_at__gte=now, operation_name="DropCampaignDetails") + .filter(start_at__lte=now, end_at__gte=now) .prefetch_related("game__owners") .prefetch_related( "allow_channels", @@ -735,7 +732,6 @@ def debug_view(request: HttpRequest) -> HttpResponse: # Campaigns with missing or obviously broken images broken_image_campaigns: QuerySet[DropCampaign] = DropCampaign.objects.filter( Q(image_url__isnull=True) | Q(image_url__exact="") | ~Q(image_url__startswith="http"), - operation_name="DropCampaignDetails", ).select_related("game") # Benefits with missing images @@ -755,14 +751,12 @@ def debug_view(request: HttpRequest) -> HttpResponse: # Campaigns with invalid dates (start after end or missing either) invalid_date_campaigns: QuerySet[DropCampaign] = DropCampaign.objects.filter( Q(start_at__gt=F("end_at")) | Q(start_at__isnull=True) | Q(end_at__isnull=True), - operation_name="DropCampaignDetails", ).select_related("game") # Duplicate campaign names per game. # We retrieve the game's name for user-friendly display. duplicate_name_campaigns = ( DropCampaign.objects - .filter(operation_name="DropCampaignDetails") .values("game__display_name", "name", "game__twitch_id") .annotate(name_count=Count("twitch_id")) .filter(name_count__gt=1) @@ -772,7 +766,7 @@ def debug_view(request: HttpRequest) -> HttpResponse: # Campaigns currently active but image missing active_missing_image: QuerySet[DropCampaign] = ( DropCampaign.objects - .filter(start_at__lte=now, end_at__gte=now, operation_name="DropCampaignDetails") + .filter(start_at__lte=now, end_at__gte=now) .filter( Q(image_url__isnull=True) | Q(image_url__exact="") | ~Q(image_url__startswith="http"), ) @@ -942,7 +936,7 @@ class ChannelDetailView(DetailView): now: datetime.datetime = timezone.now() all_campaigns: QuerySet[DropCampaign] = ( DropCampaign.objects - .filter(allow_channels=channel, operation_name="DropCampaignDetails") + .filter(allow_channels=channel) .prefetch_related("game__owners") .prefetch_related( Prefetch(