diff options
Diffstat (limited to 'server/src/compat/youtube.rs')
-rw-r--r-- | server/src/compat/youtube.rs | 34 |
1 files changed, 13 insertions, 21 deletions
diff --git a/server/src/compat/youtube.rs b/server/src/compat/youtube.rs index 1df2751..67a34fc 100644 --- a/server/src/compat/youtube.rs +++ b/server/src/compat/youtube.rs @@ -3,21 +3,15 @@ which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2025 metamuffin <metamuffin.org> */ -use crate::{ - logic::session::Session, - ui::{ - error::MyResult, - node::rocket_uri_macro_r_library_node, - player::{rocket_uri_macro_r_player, PlayerConfig}, - }, -}; +use crate::{helper::A, ui::error::MyResult}; use anyhow::anyhow; use jellybase::database::Database; -use jellycommon::NodeID; +use jellycommon::routes::{u_node_slug, u_node_slug_player}; +use jellylogic::session::Session; use rocket::{get, response::Redirect, State}; #[get("/watch?<v>")] -pub fn r_youtube_watch(_session: Session, db: &State<Database>, v: &str) -> MyResult<Redirect> { +pub fn r_youtube_watch(_session: A<Session>, db: &State<Database>, v: &str) -> MyResult<Redirect> { if v.len() != 11 { Err(anyhow!("video id length incorrect"))? } @@ -25,14 +19,15 @@ pub fn r_youtube_watch(_session: Session, db: &State<Database>, v: &str) -> MyRe Err(anyhow!("element not found"))? }; let node = db.get_node(id)?.ok_or(anyhow!("node missing"))?; - Ok(Redirect::to(rocket::uri!(r_player( - &node.slug, - PlayerConfig::default() - )))) + Ok(Redirect::to(u_node_slug_player(&node.slug))) } #[get("/channel/<id>")] -pub fn r_youtube_channel(_session: Session, db: &State<Database>, id: &str) -> MyResult<Redirect> { +pub fn r_youtube_channel( + _session: A<Session>, + db: &State<Database>, + id: &str, +) -> MyResult<Redirect> { let Some(id) = (if id.starts_with("UC") { db.get_node_external_id("youtube:channel", id)? } else if id.starts_with("@") { @@ -43,11 +38,11 @@ pub fn r_youtube_channel(_session: Session, db: &State<Database>, id: &str) -> M Err(anyhow!("channel not found"))? }; let node = db.get_node(id)?.ok_or(anyhow!("node missing"))?; - Ok(Redirect::to(rocket::uri!(r_library_node(&node.slug)))) + Ok(Redirect::to(u_node_slug(&node.slug))) } #[get("/embed/<v>")] -pub fn r_youtube_embed(_session: Session, db: &State<Database>, v: &str) -> MyResult<Redirect> { +pub fn r_youtube_embed(_session: A<Session>, db: &State<Database>, v: &str) -> MyResult<Redirect> { if v.len() != 11 { Err(anyhow!("video id length incorrect"))? } @@ -55,8 +50,5 @@ pub fn r_youtube_embed(_session: Session, db: &State<Database>, v: &str) -> MyRe Err(anyhow!("element not found"))? }; let node = db.get_node(id)?.ok_or(anyhow!("node missing"))?; - Ok(Redirect::to(rocket::uri!(r_player( - &node.slug, - PlayerConfig::default() - )))) + Ok(Redirect::to(u_node_slug_player(&node.slug))) } |