Add site-wide rewards page with RSS/Atom/Discord feeds and tests
All checks were successful
Deploy to Server / deploy (push) Successful in 26s

This commit is contained in:
Joakim Hellsén 2026-06-14 22:42:10 +02:00
commit 9de0f52af8
Signed by: Joakim Hellsén
SSH key fingerprint: SHA256:/9h/CsExpFp+PRhsfA0xznFx2CGfTT5R/kpuFfUgEQk
8 changed files with 615 additions and 3 deletions

View file

@ -26,6 +26,9 @@ from twitch.feeds import OrganizationRSSFeed
from twitch.feeds import RewardCampaignAtomFeed
from twitch.feeds import RewardCampaignDiscordFeed
from twitch.feeds import RewardCampaignFeed
from twitch.feeds import SitewideRewardCampaignAtomFeed
from twitch.feeds import SitewideRewardCampaignDiscordFeed
from twitch.feeds import SitewideRewardCampaignFeed
if TYPE_CHECKING:
from django.urls.resolvers import URLPattern
@ -108,6 +111,12 @@ urlpatterns: list[URLPattern | URLResolver] = [
view=RewardCampaignFeed(),
name="reward_campaign_feed",
),
# /rss/sitewide/rewards/ - site-wide reward campaigns
path(
route="rss/sitewide/rewards/",
view=SitewideRewardCampaignFeed(),
name="sitewide_reward_feed",
),
# Atom feeds (added alongside RSS to preserve backward compatibility)
path(
route="atom/campaigns/",
@ -139,6 +148,18 @@ urlpatterns: list[URLPattern | URLResolver] = [
view=RewardCampaignAtomFeed(),
name="reward_campaign_feed_atom",
),
# /atom/sitewide/rewards/ - site-wide reward campaigns (Atom)
path(
route="atom/sitewide/rewards/",
view=SitewideRewardCampaignAtomFeed(),
name="sitewide_reward_feed_atom",
),
# /discord/sitewide/rewards/ - site-wide reward campaigns (Discord)
path(
route="discord/sitewide/rewards/",
view=SitewideRewardCampaignDiscordFeed(),
name="sitewide_reward_feed_discord",
),
# Discord feeds (Atom feeds with Discord relative timestamps)
path(
route="discord/campaigns/",