summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaltycrys <73420320+saltycrys@users.noreply.github.com>2021-02-02 06:18:16 +0100
committersaltycrys <73420320+saltycrys@users.noreply.github.com>2021-02-02 06:18:16 +0100
commit991a04dc2aeb08f497f004cfe82ec9b5a4be72e3 (patch)
tree812d7e5388f09c8c1f782d1400a0b334621e4498
parent82da5cfd0127aaa88fb72ac703a5c8bb80d5d6f7 (diff)
downloadinvidious-991a04dc2aeb08f497f004cfe82ec9b5a4be72e3.tar.gz
invidious-991a04dc2aeb08f497f004cfe82ec9b5a4be72e3.tar.bz2
invidious-991a04dc2aeb08f497f004cfe82ec9b5a4be72e3.zip
Adjust routes
Simple routes have been moved into a single `Misc` file. Embed routes have been moved into a single `Embed` file. The preferences route has been renamed to be more consistent with other parts of the codebase.
-rw-r--r--src/invidious.cr16
-rw-r--r--src/invidious/routes/embed.cr (renamed from src/invidious/routes/embed/show.cr)28
-rw-r--r--src/invidious/routes/embed/index.cr25
-rw-r--r--src/invidious/routes/licenses.cr6
-rw-r--r--src/invidious/routes/misc.cr (renamed from src/invidious/routes/home.cr)14
-rw-r--r--src/invidious/routes/preferences.cr (renamed from src/invidious/routes/user_preferences.cr)2
-rw-r--r--src/invidious/routes/privacy.cr6
7 files changed, 47 insertions, 50 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 713d193e..a63d6aca 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -311,12 +311,12 @@ before_all do |env|
env.set "current_page", URI.encode_www_form(current_page)
end
-Invidious::Routing.get "/", Invidious::Routes::Home
-Invidious::Routing.get "/privacy", Invidious::Routes::Privacy
-Invidious::Routing.get "/licenses", Invidious::Routes::Licenses
+Invidious::Routing.get "/", Invidious::Routes::Misc, :home
+Invidious::Routing.get "/privacy", Invidious::Routes::Misc, :privacy
+Invidious::Routing.get "/licenses", Invidious::Routes::Misc, :licenses
Invidious::Routing.get "/watch", Invidious::Routes::Watch
-Invidious::Routing.get "/embed/", Invidious::Routes::Embed::Index
-Invidious::Routing.get "/embed/:id", Invidious::Routes::Embed::Show
+Invidious::Routing.get "/embed/", Invidious::Routes::Embed, :redirect
+Invidious::Routing.get "/embed/:id", Invidious::Routes::Embed, :show
Invidious::Routing.get "/view_all_playlists", Invidious::Routes::Playlists, :index
Invidious::Routing.get "/create_playlist", Invidious::Routes::Playlists, :new
Invidious::Routing.post "/create_playlist", Invidious::Routes::Playlists, :create
@@ -335,9 +335,9 @@ Invidious::Routing.get "/search", Invidious::Routes::Search, :search
Invidious::Routing.get "/login", Invidious::Routes::Login, :login_page
Invidious::Routing.post "/login", Invidious::Routes::Login, :login
Invidious::Routing.post "/signout", Invidious::Routes::Login, :signout
-Invidious::Routing.get "/preferences", Invidious::Routes::UserPreferences, :show
-Invidious::Routing.post "/preferences", Invidious::Routes::UserPreferences, :update
-Invidious::Routing.get "/toggle_theme", Invidious::Routes::UserPreferences, :toggle_theme
+Invidious::Routing.get "/preferences", Invidious::Routes::PreferencesRoute, :show
+Invidious::Routing.post "/preferences", Invidious::Routes::PreferencesRoute, :update
+Invidious::Routing.get "/toggle_theme", Invidious::Routes::PreferencesRoute, :toggle_theme
# Users
diff --git a/src/invidious/routes/embed/show.cr b/src/invidious/routes/embed.cr
index 8a655556..4fd265c9 100644
--- a/src/invidious/routes/embed/show.cr
+++ b/src/invidious/routes/embed.cr
@@ -1,5 +1,29 @@
-class Invidious::Routes::Embed::Show < Invidious::Routes::BaseRoute
- def handle(env)
+class Invidious::Routes::Embed < Invidious::Routes::BaseRoute
+ def redirect(env)
+ locale = LOCALES[env.get("preferences").as(Preferences).locale]?
+
+ if plid = env.params.query["list"]?.try &.gsub(/[^a-zA-Z0-9_-]/, "")
+ begin
+ playlist = get_playlist(PG_DB, plid, locale: locale)
+ offset = env.params.query["index"]?.try &.to_i? || 0
+ videos = get_playlist_videos(PG_DB, playlist, offset: offset, locale: locale)
+ rescue ex
+ return error_template(500, ex)
+ end
+
+ url = "/embed/#{videos[0].id}?#{env.params.query}"
+
+ if env.params.query.size > 0
+ url += "?#{env.params.query}"
+ end
+ else
+ url = "/"
+ end
+
+ env.redirect url
+ end
+
+ def show(env)
locale = LOCALES[env.get("preferences").as(Preferences).locale]?
id = env.params.url["id"]
diff --git a/src/invidious/routes/embed/index.cr b/src/invidious/routes/embed/index.cr
deleted file mode 100644
index 32a4966b..00000000
--- a/src/invidious/routes/embed/index.cr
+++ /dev/null
@@ -1,25 +0,0 @@
-class Invidious::Routes::Embed::Index < Invidious::Routes::BaseRoute
- def handle(env)
- locale = LOCALES[env.get("preferences").as(Preferences).locale]?
-
- if plid = env.params.query["list"]?.try &.gsub(/[^a-zA-Z0-9_-]/, "")
- begin
- playlist = get_playlist(PG_DB, plid, locale: locale)
- offset = env.params.query["index"]?.try &.to_i? || 0
- videos = get_playlist_videos(PG_DB, playlist, offset: offset, locale: locale)
- rescue ex
- return error_template(500, ex)
- end
-
- url = "/embed/#{videos[0].id}?#{env.params.query}"
-
- if env.params.query.size > 0
- url += "?#{env.params.query}"
- end
- else
- url = "/"
- end
-
- env.redirect url
- end
-end
diff --git a/src/invidious/routes/licenses.cr b/src/invidious/routes/licenses.cr
deleted file mode 100644
index 38fde7bb..00000000
--- a/src/invidious/routes/licenses.cr
+++ /dev/null
@@ -1,6 +0,0 @@
-class Invidious::Routes::Licenses < Invidious::Routes::BaseRoute
- def handle(env)
- locale = LOCALES[env.get("preferences").as(Preferences).locale]?
- rendered "licenses"
- end
-end
diff --git a/src/invidious/routes/home.cr b/src/invidious/routes/misc.cr
index 486a7344..bc009633 100644
--- a/src/invidious/routes/home.cr
+++ b/src/invidious/routes/misc.cr
@@ -1,5 +1,5 @@
-class Invidious::Routes::Home < Invidious::Routes::BaseRoute
- def handle(env)
+class Invidious::Routes::Misc < Invidious::Routes::BaseRoute
+ def home(env)
preferences = env.get("preferences").as(Preferences)
locale = LOCALES[preferences.locale]?
user = env.get? "user"
@@ -25,4 +25,14 @@ class Invidious::Routes::Home < Invidious::Routes::BaseRoute
templated "empty"
end
end
+
+ def privacy(env)
+ locale = LOCALES[env.get("preferences").as(Preferences).locale]?
+ templated "privacy"
+ end
+
+ def licenses(env)
+ locale = LOCALES[env.get("preferences").as(Preferences).locale]?
+ rendered "licenses"
+ end
end
diff --git a/src/invidious/routes/user_preferences.cr b/src/invidious/routes/preferences.cr
index a689a2a2..4901d22b 100644
--- a/src/invidious/routes/user_preferences.cr
+++ b/src/invidious/routes/preferences.cr
@@ -1,4 +1,4 @@
-class Invidious::Routes::UserPreferences < Invidious::Routes::BaseRoute
+class Invidious::Routes::PreferencesRoute < Invidious::Routes::BaseRoute
def show(env)
locale = LOCALES[env.get("preferences").as(Preferences).locale]?
diff --git a/src/invidious/routes/privacy.cr b/src/invidious/routes/privacy.cr
deleted file mode 100644
index 4565c94c..00000000
--- a/src/invidious/routes/privacy.cr
+++ /dev/null
@@ -1,6 +0,0 @@
-class Invidious::Routes::Privacy < Invidious::Routes::BaseRoute
- def handle(env)
- locale = LOCALES[env.get("preferences").as(Preferences).locale]?
- templated "privacy"
- end
-end