Compare commits
No commits in common. "859e01faf4e19d90e69e56f2ca6518fd65d8e060" and "1790bac2e08c370db41ab26425ff34d9a70873d6" have entirely different histories.
859e01faf4
...
1790bac2e0
2 changed files with 39 additions and 50 deletions
|
|
@ -256,6 +256,7 @@ def sitemap_static_view(request: HttpRequest) -> HttpResponse:
|
||||||
Returns:
|
Returns:
|
||||||
HttpResponse: The rendered sitemap XML.
|
HttpResponse: The rendered sitemap XML.
|
||||||
"""
|
"""
|
||||||
|
# `request` is unused but required by Django's view signature.
|
||||||
base_url: str = _build_base_url().rstrip("/")
|
base_url: str = _build_base_url().rstrip("/")
|
||||||
sitemap_urls: list[dict[str, str]] = [
|
sitemap_urls: list[dict[str, str]] = [
|
||||||
{"loc": f"{base_url}{reverse('core:dashboard')}"},
|
{"loc": f"{base_url}{reverse('core:dashboard')}"},
|
||||||
|
|
@ -326,16 +327,14 @@ def sitemap_twitch_channels_view(request: HttpRequest) -> HttpResponse:
|
||||||
Returns:
|
Returns:
|
||||||
HttpResponse: The rendered sitemap XML.
|
HttpResponse: The rendered sitemap XML.
|
||||||
"""
|
"""
|
||||||
base_url: str = _build_base_url().rstrip("/")
|
# `request` is unused but required by Django's view signature.
|
||||||
channel_detail_prefix: str = reverse("twitch:channel_list")
|
base_url: str = _build_base_url()
|
||||||
sitemap_urls: list[dict[str, str]] = []
|
sitemap_urls: list[dict[str, str]] = []
|
||||||
|
|
||||||
channels: QuerySet[Channel] = Channel.objects.only(
|
channels: QuerySet[Channel] = Channel.objects.all()
|
||||||
"twitch_id",
|
|
||||||
"updated_at",
|
|
||||||
).order_by()
|
|
||||||
for channel in channels:
|
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}
|
entry: dict[str, str] = {"loc": full_url}
|
||||||
if channel.updated_at:
|
if channel.updated_at:
|
||||||
entry["lastmod"] = channel.updated_at.isoformat()
|
entry["lastmod"] = channel.updated_at.isoformat()
|
||||||
|
|
@ -355,34 +354,29 @@ def sitemap_twitch_drops_view(request: HttpRequest) -> HttpResponse:
|
||||||
Returns:
|
Returns:
|
||||||
HttpResponse: The rendered sitemap XML.
|
HttpResponse: The rendered sitemap XML.
|
||||||
"""
|
"""
|
||||||
base_url: str = _build_base_url().rstrip("/")
|
# `request` is unused but required by Django's view signature.
|
||||||
campaign_detail_prefix: str = reverse("twitch:campaign_list")
|
base_url: str = _build_base_url()
|
||||||
reward_campaign_detail_prefix: str = reverse("twitch:reward_campaign_list")
|
|
||||||
sitemap_urls: list[dict[str, str]] = []
|
sitemap_urls: list[dict[str, str]] = []
|
||||||
|
|
||||||
campaigns: QuerySet[DropCampaign] = (
|
campaigns: QuerySet[DropCampaign] = DropCampaign.objects.filter(
|
||||||
DropCampaign.objects
|
is_fully_imported=True,
|
||||||
.filter(
|
|
||||||
is_fully_imported=True,
|
|
||||||
)
|
|
||||||
.only("twitch_id", "updated_at")
|
|
||||||
.order_by()
|
|
||||||
)
|
)
|
||||||
for campaign in campaigns:
|
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}
|
campaign_url_entry: dict[str, str] = {"loc": full_url}
|
||||||
if campaign.updated_at:
|
if campaign.updated_at:
|
||||||
campaign_url_entry["lastmod"] = campaign.updated_at.isoformat()
|
campaign_url_entry["lastmod"] = campaign.updated_at.isoformat()
|
||||||
sitemap_urls.append(campaign_url_entry)
|
sitemap_urls.append(campaign_url_entry)
|
||||||
|
|
||||||
reward_campaigns: QuerySet[RewardCampaign] = RewardCampaign.objects.only(
|
reward_campaigns: QuerySet[RewardCampaign] = RewardCampaign.objects.all()
|
||||||
"twitch_id",
|
|
||||||
"updated_at",
|
|
||||||
).order_by()
|
|
||||||
for reward_campaign in reward_campaigns:
|
for reward_campaign in reward_campaigns:
|
||||||
full_url = (
|
resource_url = reverse(
|
||||||
f"{base_url}{reward_campaign_detail_prefix}{reward_campaign.twitch_id}/"
|
"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}
|
reward_campaign_url_entry: dict[str, str] = {"loc": full_url}
|
||||||
if reward_campaign.updated_at:
|
if reward_campaign.updated_at:
|
||||||
reward_campaign_url_entry["lastmod"] = (
|
reward_campaign_url_entry["lastmod"] = (
|
||||||
|
|
@ -405,15 +399,14 @@ def sitemap_twitch_others_view(request: HttpRequest) -> HttpResponse:
|
||||||
Returns:
|
Returns:
|
||||||
HttpResponse: The rendered sitemap XML.
|
HttpResponse: The rendered sitemap XML.
|
||||||
"""
|
"""
|
||||||
base_url: str = _build_base_url().rstrip("/")
|
# `request` is unused but required by Django's view signature.
|
||||||
game_detail_prefix: str = reverse("twitch:games_grid")
|
base_url: str = _build_base_url()
|
||||||
organization_detail_prefix: str = reverse("twitch:org_list")
|
|
||||||
badge_set_detail_prefix: str = reverse("twitch:badge_list")
|
|
||||||
sitemap_urls: list[dict[str, str]] = []
|
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:
|
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}
|
entry: dict[str, str] = {"loc": full_url}
|
||||||
|
|
||||||
if game.updated_at:
|
if game.updated_at:
|
||||||
|
|
@ -421,12 +414,10 @@ def sitemap_twitch_others_view(request: HttpRequest) -> HttpResponse:
|
||||||
|
|
||||||
sitemap_urls.append(entry)
|
sitemap_urls.append(entry)
|
||||||
|
|
||||||
orgs: QuerySet[Organization] = Organization.objects.only(
|
orgs: QuerySet[Organization] = Organization.objects.all()
|
||||||
"twitch_id",
|
|
||||||
"updated_at",
|
|
||||||
).order_by()
|
|
||||||
for org in orgs:
|
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}
|
entry: dict[str, str] = {"loc": full_url}
|
||||||
|
|
||||||
if org.updated_at:
|
if org.updated_at:
|
||||||
|
|
@ -434,9 +425,10 @@ def sitemap_twitch_others_view(request: HttpRequest) -> HttpResponse:
|
||||||
|
|
||||||
sitemap_urls.append(entry)
|
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:
|
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})
|
sitemap_urls.append({"loc": full_url})
|
||||||
|
|
||||||
# Emotes currently don't have individual detail pages, but keep a listing here.
|
# 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:
|
Returns:
|
||||||
HttpResponse: The rendered sitemap XML.
|
HttpResponse: The rendered sitemap XML.
|
||||||
"""
|
"""
|
||||||
base_url: str = _build_base_url().rstrip("/")
|
# `request` is unused but required by Django's view signature.
|
||||||
kick_campaign_detail_prefix: str = reverse("kick:campaign_list")
|
base_url: str = _build_base_url()
|
||||||
sitemap_urls: list[dict[str, str]] = []
|
sitemap_urls: list[dict[str, str]] = []
|
||||||
|
|
||||||
kick_campaigns: QuerySet[KickDropCampaign] = (
|
kick_campaigns: QuerySet[KickDropCampaign] = KickDropCampaign.objects.filter(
|
||||||
KickDropCampaign.objects
|
is_fully_imported=True,
|
||||||
.filter(
|
|
||||||
is_fully_imported=True,
|
|
||||||
)
|
|
||||||
.only("kick_id", "updated_at")
|
|
||||||
.order_by()
|
|
||||||
)
|
)
|
||||||
for campaign in kick_campaigns:
|
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}
|
entry: dict[str, str] = {"loc": full_url}
|
||||||
if campaign.updated_at:
|
if campaign.updated_at:
|
||||||
entry["lastmod"] = campaign.updated_at.isoformat()
|
entry["lastmod"] = campaign.updated_at.isoformat()
|
||||||
|
|
@ -489,6 +477,7 @@ def sitemap_youtube_view(request: HttpRequest) -> HttpResponse:
|
||||||
Returns:
|
Returns:
|
||||||
HttpResponse: The rendered sitemap XML.
|
HttpResponse: The rendered sitemap XML.
|
||||||
"""
|
"""
|
||||||
|
# `request` is unused but required by Django's view signature.
|
||||||
base_url: str = _build_base_url()
|
base_url: str = _build_base_url()
|
||||||
sitemap_urls: list[dict[str, str]] = [
|
sitemap_urls: list[dict[str, str]] = [
|
||||||
{"loc": f"{base_url}{reverse('youtube:index')}"},
|
{"loc": f"{base_url}{reverse('youtube:index')}"},
|
||||||
|
|
|
||||||
|
|
@ -268,7 +268,7 @@ def _active_reward_campaigns(
|
||||||
return queryset.filter(starts_at__lte=now, ends_at__gte=now)
|
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.
|
"""Helper method to append a details link to the description if available.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
|
@ -1017,7 +1017,7 @@ class DropCampaignFeed(TTVDropsBaseFeed):
|
||||||
parts.extend(generate_date_html(item=item))
|
parts.extend(generate_date_html(item=item))
|
||||||
parts.extend(generate_drops_summary_html(item=item))
|
parts.extend(generate_drops_summary_html(item=item))
|
||||||
parts.extend(generate_channels_html(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))
|
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_discord_date_html(item=item))
|
||||||
parts.extend(generate_drops_summary_html(item=item))
|
parts.extend(generate_drops_summary_html(item=item))
|
||||||
parts.extend(generate_channels_html(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))
|
return SafeText("".join(str(p) for p in parts))
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue