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")
14 path("upload", legacy
.upload
),
15 path("getlist", legacy
.getlist
),
17 "subscriptions/<username:username>/" "<client-uid:device_uid>.<str:format>",
19 name
="api-simple-subscriptions",
22 "subscriptions/<username:username>.<str:format>",
23 simple
.all_subscriptions
,
24 name
="api-all-subscriptions",
27 "search.<str:format>",
29 name
="api-simple-search",
32 "suggestions/<int:count>.<str:format>",
34 name
="suggestions-opml",
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"),
44 "toplist.<str:format>",
47 name
="api-simple-toplist-50",
49 path("gpodder-examples.<str:format>", simple
.example_podcasts
, name
="example-opml"),
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
),
58 "api/<int:version>/devices/<username:username>/" "<client-uid:device_uid>.json",
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
),
67 "api/2/data/podcast.json",
68 advanced
.directory
.podcast_info
,
69 name
="api-podcast-info",
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
),
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()),
84 "api/2/updates/<username:username>/<client-uid:device_uid>.json",
85 updates
.DeviceUpdates
.as_view(),
88 "api/2/settings/<username:username>/<scope:scope>.json",
89 settings
.SettingsAPI
.as_view(),
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
),
96 "api/2/lists/<username:username>/list/<slug:slug>.<str:format>",
100 path("api/2/sync-devices/<username:username>.json", sync
.main
),