fix typo
[mygpo.git] / mygpo / web / urls.py
blobf0c3976ac30646ea6d45a22d4a41d30409735a6d
1 from django.conf.urls import *
2 from django.contrib.auth.views import logout
3 from django.views.generic.base import TemplateView, RedirectView
5 from django_couchdb_utils.registration.views import activate, register
6 from django_couchdb_utils.registration.forms import RegistrationFormUniqueEmail
8 from mygpo.web.logo import CoverArt
11 urlpatterns = patterns('mygpo.web.views',
12 url(r'^$', 'home', name='home'),
13 url(r'^logo/(?P<size>\d+)/(?P<prefix>.{3})/(?P<filename>[^/]*)$', CoverArt.as_view(), name='logo'),
14 url(r'^history/$', 'history', name='history'),
15 url(r'^suggestions/$', 'suggestions', name='suggestions'),
16 url(r'^suggestions/rate$', 'rate_suggestions', name='suggestions-rate'),
17 url(r'^suggestions/blacklist/(?P<slug_id>[\w-]+)$', 'blacklist', name='suggestions-blacklist-slug-id'),
18 url(r'^tags/', 'mytags', name='tags'),
20 url(r'^online-help',
21 RedirectView.as_view(
22 url='http://gpoddernet.readthedocs.org/en/latest/user/index.html'),
23 name='help'),
25 url(r'^developer/',
26 TemplateView.as_view(template_name='developer.html')),
28 url(r'^contribute/',
29 TemplateView.as_view(template_name='contribute.html'),
30 name='contribute'),
32 url(r'^privacy/',
33 TemplateView.as_view(template_name='privacy_policy.html'),
34 name='privacy-policy'),
38 urlpatterns += patterns('mygpo.web.views.subscriptions',
39 url(r'^subscriptions/$', 'show_list', name='subscriptions'),
40 url(r'^download/subscriptions\.opml$', 'download_all', name='subscriptions-opml'),
41 url(r'^subscriptions/all.opml$', 'download_all', name='subscriptions-download'),
42 url(r'^user/(?P<username>[\w.-]+)/subscriptions$', 'for_user', name='shared-subscriptions'),
43 url(r'^user/(?P<username>[\w.-]+)/subscriptions\.opml$', 'for_user_opml', name='shared-subscriptions-opml'),
44 url(r'^user/(?P<username>[\w.-]+)/subscriptions/rss/$', 'subscriptions_feed', name='shared-subscriptions-rss'),
47 urlpatterns += patterns('mygpo.web.views.podcast',
48 url(r'^subscribe', 'subscribe_url', name='subscribe-by-url'),
50 url(r'^podcast/(?P<pid>\d+)$', 'show_oldid', name='podcast'),
51 url(r'^podcast/(?P<pid>\d+)/subscribe$', 'subscribe_oldid', name='subscribe'),
52 url(r'^podcast/(?P<pid>\d+)/subscribe/\+all$', 'subscribe_all_oldid', name='subscribe-all'),
53 url(r'^podcast/(?P<pid>\d+)/unsubscribe/(?P<device_uid>[\w.-]+)', 'unsubscribe_oldid', name='unsubscribe'),
54 url(r'^podcast/(?P<pid>\d+)/unsubscribe/\+all$', 'unsubscribe_all_oldid', name='unsubscribe-all'),
55 url(r'^podcast/(?P<pid>\d+)/add-tag', 'add_tag_oldid', name='add-tag'),
56 url(r'^podcast/(?P<pid>\d+)/remove-tag', 'remove_tag_oldid', name='remove-tag'),
57 url(r'^podcast/(?P<pid>\d+)/set-public', 'set_public_oldid', name='podcast-public', kwargs={'public': True}),
58 url(r'^podcast/(?P<pid>\d+)/set-private', 'set_public_oldid', name='podcast-private', kwargs={'public': False}),
59 url(r'^podcast/(?P<pid>\d+)/-episodes', 'all_episodes_oldid', name='podcast-all-episodes'),
60 url(r'^podcast/(?P<pid>\d+)/-flattr', 'flattr_podcast_oldid', name='podcast-flattr'),
61 url(r'^podcast/(?P<pid>\d+)/\+history', 'history_podcast_oldid', name='podcast-history'),
63 url(r'^podcast/(?P<slug_id>[\w-]+)/?$', 'show_slug_id', name='podcast-slug-id'),
64 url(r'^podcast/(?P<slug_id>[\w-]+)/subscribe$', 'subscribe_slug_id', name='subscribe-slug-id'),
65 url(r'^podcast/(?P<slug_id>[\w-]+)/subscribe/\+all$', 'subscribe_all_slug_id', name='subscribe-all-slug-id'),
66 url(r'^podcast/(?P<slug_id>[\w-]+)/unsubscribe/(?P<device_uid>[\w.-]+)', 'unsubscribe_slug_id', name='unsubscribe-slug-id'),
67 url(r'^podcast/(?P<slug_id>[\w-]+)/unsubscribe/\+all$', 'unsubscribe_all_slug_id', name='unsubscribe-all-slug-id'),
68 url(r'^podcast/(?P<slug_id>[\w-]+)/add-tag', 'add_tag_slug_id', name='add-tag-slug-id'),
69 url(r'^podcast/(?P<slug_id>[\w-]+)/remove-tag', 'remove_tag_slug_id', name='remove-tag-slug-id'),
70 url(r'^podcast/(?P<slug_id>[\w-]+)/set-public', 'set_public_slug_id', name='podcast-public-slug-id', kwargs={'public': True}),
71 url(r'^podcast/(?P<slug_id>[\w-]+)/set-private', 'set_public_slug_id', name='podcast-private-slug-id', kwargs={'public': False}),
72 url(r'^podcast/(?P<slug_id>[\w-]+)/-episodes', 'all_episodes_slug_id', name='podcast-all-episodes-slug-id'),
73 url(r'^podcast/(?P<slug_id>[\w-]+)/-flattr', 'flattr_podcast_slug_id', name='podcast-flattr-slug-id'),
74 url(r'^podcast/(?P<slug_id>[\w-]+)/\+history', 'history_podcast_slug_id', name='podcast-history-slug-id'),
78 urlpatterns += patterns('mygpo.web.views.episode',
80 url(r'^favorites/$',
81 'list_favorites',
82 name='favorites'),
84 url(r'^episode/(?P<id>\d+)$', 'show_oldid', name='episode'),
85 url(r'^episode/(?P<id>\d+)/toggle-favorite', 'toggle_favorite_oldid',name='episode-fav'),
86 url(r'^episode/(?P<id>\d+)/add-action', 'add_action_oldid', name='add-episode-action'),
87 url(r'^episode/(?P<id>\d+)/-flattr', 'flattr_episode_oldid', name='flattr-episode'),
88 url(r'^episode/(?P<id>\d+)/\+history', 'episode_history_oldid', name='episode-history'),
90 url(r'^podcast/(?P<p_slug_id>[\w-]+)/(?P<e_slug_id>[\w-]+)$', 'show_slug_id', name='episode-slug-id'),
91 url(r'^episode/(?P<p_slug_id>[\w-]+)/(?P<e_slug_id>[\w-]+)/toggle-favorite', 'toggle_favorite_slug_id', name='episode-fav-slug-id'),
92 url(r'^episode/(?P<p_slug_id>[\w-]+)/(?P<e_slug_id>[\w-]+)/add-action', 'add_action_slug_id', name='add-episode-action-slug-id'),
93 url(r'^podcast/(?P<p_slug_id>[\w-]+)/(?P<e_slug_id>[\w-]+)/-flattr', 'flattr_episode_slug_id', name='flattr-episode-slug-id'),
94 url(r'^podcast/(?P<p_slug_id>[\w-]+)/(?P<e_slug_id>[\w-]+)/\+history', 'episode_history_slug_id',name='episode-history-slug-id'),
97 from mygpo.web.views.settings import DefaultPrivacySettings, \
98 PodcastPrivacySettings, ProfileView, FlattrSettingsView, \
99 FlattrTokenView, FlattrLogout, AccountRemoveGoogle
101 urlpatterns += patterns('mygpo.web.views.settings',
102 url(r'^account/$', 'account', name='account'),
103 url(r'^account/privacy$', 'privacy', name='privacy'),
105 url(r'^account/profile$',
106 ProfileView.as_view(),
107 name='profile'),
109 url(r'^account/google/remove$',
110 AccountRemoveGoogle.as_view(),
111 name='account-google-remove'),
113 url(r'^account/flattr$',
114 FlattrSettingsView.as_view(),
115 name='flattr-settings'),
117 url(r'^account/flattr/token$',
118 FlattrTokenView.as_view(),
119 name='flattr-token'),
121 url(r'^account/flattr/logout$',
122 FlattrLogout.as_view(),
123 name='flattr-logout'),
125 url(r'^account/privacy/default-public$',
126 DefaultPrivacySettings.as_view(public=True),
127 name='privacy_default_public'),
129 url(r'^account/privacy/default-private$',
130 DefaultPrivacySettings.as_view(public=False),
131 name='privacy_default_private'),
133 url(r'^account/privacy/(?P<podcast_id>[\w]+)/public$',
134 PodcastPrivacySettings.as_view(public=True),
135 name='privacy_podcast_public'),
137 url(r'^account/privacy/(?P<podcast_id>[\w]+)/private$',
138 PodcastPrivacySettings.as_view(public=False),
139 name='privacy_podcast_private'),
141 url(r'^account/delete$', 'delete_account',name='delete-account'),
144 urlpatterns += patterns('mygpo.web.views.device',
145 url(r'^devices/$', 'overview', name='devices'),
146 url(r'^devices/create-device$', 'create', name='device-create'),
147 url(r'^device/(?P<uid>[\w.-]+)\.opml$', 'opml', name='device-opml'),
148 url(r'^device/(?P<uid>[\w.-]+)$', 'show', name='device'),
149 url(r'^device/(?P<uid>[\w.-]+)/symbian.opml$', 'symbian_opml', name='device-symbian-opml'),
150 url(r'^device/(?P<uid>[\w.-]+)/sync$', 'sync', name='device-sync'),
151 url(r'^device/(?P<uid>[\w.-]+)/unsync$', 'unsync', name='device-unsync'),
152 url(r'^device/(?P<uid>[\w.-]+)/delete$', 'delete', name='device-delete'),
153 url(r'^device/(?P<uid>[\w.-]+)/remove$', 'delete_permanently', name='device-delete-permanently'),
154 url(r'^device/(?P<uid>[\w.-]+)/undelete$', 'undelete', name='device-undelete'),
155 url(r'^device/(?P<uid>[\w.-]+)/history$', 'history', name='device-history'),
156 url(r'^device/(?P<uid>[\w.-]+)/edit$', 'edit', name='device-edit'),
157 url(r'^device/(?P<uid>[\w.-]+)/update$', 'update', name='device-update'),
158 url(r'^device/(?P<uid>[\w.-]+)/upload-opml$', 'upload_opml', name='device-upload-opml'),
162 from mygpo.web.views.users import LoginView, GoogleLogin, GoogleLoginCallback
164 urlpatterns += patterns('mygpo.web.views.users',
166 url(r'^login/$',
167 LoginView.as_view(),
168 name='login'),
170 url(r'^login/google$',
171 GoogleLogin.as_view(),
172 name='login-google'),
174 url(r'^login/oauth2callback$',
175 GoogleLoginCallback.as_view(),
176 name='login-google-callback'),
178 url(r'^logout/$', logout, {'next_page': '/'}, name='logout'),
179 url(r'^register/resend-activation$', 'resend_activation', name='resend-activation'),
180 url(r'^register/restore_password$', 'restore_password', name='restore-password'),
181 url(r'^register/$', register,
182 {'backend': 'django_couchdb_utils.registration.backends.default.DefaultBackend',
183 'form_class': RegistrationFormUniqueEmail}, name='register'),
185 url(r'^registration_complete/$',
186 TemplateView.as_view(template_name='registration/registration_complete.html')),
188 (r'^activate/(?P<activation_key>\w+)$', activate,
189 {'backend': 'django_couchdb_utils.registration.backends.default.DefaultBackend'}),