Move podcast and episode views to mygpo.podcasts
[mygpo.git] / mygpo / web / urls.py
blobced014166fc4366952002ea80b83863fdb551051
1 from django.conf.urls import url
2 from django.contrib.auth.views import logout
3 from django.views.generic.base import TemplateView, RedirectView
5 from mygpo.web.logo import CoverArt
7 from . import views
8 from .views import subscriptions, settings, device, users
11 urlpatterns = [
13 url(r'^$',
14 views.home,
15 name='home'),
17 url(r'^logo/(?P<size>\d+)/(?P<prefix>.{3})/(?P<filename>[^/]*)$',
18 CoverArt.as_view(),
19 name='logo'),
21 url(r'^tags/',
22 views.mytags,
23 name='tags'),
25 url(r'^online-help',
26 RedirectView.as_view(
27 url='http://gpoddernet.readthedocs.org/en/latest/user/index.html',
28 permanent=False,
30 name='help'),
32 url(r'^developer/',
33 TemplateView.as_view(template_name='developer.html')),
35 url(r'^contribute/',
36 TemplateView.as_view(template_name='contribute.html'),
37 name='contribute'),
39 url(r'^privacy/',
40 TemplateView.as_view(template_name='privacy_policy.html'),
41 name='privacy-policy'),
43 url(r'^user/(?P<username>[\w.+-]+)/subscriptions$',
44 subscriptions.for_user,
45 name='shared-subscriptions'),
47 url(r'^user/(?P<username>[\w.+-]+)/subscriptions\.opml$',
48 subscriptions.for_user_opml,
49 name='shared-subscriptions-opml'),
51 url(r'^account/$',
52 settings.account,
53 name='account'),
55 url(r'^account/privacy$',
56 settings.privacy,
57 name='privacy'),
59 url(r'^account/profile$',
60 settings.ProfileView.as_view(),
61 name='profile'),
63 url(r'^account/google/remove$',
64 settings.AccountRemoveGoogle.as_view(),
65 name='account-google-remove'),
67 url(r'^account/flattr$',
68 settings.FlattrSettingsView.as_view(),
69 name='flattr-settings'),
71 url(r'^account/flattr/token$',
72 settings.FlattrTokenView.as_view(),
73 name='flattr-token'),
75 url(r'^account/flattr/logout$',
76 settings.FlattrLogout.as_view(),
77 name='flattr-logout'),
79 url(r'^account/privacy/default-public$',
80 settings.DefaultPrivacySettings.as_view(public=True),
81 name='privacy_default_public'),
83 url(r'^account/privacy/default-private$',
84 settings.DefaultPrivacySettings.as_view(public=False),
85 name='privacy_default_private'),
87 url(r'^account/privacy/(?P<podcast_id>[\w]+)/public$',
88 settings.PodcastPrivacySettings.as_view(public=True),
89 name='privacy_podcast_public'),
91 url(r'^account/privacy/(?P<podcast_id>[\w]+)/private$',
92 settings.PodcastPrivacySettings.as_view(public=False),
93 name='privacy_podcast_private'),
95 url(r'^account/delete$',
96 settings.delete_account,
97 name='delete-account'),
99 url(r'^devices/$',
100 device.overview,
101 name='devices'),
103 url(r'^devices/create-device$',
104 device.create,
105 name='device-create'),
107 url(r'^device/(?P<uid>[\w.-]+)\.opml$',
108 device.opml,
109 name='device-opml'),
111 url(r'^device/(?P<uid>[\w.-]+)$',
112 device.show,
113 name='device'),
115 url(r'^device/(?P<uid>[\w.-]+)/symbian.opml$',
116 device.symbian_opml,
117 name='device-symbian-opml'),
119 url(r'^device/(?P<uid>[\w.-]+)/sync$',
120 device.sync,
121 name='device-sync'),
123 url(r'^device/(?P<uid>[\w.-]+)/unsync$',
124 device.unsync,
125 name='device-unsync'),
127 url(r'^device/(?P<uid>[\w.-]+)/resync$',
128 device.resync,
129 name='trigger-sync'),
131 url(r'^device/(?P<uid>[\w.-]+)/delete$',
132 device.delete,
133 name='device-delete'),
135 url(r'^device/(?P<uid>[\w.-]+)/remove$',
136 device.delete_permanently,
137 name='device-delete-permanently'),
139 url(r'^device/(?P<uid>[\w.-]+)/undelete$',
140 device.undelete,
141 name='device-undelete'),
143 url(r'^device/(?P<uid>[\w.-]+)/edit$',
144 device.edit,
145 name='device-edit'),
147 url(r'^device/(?P<uid>[\w.-]+)/update$',
148 device.update,
149 name='device-update'),
151 url(r'^device/(?P<uid>[\w.-]+)/upload-opml$',
152 device.upload_opml,
153 name='device-upload-opml'),
155 url(r'^register/restore_password$',
156 users.restore_password,
157 name='restore-password'),
159 url(r'^login/$',
160 users.LoginView.as_view(),
161 name='login'),
163 url(r'^login/google$',
164 users.GoogleLogin.as_view(),
165 name='login-google'),
167 url(r'^login/oauth2callback$',
168 users.GoogleLoginCallback.as_view(),
169 name='login-google-callback'),
171 url(r'^logout/$',
172 logout,
173 kwargs={'next_page': '/'},
174 name='logout'),