Merge pull request #793 from gpodder/remove-advertise
[mygpo.git] / mygpo / api / urls.py
blobd55092893bfbcf69f9352d4c1d9f2c3ca5e6f266
1 from django.urls import path, register_converter
3 from . import legacy, simple, advanced, subscriptions
4 from .advanced import auth, lists, sync, updates, episode, settings
5 from mygpo.users import converters
6 from mygpo.usersettings.converters import ScopeConverter
8 register_converter(converters.ClientUIDConverter, "client-uid")
9 register_converter(converters.UsernameConverter, "username")
10 register_converter(ScopeConverter, "scope")
13 urlpatterns = [
14 path("upload", legacy.upload),
15 path("getlist", legacy.getlist),
16 path(
17 "subscriptions/<username:username>/" "<client-uid:device_uid>.<str:format>",
18 simple.subscriptions,
19 name="api-simple-subscriptions",
21 path(
22 "subscriptions/<username:username>.<str:format>",
23 simple.all_subscriptions,
24 name="api-all-subscriptions",
26 path(
27 "search.<str:format>",
28 simple.search,
29 name="api-simple-search",
31 path(
32 "suggestions/<int:count>.<str:format>",
33 simple.suggestions,
34 name="suggestions-opml",
36 path(
37 "toplist.opml",
38 simple.toplist,
39 kwargs={"count": 50, "format": "opml"},
40 name="api-simple-toplist.opml",
42 path("toplist/<int:count>.<str:format>", simple.toplist, name="api-simple-toplist"),
43 path(
44 "toplist.<str:format>",
45 simple.toplist,
46 kwargs={"count": 50},
47 name="api-simple-toplist-50",
49 path("gpodder-examples.<str:format>", simple.example_podcasts, name="example-opml"),
50 path(
51 "api/<int:version>/subscriptions/<username:username>/"
52 "<client-uid:device_uid>.json",
53 subscriptions.SubscriptionsAPI.as_view(),
54 name="subscriptions-api",
56 path("api/<int:version>/episodes/<username:username>.json", advanced.episodes),
57 path(
58 "api/<int:version>/devices/<username:username>/" "<client-uid:device_uid>.json",
59 advanced.device,
61 path("api/<int:version>/devices/<username:username>.json", advanced.devices),
62 path("api/2/auth/<username:username>/login.json", auth.login),
63 path("api/2/auth/<username:username>/logout.json", auth.logout),
64 path("api/2/tags/<int:count>.json", advanced.directory.top_tags),
65 path("api/2/tag/<str:tag>/<int:count>.json", advanced.directory.tag_podcasts),
66 path(
67 "api/2/data/podcast.json",
68 advanced.directory.podcast_info,
69 name="api-podcast-info",
71 path(
72 "api/2/data/episode.json",
73 advanced.directory.episode_info,
74 name="api-episode-info",
76 path("api/2/podcasts/create", advanced.directory.add_podcast),
77 path(
78 "api/2/task/<uuid:job_id>",
79 advanced.directory.add_podcast_status,
80 name="api-add-podcast-status",
82 path("api/2/chapters/<username:username>.json", episode.ChaptersAPI.as_view()),
83 path(
84 "api/2/updates/<username:username>/<client-uid:device_uid>.json",
85 updates.DeviceUpdates.as_view(),
87 path(
88 "api/2/settings/<username:username>/<scope:scope>.json",
89 settings.SettingsAPI.as_view(),
90 name="settings-api",
92 path("api/2/favorites/<username:username>.json", advanced.favorites),
93 path("api/2/lists/<username:username>/create.<str:format>", lists.create),
94 path("api/2/lists/<username:username>.json", lists.get_lists),
95 path(
96 "api/2/lists/<username:username>/list/<slug:slug>.<str:format>",
97 lists.podcast_list,
98 name="api-get-list",
100 path("api/2/sync-devices/<username:username>.json", sync.main),