1 from django
.conf
.urls
import *
2 from django
.contrib
.auth
.views
import logout
3 from django
.views
.generic
.base
import TemplateView
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'),
21 TemplateView
.as_view(template_name
='online-help.html'),
25 TemplateView
.as_view(template_name
='developer.html')),
28 TemplateView
.as_view(template_name
='contribute.html'),
32 TemplateView
.as_view(template_name
='privacy_policy.html'),
33 name
='privacy-policy'),
37 urlpatterns
+= patterns('mygpo.web.views.subscriptions',
38 url(r
'^subscriptions/$', 'show_list', name
='subscriptions'),
39 url(r
'^download/subscriptions\.opml$', 'download_all', name
='subscriptions-opml'),
40 url(r
'^subscriptions/all.opml$', 'download_all', name
='subscriptions-download'),
41 url(r
'^user/(?P<username>[\w.-]+)/subscriptions$', 'for_user', name
='shared-subscriptions'),
42 url(r
'^user/(?P<username>[\w.-]+)/subscriptions\.opml$', 'for_user_opml', name
='shared-subscriptions-opml'),
43 url(r
'^user/(?P<username>[\w.-]+)/subscriptions/rss/$', 'subscriptions_feed', name
='shared-subscriptions-rss'),
46 urlpatterns
+= patterns('mygpo.web.views.podcast',
47 url(r
'^subscribe', 'subscribe_url', name
='subscribe-by-url'),
49 url(r
'^podcast/(?P<pid>\d+)$', 'show_oldid', name
='podcast'),
50 url(r
'^podcast/(?P<pid>\d+)/subscribe$', 'subscribe_oldid', name
='subscribe'),
51 url(r
'^podcast/(?P<pid>\d+)/unsubscribe/(?P<device_uid>[\w.-]+)', 'unsubscribe_oldid', name
='unsubscribe'),
52 url(r
'^podcast/(?P<pid>\d+)/add-tag', 'add_tag_oldid', name
='add-tag'),
53 url(r
'^podcast/(?P<pid>\d+)/remove-tag', 'remove_tag_oldid', name
='remove-tag'),
54 url(r
'^podcast/(?P<pid>\d+)/set-public', 'set_public_oldid', name
='podcast-public', kwargs
={'public': True}),
55 url(r
'^podcast/(?P<pid>\d+)/set-private', 'set_public_oldid', name
='podcast-private', kwargs
={'public': False}),
56 url(r
'^podcast/(?P<pid>\d+)/-episodes', 'all_episodes_oldid', name
='podcast-all-episodes'),
57 url(r
'^podcast/(?P<pid>\d+)/-flattr', 'flattr_podcast_oldid', name
='podcast-flattr'),
59 url(r
'^podcast/(?P<slug_id>[\w-]+)/?$', 'show_slug_id', name
='podcast-slug-id'),
60 url(r
'^podcast/(?P<slug_id>[\w-]+)/subscribe$', 'subscribe_slug_id', name
='subscribe-slug-id'),
61 url(r
'^podcast/(?P<slug_id>[\w-]+)/unsubscribe/(?P<device_uid>[\w.-]+)', 'unsubscribe_slug_id', name
='unsubscribe-slug-id'),
62 url(r
'^podcast/(?P<slug_id>[\w-]+)/add-tag', 'add_tag_slug_id', name
='add-tag-slug-id'),
63 url(r
'^podcast/(?P<slug_id>[\w-]+)/remove-tag', 'remove_tag_slug_id', name
='remove-tag-slug-id'),
64 url(r
'^podcast/(?P<slug_id>[\w-]+)/set-public', 'set_public_slug_id', name
='podcast-public-slug-id', kwargs
={'public': True}),
65 url(r
'^podcast/(?P<slug_id>[\w-]+)/set-private', 'set_public_slug_id', name
='podcast-private-slug-id', kwargs
={'public': False}),
66 url(r
'^podcast/(?P<slug_id>[\w-]+)/-episodes', 'all_episodes_slug_id', name
='podcast-all-episodes-slug-id'),
67 url(r
'^podcast/(?P<slug_id>[\w-]+)/-flattr', 'flattr_podcast_slug_id', name
='podcast-flattr-slug-id'),
71 urlpatterns
+= patterns('mygpo.web.views.episode',
77 url(r
'^episode/(?P<id>\d+)$', 'show_oldid', name
='episode'),
78 url(r
'^episode/(?P<id>\d+)/add-chapter$', 'add_chapter_oldid', name
='add-chapter'),
79 url(r
'^episode/(?P<id>\d+)/remove-chapter/(?P<start>\d+)-(?P<end>\d+)$', 'remove_chapter_oldid',name
='remove-chapter'),
80 url(r
'^episode/(?P<id>\d+)/toggle-favorite', 'toggle_favorite_oldid',name
='episode-fav'),
81 url(r
'^episode/(?P<id>\d+)/add-action', 'add_action_oldid', name
='add-episode-action'),
82 url(r
'^episode/(?P<id>\d+)/-flattr', 'flattr_episode_oldid', name
='flattr-episode'),
84 url(r
'^podcast/(?P<p_slug_id>[\w-]+)/(?P<e_slug_id>[\w-]+)$', 'show_slug_id', name
='episode-slug-id'),
85 url(r
'^episode/(?P<p_slug_id>[\w-]+)/(?P<e_slug_id>[\w-]+)/add-chapter$', 'add_chapter_slug_id', name
='add-chapter-slug-id'),
86 url(r
'^episode/(?P<p_slug_id>[\w-]+)/(?P<e_slug_id>[\w-]+)/remove-chapter/(?P<start>\d+)-(?P<end>\d+)$',
87 'remove_chapter', name
='remove-chapter'),
88 url(r
'^episode/(?P<p_slug_id>[\w-]+)/(?P<e_slug_id>[\w-]+)/toggle-favorite', 'toggle_favorite_slug_id', name
='episode-fav-slug-id'),
89 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'),
90 url(r
'^podcast/(?P<p_slug_id>[\w-]+)/(?P<e_slug_id>[\w-]+)/-flattr', 'flattr_episode_slug_id', name
='flattr-episode-slug-id'),
93 from mygpo
.web
.views
.settings
import DefaultPrivacySettings
, \
94 PodcastPrivacySettings
, ProfileView
, FlattrSettingsView
, \
95 FlattrTokenView
, FlattrLogout
, AccountRemoveGoogle
97 urlpatterns
+= patterns('mygpo.web.views.settings',
98 url(r
'^account/$', 'account', name
='account'),
99 url(r
'^account/privacy$', 'privacy', name
='privacy'),
101 url(r
'^account/profile$',
102 ProfileView
.as_view(),
105 url(r
'^account/google/remove$',
106 AccountRemoveGoogle
.as_view(),
107 name
='account-google-remove'),
109 url(r
'^account/flattr$',
110 FlattrSettingsView
.as_view(),
111 name
='flattr-settings'),
113 url(r
'^account/flattr/token$',
114 FlattrTokenView
.as_view(),
115 name
='flattr-token'),
117 url(r
'^account/flattr/logout$',
118 FlattrLogout
.as_view(),
119 name
='flattr-logout'),
121 url(r
'^account/privacy/default-public$',
122 DefaultPrivacySettings
.as_view(public
=True),
123 name
='privacy_default_public'),
125 url(r
'^account/privacy/default-private$',
126 DefaultPrivacySettings
.as_view(public
=False),
127 name
='privacy_default_private'),
129 url(r
'^account/privacy/(?P<podcast_id>[\w]+)/public$',
130 PodcastPrivacySettings
.as_view(public
=True),
131 name
='privacy_podcast_public'),
133 url(r
'^account/privacy/(?P<podcast_id>[\w]+)/private$',
134 PodcastPrivacySettings
.as_view(public
=False),
135 name
='privacy_podcast_private'),
137 url(r
'^account/delete$', 'delete_account',name
='delete-account'),
140 urlpatterns
+= patterns('mygpo.web.views.device',
141 url(r
'^devices/$', 'overview', name
='devices'),
142 url(r
'^devices/create$', 'edit_new', name
='device-edit-new'),
143 url(r
'^devices/create-device$', 'create', name
='device-create'),
144 url(r
'^device/(?P<uid>[\w.-]+)\.opml$', 'opml', name
='device-opml'),
145 url(r
'^device/(?P<uid>[\w.-]+)$', 'show', name
='device'),
146 url(r
'^device/(?P<uid>[\w.-]+)/symbian.opml$', 'symbian_opml', name
='device-symbian-opml'),
147 url(r
'^device/(?P<uid>[\w.-]+)/sync$', 'sync', name
='device-sync'),
148 url(r
'^device/(?P<uid>[\w.-]+)/unsync$', 'unsync', name
='device-unsync'),
149 url(r
'^device/(?P<uid>[\w.-]+)/delete$', 'delete', name
='device-delete'),
150 url(r
'^device/(?P<uid>[\w.-]+)/remove$', 'delete_permanently', name
='device-delete-permanently'),
151 url(r
'^device/(?P<uid>[\w.-]+)/undelete$', 'undelete', name
='device-undelete'),
152 url(r
'^device/(?P<uid>[\w.-]+)/history$', 'history', name
='device-history'),
153 url(r
'^device/(?P<uid>[\w.-]+)/edit$', 'edit', name
='device-edit'),
154 url(r
'^device/(?P<uid>[\w.-]+)/update$', 'update', name
='device-update'),
155 url(r
'^device/(?P<uid>[\w.-]+)/upload-opml$', 'upload_opml', name
='device-upload-opml'),
159 from mygpo
.web
.views
.users
import LoginView
, GoogleLogin
, GoogleLoginCallback
161 urlpatterns
+= patterns('mygpo.web.views.users',
167 url(r
'^login/google$',
168 GoogleLogin
.as_view(),
169 name
='login-google'),
171 url(r
'^login/oauth2callback$',
172 GoogleLoginCallback
.as_view(),
173 name
='login-google-callback'),
175 url(r
'^logout/$', logout
, {'next_page': '/'}, name
='logout'),
176 url(r
'^register/resend-activation$', 'resend_activation', name
='resend-activation'),
177 url(r
'^register/restore_password$', 'restore_password', name
='restore-password'),
178 url(r
'^register/$', register
,
179 {'backend': 'django_couchdb_utils.registration.backends.default.DefaultBackend',
180 'form_class': RegistrationFormUniqueEmail
}, name
='register'),
182 url(r
'^registration_complete/$',
183 TemplateView
.as_view(template_name
='registration/registration_complete.html')),
185 (r
'^activate/(?P<activation_key>\w+)$', activate
,
186 {'backend': 'django_couchdb_utils.registration.backends.default.DefaultBackend'}),