summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamantaz Fox <coding@samantaz.fr>2022-08-10 00:09:58 +0200
committerSamantaz Fox <coding@samantaz.fr>2022-08-10 00:10:29 +0200
commit389ae7a57395f1b3fbf540deebbad73d0674e715 (patch)
treed6efd87ead64a668a225e6363ed5b117f2590cb6
parent176247091d5df6fe7d9b772ef3e1ff09d3bc9c1c (diff)
downloadinvidious-389ae7a57395f1b3fbf540deebbad73d0674e715.tar.gz
invidious-389ae7a57395f1b3fbf540deebbad73d0674e715.tar.bz2
invidious-389ae7a57395f1b3fbf540deebbad73d0674e715.zip
routing: register playback routes with a function, rather than a macro
-rw-r--r--src/invidious.cr4
-rw-r--r--src/invidious/routing.cr50
2 files changed, 29 insertions, 25 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 1188710f..f244cea5 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -423,8 +423,8 @@ Invidious::Routing.get "/vi/:id/:name", Invidious::Routes::Images, :thumbnails
Invidious::Routing.register_api_v1_routes
# Video playback (macros)
-define_api_manifest_routes()
-define_video_playback_routes()
+Invidious::Routing.register_api_manifest_routes
+Invidious::Routing.register_video_playback_routes
error 404 do |env|
if md = env.request.path.match(/^\/(?<id>([a-zA-Z0-9_-]{11})|(\w+))$/)
diff --git a/src/invidious/routing.cr b/src/invidious/routing.cr
index 9e8ce34d..25cbfa48 100644
--- a/src/invidious/routing.cr
+++ b/src/invidious/routing.cr
@@ -45,6 +45,33 @@ module Invidious::Routing
end
# -------------------
+ # Youtube routes
+ # -------------------
+
+ def register_api_manifest_routes
+ get "/api/manifest/dash/id/:id", Routes::API::Manifest, :get_dash_video_id
+
+ get "/api/manifest/dash/id/videoplayback", Routes::API::Manifest, :get_dash_video_playback
+ get "/api/manifest/dash/id/videoplayback/*", Routes::API::Manifest, :get_dash_video_playback_greedy
+
+ options "/api/manifest/dash/id/videoplayback", Routes::API::Manifest, :options_dash_video_playback
+ options "/api/manifest/dash/id/videoplayback/*", Routes::API::Manifest, :options_dash_video_playback
+
+ get "/api/manifest/hls_playlist/*", Routes::API::Manifest, :get_hls_playlist
+ get "/api/manifest/hls_variant/*", Routes::API::Manifest, :get_hls_variant
+ end
+
+ def register_video_playback_routes
+ get "/videoplayback", Routes::VideoPlayback, :get_video_playback
+ get "/videoplayback/*", Routes::VideoPlayback, :get_video_playback_greedy
+
+ options "/videoplayback", Routes::VideoPlayback, :options_video_playback
+ options "/videoplayback/*", Routes::VideoPlayback, :options_video_playback
+
+ get "/latest_version", Routes::VideoPlayback, :latest_version
+ end
+
+ # -------------------
# API routes
# -------------------
@@ -116,26 +143,3 @@ module Invidious::Routing
{% end %}
end
end
-
-macro define_api_manifest_routes
- Invidious::Routing.get "/api/manifest/dash/id/:id", Invidious::Routes::API::Manifest, :get_dash_video_id
-
- Invidious::Routing.get "/api/manifest/dash/id/videoplayback", Invidious::Routes::API::Manifest, :get_dash_video_playback
- Invidious::Routing.get "/api/manifest/dash/id/videoplayback/*", Invidious::Routes::API::Manifest, :get_dash_video_playback_greedy
-
- Invidious::Routing.options "/api/manifest/dash/id/videoplayback", Invidious::Routes::API::Manifest, :options_dash_video_playback
- Invidious::Routing.options "/api/manifest/dash/id/videoplayback/*", Invidious::Routes::API::Manifest, :options_dash_video_playback
-
- Invidious::Routing.get "/api/manifest/hls_playlist/*", Invidious::Routes::API::Manifest, :get_hls_playlist
- Invidious::Routing.get "/api/manifest/hls_variant/*", Invidious::Routes::API::Manifest, :get_hls_variant
-end
-
-macro define_video_playback_routes
- Invidious::Routing.get "/videoplayback", Invidious::Routes::VideoPlayback, :get_video_playback
- Invidious::Routing.get "/videoplayback/*", Invidious::Routes::VideoPlayback, :get_video_playback_greedy
-
- Invidious::Routing.options "/videoplayback", Invidious::Routes::VideoPlayback, :options_video_playback
- Invidious::Routing.options "/videoplayback/*", Invidious::Routes::VideoPlayback, :options_video_playback
-
- Invidious::Routing.get "/latest_version", Invidious::Routes::VideoPlayback, :latest_version
-end