diff options
author | metamuffin <metamuffin@disroot.org> | 2025-02-04 20:14:10 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-02-04 20:14:10 +0100 |
commit | 755f81e4c1b1b1a59f7cb0a38bbb7c08537a9bbd (patch) | |
tree | e8b80c98b0d3d5db0dbe79b930036fb93122553b /server/src/routes/compat | |
parent | 38b3a789880633aaaa1067f989b7b915b4529195 (diff) | |
download | jellything-755f81e4c1b1b1a59f7cb0a38bbb7c08537a9bbd.tar jellything-755f81e4c1b1b1a59f7cb0a38bbb7c08537a9bbd.tar.bz2 jellything-755f81e4c1b1b1a59f7cb0a38bbb7c08537a9bbd.tar.zst |
youtube embed
Diffstat (limited to 'server/src/routes/compat')
-rw-r--r-- | server/src/routes/compat/youtube.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/server/src/routes/compat/youtube.rs b/server/src/routes/compat/youtube.rs index 732431e..5880044 100644 --- a/server/src/routes/compat/youtube.rs +++ b/server/src/routes/compat/youtube.rs @@ -42,3 +42,18 @@ pub fn r_youtube_channel(_session: Session, db: &State<Database>, id: &str) -> M let node = db.get_node(id)?.ok_or(anyhow!("node missing"))?; Ok(Redirect::to(rocket::uri!(r_library_node(&node.slug)))) } + +#[get("/embed/<v>")] +pub fn r_youtube_embed(_session: Session, db: &State<Database>, v: &str) -> MyResult<Redirect> { + if v.len() != 11 { + Err(anyhow!("video id length incorrect"))? + } + let Some(id) = db.get_node_external_id("youtube:video", v)? else { + 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() + )))) +} |