9ddbe26e4c
Now that we aren't using the middleware, add cache headers on our primary pages so we can prevent some repeat traffic, and cache all feeds for five minutes. Signed-off-by: Dan McGee <dan@archlinux.org>
112 lines
4.0 KiB
Python
112 lines
4.0 KiB
Python
import os.path
|
|
|
|
# Stupid Django. Don't remove these "unused" handler imports
|
|
from django.conf.urls.defaults import handler500, handler404, include, patterns
|
|
from django.conf import settings
|
|
from django.contrib import admin
|
|
|
|
from django.views.generic import TemplateView
|
|
from django.views.decorators.cache import cache_page
|
|
from django.views.i18n import null_javascript_catalog
|
|
|
|
from feeds import PackageFeed, NewsFeed
|
|
import sitemaps
|
|
|
|
our_sitemaps = {
|
|
'base': sitemaps.BaseSitemap,
|
|
'news': sitemaps.NewsSitemap,
|
|
'packages': sitemaps.PackagesSitemap,
|
|
'package-files': sitemaps.PackageFilesSitemap,
|
|
'package-groups': sitemaps.PackageGroupsSitemap,
|
|
'split-packages': sitemaps.SplitPackagesSitemap,
|
|
}
|
|
|
|
admin.autodiscover()
|
|
urlpatterns = []
|
|
|
|
# Feeds patterns, used later
|
|
feeds_patterns = patterns('',
|
|
(r'^$', 'public.views.feeds', {}, 'feeds-list'),
|
|
(r'^news/$', cache_page(300)(NewsFeed())),
|
|
(r'^packages/$', cache_page(300)(PackageFeed())),
|
|
(r'^packages/(?P<arch>[A-z0-9]+)/$',
|
|
cache_page(300)(PackageFeed())),
|
|
(r'^packages/(?P<arch>[A-z0-9]+)/(?P<repo>[A-z0-9\-]+)/$',
|
|
cache_page(300)(PackageFeed())),
|
|
)
|
|
|
|
# Sitemaps
|
|
urlpatterns += patterns('django.contrib.sitemaps.views',
|
|
# Thanks Django, we can't cache these longer because of
|
|
# https://code.djangoproject.com/ticket/2713
|
|
(r'^sitemap.xml$', 'index',
|
|
{'sitemaps': our_sitemaps}),
|
|
(r'^sitemap-(?P<section>.+)\.xml$', 'sitemap',
|
|
{'sitemaps': our_sitemaps}),
|
|
)
|
|
|
|
# Authentication / Admin
|
|
urlpatterns += patterns('django.contrib.auth.views',
|
|
(r'^login/$', 'login', {
|
|
'template_name': 'registration/login.html'}),
|
|
(r'^logout/$', 'logout', {
|
|
'template_name': 'registration/logout.html'}),
|
|
)
|
|
|
|
# Public pages
|
|
urlpatterns += patterns('public.views',
|
|
(r'^$', 'index', {}, 'index'),
|
|
(r'^about/$', TemplateView.as_view(template_name='public/about.html'),
|
|
{}, 'page-about'),
|
|
(r'^art/$', TemplateView.as_view(template_name='public/art.html'),
|
|
{}, 'page-art'),
|
|
(r'^svn/$', TemplateView.as_view(template_name='public/svn.html'),
|
|
{}, 'page-svn'),
|
|
(r'^developers/$', 'userlist', { 'user_type':'devs' }, 'page-devs'),
|
|
(r'^trustedusers/$', 'userlist', { 'user_type':'tus' }, 'page-tus'),
|
|
(r'^fellows/$', 'userlist', { 'user_type':'fellows' }, 'page-fellows'),
|
|
(r'^donate/$', 'donate', {}, 'page-donate'),
|
|
(r'^download/$', 'download', {}, 'page-download'),
|
|
(r'^master-keys/$', 'keys', {}, 'page-keys'),
|
|
)
|
|
|
|
# Includes and other remaining stuff
|
|
urlpatterns += patterns('',
|
|
# cache this static JS resource for 1 week rather than default 5 minutes
|
|
(r'^jsi18n/$', cache_page(604800)(null_javascript_catalog)),
|
|
(r'^admin/', include(admin.site.urls)),
|
|
(r'^devel/', include('devel.urls')),
|
|
(r'^feeds/', include(feeds_patterns)),
|
|
(r'^groups/', include('packages.urls_groups')),
|
|
(r'^mirrorlist/',include('mirrors.urls_mirrorlist')),
|
|
(r'^mirrors/', include('mirrors.urls')),
|
|
(r'^news/', include('news.urls')),
|
|
(r'^packages/', include('packages.urls')),
|
|
(r'^releng/', include('releng.urls')),
|
|
(r'^todo/', include('todolists.urls')),
|
|
(r'^visualize/', include('visualize.urls')),
|
|
(r'^opensearch/packages/$', 'packages.views.opensearch',
|
|
{}, 'opensearch-packages'),
|
|
(r'^todolists/$','todolists.views.public_list'),
|
|
)
|
|
|
|
legacy_urls = (
|
|
('^about.php', '/about/'),
|
|
('^changelog.php', '/packages/?sort=-last_update'),
|
|
('^download.php', '/download/'),
|
|
('^index.php', '/'),
|
|
('^logos.php', '/art/'),
|
|
('^news.php', '/news/'),
|
|
)
|
|
|
|
for old_url, new_url in legacy_urls:
|
|
urlpatterns += patterns('django.views.generic.simple',
|
|
(old_url, 'redirect_to', {'url': new_url}))
|
|
|
|
if settings.DEBUG == True:
|
|
urlpatterns += patterns('',
|
|
(r'^media/(.*)$', 'django.views.static.serve',
|
|
{'document_root': os.path.join(settings.DEPLOY_PATH, 'media')}))
|
|
|
|
# vim: set ts=4 sw=4 et:
|