ttvdrops/config/urls.py
Joakim Hellsén 415dd12fd9
All checks were successful
Deploy to Server / deploy (push) Successful in 9s
Improve sitemaps
2026-02-27 06:02:30 +01:00

62 lines
1.9 KiB
Python

from __future__ import annotations
from typing import TYPE_CHECKING
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.sitemaps.views import index
from django.contrib.sitemaps.views import sitemap
from django.urls import include
from django.urls import path
from django.views.decorators.cache import cache_page
from twitch import sitemaps as twitch_sitemaps
from twitch import views as twitch_views
if TYPE_CHECKING:
from django.contrib.sitemaps import Sitemap
from django.urls.resolvers import URLPattern
from django.urls.resolvers import URLResolver
sitemaps: dict[str, type[Sitemap]] = {
"static": twitch_sitemaps.TwitchSitemapGenerator,
"games": twitch_sitemaps.GameSitemap,
"campaigns": twitch_sitemaps.CampaignSitemap,
"organizations": twitch_sitemaps.OrganizationSitemap,
"channels": twitch_sitemaps.ChannelSitemap,
"badges": twitch_sitemaps.BadgeSitemap,
"reward-campaigns": twitch_sitemaps.RewardCampaignSitemap,
}
urlpatterns: list[URLPattern | URLResolver] = [
path(
"sitemap.xml",
cache_page(60 * 60)(index),
{"sitemaps": sitemaps},
name="sitemap",
),
path(
"sitemap-<section>.xml",
cache_page(60 * 60)(sitemap),
{"sitemaps": sitemaps},
name="django.contrib.sitemaps.views.sitemap",
),
path("robots.txt", twitch_views.robots_txt_view, name="robots"),
path(route="", view=include("twitch.urls", namespace="twitch")),
]
# Serve media in development
if settings.DEBUG:
urlpatterns += static(
settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT,
)
# If not testing, include debug toolbar and silk URLs
if not settings.TESTING:
from debug_toolbar.toolbar import debug_toolbar_urls
urlpatterns += [path("silk/", include("silk.urls", namespace="silk"))]
urlpatterns = [*urlpatterns, *debug_toolbar_urls()]