-
Notifications
You must be signed in to change notification settings - Fork 170
Expand file tree
/
Copy pathurls.py
More file actions
182 lines (179 loc) · 7.33 KB
/
urls.py
File metadata and controls
182 lines (179 loc) · 7.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
from django.conf import settings
from django.urls import re_path
from drf_spectacular.views import (
SpectacularAPIView,
SpectacularSwaggerView,
)
from . import views
urlpatterns = [
re_path(r"^calendar/?$", views.CalendarView.as_view(), name="api_calendar"),
re_path(
r"^calendar/update/?$",
views.CalendarUpdateView.as_view(),
name="api_update_calendar",
),
re_path(
r"^changes_history/(?P<media_type>[^/]+)/(?P<history_id>[^/]+)/?$",
views.MediaTypeChangesHistoryDetailView.as_view(),
name="api_media_changes_history_detail",
),
re_path(r"^health/?$", views.HealthView.as_view(), name="api_health"),
re_path(r"^info/?$", views.InfoView.as_view(), name="api_info"),
re_path(r"^lists/?$", views.ListsView.as_view(), name="api_lists"),
re_path(
r"^lists/(?P<list_id>\d+)/?$",
views.ListDetailView.as_view(),
name="api_list_detail",
),
re_path(
r"^lists/(?P<list_id>\d+)/items/?$",
views.ListItemsView.as_view(),
name="api_list_add_item",
),
re_path(
r"^lists/(?P<list_id>\d+)/items/(?P<item_id>\d+)/?$",
views.ListItemView.as_view(),
name="api_list_remove_item",
),
re_path(r"^media/?$", views.MediaListView.as_view(), name="api_media_list"),
re_path(
r"^media/(?P<media_type>[^/]+)/?$",
views.MediaTypeListView.as_view(),
name="api_media_type_list",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/?$",
views.MediaDetailView.as_view(),
name="api_media_detail",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/changes_history/?$",
views.MediaChangesHistoryView.as_view(),
name="api_media_changes_history",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/history/?$",
views.MediaConsumptionHistoryView.as_view(),
name="api_media_consumption_history",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/history/(?P<consumption_id>\d+)/?$",
views.MediaConsumptionEntryDetailView.as_view(),
name="api_media_consumption_entry_detail",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/lists/?$",
views.MediaListsView.as_view(),
name="api_media_lists",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/lists/(?P<list_id>\d+)/?$",
views.MediaListDetailView.as_view(),
name="api_media_lists",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/recommendations/?$",
views.MediaRecommendationsView.as_view(),
name="api_media_recommendations",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/seasons/?$",
views.MediaSeasonsView.as_view(),
name="api_media_seasons",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/sync/?$",
views.MediaSyncView.as_view(),
name="api_media_sync",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/?$",
views.MediaSeasonDetailView.as_view(),
name="api_media_season_detail",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/changes_history/?$",
views.MediaSeasonChangesHistoryView.as_view(),
name="api_media_season_changes_history",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/episodes/?$",
views.MediaSeasonEpisodesView.as_view(),
name="api_media_season_episodes",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/history/?$",
views.MediaSeasonConsumptionHistoryView.as_view(),
name="api_media_season_consumption_history",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/history/(?P<consumption_id>\d+)/?$",
views.MediaSeasonConsumptionEntryDetailView.as_view(),
name="api_media_season_consumption_entry_detail",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/lists/?$",
views.MediaSeasonListsView.as_view(),
name="api_media_season_lists",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/lists/(?P<list_id>\d+)/?$",
views.MediaSeasonListDetailView.as_view(),
name="api_media_season_list_detail",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/sync/?$",
views.MediaSeasonSyncView.as_view(),
name="api_media_season_sync",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/(?P<episode_number>\d+)/?$",
views.MediaEpisodeDetailView.as_view(),
name="api_media_episode_detail",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/(?P<episode_number>\d+)/changes_history/?$",
views.MediaEpisodeChangesHistoryView.as_view(),
name="api_media_episode_changes_history",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/(?P<episode_number>\d+)/history/?$",
views.MediaEpisodeConsumptionHistoryView.as_view(),
name="api_media_episode_consumption_history",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/(?P<episode_number>\d+)/history/(?P<consumption_id>\d+)/?$",
views.MediaEpisodeConsumptionEntryDetailView.as_view(),
name="api_media_episode_consumption_entry_detail",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/(?P<episode_number>\d+)/lists/?$",
views.MediaEpisodeListsView.as_view(),
name="api_media_episode_lists",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/(?P<episode_number>\d+)/lists/(?P<list_id>\d+)/?$",
views.MediaEpisodeListDetailView.as_view(),
name="api_media_episode_list_detail",
),
re_path(
r"^media/(?P<media_type>[^/]+)/(?P<source>[^/]+)/(?P<media_id>[^/]+)/(?P<season_number>\d+)/(?P<episode_number>\d+)/sync/?$",
views.MediaEpisodeSyncView.as_view(),
name="api_media_episode_sync",
),
re_path(
r"^search/(?P<media_type>[^/]+)/?$",
views.SearchProviderView.as_view(),
name="api_search_provider",
),
re_path(r"^statistics/?$", views.StatisticsView.as_view(), name="api_statistics"),
]
if settings.SPECTACULAR_ENABLE_SERVE:
urlpatterns += [
re_path(r"^schema/?$", SpectacularAPIView.as_view(), name="api_schema"),
re_path(
r"^docs/?$",
SpectacularSwaggerView.as_view(url_name="api_schema"),
name="api_docs",
),
]