addons-server/urls.py

200 строки
5.9 KiB
Python
Исходник Обычный вид История

import os.path
2009-10-21 06:20:38 +04:00
from django.conf import settings
2009-10-23 03:43:38 +04:00
from django.conf.urls.defaults import patterns, url, include
2010-01-02 00:32:21 +03:00
from django.contrib import admin
from django.shortcuts import redirect
2010-05-05 22:51:20 +04:00
from django.views.i18n import javascript_catalog
from django.views.decorators.cache import cache_page
2010-01-02 00:32:21 +03:00
from amo.urlresolvers import reverse
2011-02-19 03:27:02 +03:00
import blocklist.views
2010-08-26 19:50:05 +04:00
import versions.urls
2010-01-02 00:32:21 +03:00
admin.autodiscover()
2009-10-23 03:43:38 +04:00
2010-02-05 04:51:14 +03:00
handler404 = 'amo.views.handler404'
handler500 = 'amo.views.handler500'
2009-10-21 03:29:27 +04:00
urlpatterns = patterns('',
2010-04-21 07:08:27 +04:00
# Discovery pane is first for undetectable efficiency wins.
('^discovery/', include('discovery.urls')),
2011-02-19 03:27:02 +03:00
# There are many more params but we only care about these three. The end is
# not anchored on purpose!
url('^blocklist/(?P<apiver>\d+)/(?P<app>[^/]+)/(?P<appver>[^/]+)/',
blocklist.views.blocklist, name='blocklist'),
('^blocked/', include('blocklist.urls')),
2011-02-19 03:27:02 +03:00
2010-01-27 23:15:17 +03:00
# Add-ons.
('', include('addons.urls')),
2011-07-30 02:39:44 +04:00
# Web apps.
('^apps/', include('webapps.urls')),
2010-02-06 01:06:16 +03:00
# Browse pages.
('', include('browse.urls')),
2010-07-27 03:37:06 +04:00
# Tags.
('', include('tags.urls')),
# Collections.
('', include('bandwagon.urls')),
# Files
('^files/', include('files.urls')),
2010-08-26 19:50:05 +04:00
# Downloads.
('^downloads/', include(versions.urls.download_patterns)),
# Localizer Pages
('^localizers/', include('localizers.urls')),
# Users
('', include('users.urls')),
2009-10-21 06:20:38 +04:00
# Developer Hub.
2011-07-19 21:47:01 +04:00
('^developers/', include('devhub.urls')),
# Developer Hub.
('editors/', include('editors.urls')),
2009-12-31 01:26:56 +03:00
# AMO admin (not django admin).
('^admin/', include('zadmin.urls')),
2010-11-19 02:19:07 +03:00
# Performance wall of shame.
('^performance/', include('perf.urls')),
# Localizable pages.
('', include('pages.urls')),
2010-08-17 21:55:49 +04:00
# App versions.
('pages/appversions/', include('applications.urls')),
# Services
2010-05-13 07:56:50 +04:00
('', include('amo.urls')),
2010-02-05 08:39:55 +03:00
# Search
('^search/', include('search.urls')),
2010-02-27 04:04:59 +03:00
# Global stats dashboard.
url('^statistics/', lambda r: redirect('/'), name='statistics.dashboard'),
# Javascript translations.
2011-05-02 23:03:27 +04:00
url('^jsi18n.js$', cache_page(60 * 60 * 24 * 365)(javascript_catalog),
2010-12-23 05:21:36 +03:00
{'domain': 'javascript', 'packages': ['zamboni']}, name='jsi18n'),
2010-02-10 22:35:25 +03:00
# SAMO/API
('^api/', include('api.urls')),
('^compatibility/', include('compat.urls')),
2010-08-27 08:54:01 +04:00
# Review spam.
url('^reviews/spam/$', 'reviews.views.spam', name='reviews.spam'),
# marketplace
('^market/', include('market.urls')),
2010-02-05 08:39:55 +03:00
# Redirect patterns.
('^bookmarks/?$',
lambda r: redirect('browse.extensions', 'bookmarks', permanent=True)),
2010-02-05 08:39:55 +03:00
('^reviews/display/(\d+)',
lambda r, id: redirect('reviews.list', id, permanent=True)),
2010-08-27 05:11:07 +04:00
('^reviews/add/(\d+)',
lambda r, id: redirect('reviews.add', id, permanent=True)),
('^users/info/(\d+)',
lambda r, id: redirect('users.profile', id, permanent=True)),
('^pages/about$',
lambda r: redirect('pages.about', permanent=True)),
('^pages/faq$',
lambda r: redirect('pages.faq', permanent=True)),
# Redirect persona/xxx
url('^persona/(?P<persona_id>\d+)', 'addons.views.persona_redirect',
name='persona'),
# Redirect top-tags to tags/top
2010-07-27 03:37:06 +04:00
('^top-tags/?',
lambda r: redirect('tags.top_cloud', permanent=True)),
('^personas/film and tv/?$',
lambda r: redirect('browse.personas', 'film-and-tv', permanent=True)),
2010-06-17 21:14:30 +04:00
('^addons/versions/(\d+)/?$',
lambda r, id: redirect('addons.versions', id, permanent=True)),
('^addons/versions/(\d+)/format:rss$',
lambda r, id: redirect('addons.versions.rss', id, permanent=True)),
# Legacy redirect. Requires a view to get extra data not provided in URL.
('^versions/updateInfo/(?P<version_id>\d+)$',
'versions.views.update_info_redirect'),
('^addons/reviews/(\d+)/format:rss$',
lambda r, id: redirect('reviews.list.rss', id, permanent=True)),
2010-06-19 03:11:12 +04:00
('^search-engines.*$',
lambda r: redirect('browse.search-tools', permanent=True)),
('^addons/contribute/(\d+)/?$',
lambda r, id: redirect('addons.contribute', id, permanent=True)),
2010-07-27 22:35:26 +04:00
('^recommended$',
lambda r: redirect(reverse('browse.extensions') + '?sort=featured',
permanent=True)),
('^recommended/format:rss$',
lambda r: redirect('browse.featured.rss', permanent=True)),
)
2009-10-23 03:43:38 +04:00
2011-07-08 23:07:23 +04:00
urlpatterns += patterns('piston.authentication.oauth.views',
url(r'^oauth/request_token/$', 'get_request_token',
2010-08-27 21:07:16 +04:00
name='oauth.request_token'),
2011-07-08 23:07:23 +04:00
url(r'^oauth/authorize/$', 'authorize_request_token',
name='oauth.authorize'),
url(r'^oauth/access_token/$', 'get_access_token',
2010-08-27 21:07:16 +04:00
name='oauth.access_token'),
)
if 'django_qunit' in settings.INSTALLED_APPS:
def _zamboni_qunit(request, path, template):
from time import time
import django_qunit.views
import jingo
2011-09-02 03:25:00 +04:00
import mock
ctx = django_qunit.views.get_suite_context(request, path)
2011-09-02 03:25:00 +04:00
ctx.update(timestamp=time(), Mock=mock.Mock)
response = jingo.render(request, template, ctx)
# This allows another site to embed the QUnit suite
# in an iframe (for CI).
response['x-frame-options'] = ''
return response
def zamboni_qunit(request, path):
return _zamboni_qunit(request, path, 'qunit/qunit.html')
def zamboni_pre_impala_qunit(request, path):
return _zamboni_qunit(request, os.path.join(path, 'pre-impala/'),
'qunit/pre_impala.html')
urlpatterns += patterns('',
url(r'^qunit/pre-impala/(?P<path>.*)', zamboni_pre_impala_qunit),
url(r'^qunit/(?P<path>.*)', zamboni_qunit),
url(r'^_qunit/', include('django_qunit.urls')),
)
if settings.TEMPLATE_DEBUG:
2009-10-21 06:20:38 +04:00
# Remove leading and trailing slashes so the regex matches.
media_url = settings.MEDIA_URL.lstrip('/').rstrip('/')
urlpatterns += patterns('',
(r'^%s/(?P<path>.*)$' % media_url, 'django.views.static.serve',
2009-10-22 01:56:43 +04:00
{'document_root': settings.MEDIA_ROOT}),
2009-10-21 06:20:38 +04:00
)