aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/progress.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-01-16 15:55:15 +0100
committermetamuffin <metamuffin@disroot.org>2024-01-16 15:55:15 +0100
commit0fa9a389d894e6cbf6a0b30a126d7e57686d0e38 (patch)
tree649a5524effe2795104f89c5ec61871d5944e03e /server/src/routes/progress.rs
parent80ce9014a8893952c1534c0aeb1ebb4d9d76e4fb (diff)
downloadjellything-0fa9a389d894e6cbf6a0b30a126d7e57686d0e38.tar
jellything-0fa9a389d894e6cbf6a0b30a126d7e57686d0e38.tar.bz2
jellything-0fa9a389d894e6cbf6a0b30a126d7e57686d0e38.tar.zst
resume player correctly when progress
Diffstat (limited to 'server/src/routes/progress.rs')
-rw-r--r--server/src/routes/progress.rs69
1 files changed, 0 insertions, 69 deletions
diff --git a/server/src/routes/progress.rs b/server/src/routes/progress.rs
deleted file mode 100644
index fa6f844..0000000
--- a/server/src/routes/progress.rs
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- This file is part of jellything (https://codeberg.org/metamuffin/jellything)
- which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
- Copyright (C) 2023 metamuffin <metamuffin.org>
-*/
-use super::ui::{account::session::Session, error::MyResult};
-use crate::routes::ui::node::rocket_uri_macro_r_library_node;
-use anyhow::anyhow;
-use jellybase::database::Database;
-use jellycommon::user::WatchedState;
-use rocket::{post, response::Redirect, FromFormField, State, UriDisplayQuery};
-
-#[derive(Debug, FromFormField, UriDisplayQuery)]
-pub enum UrlWatchedState {
- None,
- Watched,
- Pending,
-}
-
-#[post("/n/<id>/watched?<state>")]
-pub async fn r_player_watched(
- session: Session,
- db: &State<Database>,
- id: &str,
- state: UrlWatchedState,
-) -> MyResult<Redirect> {
- db.node
- .get(&id.to_string())?
- .ok_or(anyhow!("node does not exist"))?;
-
- let key = (session.user.name.clone(), id.to_owned());
-
- db.user_node.fetch_and_update(&key, |t| {
- let mut t = t.unwrap_or_default();
- t.watched = match state {
- UrlWatchedState::None => WatchedState::None,
- UrlWatchedState::Watched => WatchedState::Watched,
- UrlWatchedState::Pending => WatchedState::Pending,
- };
- Some(t)
- })?;
-
- Ok(Redirect::found(rocket::uri!(r_library_node(id))))
-}
-
-#[post("/n/<id>/progress?<t>")]
-pub async fn r_player_progress(
- session: Session,
- db: &State<Database>,
- id: &str,
- t: f64,
-) -> MyResult<()> {
- db.node
- .get(&id.to_string())?
- .ok_or(anyhow!("node does not exist"))?;
-
- let key = (session.user.name.clone(), id.to_owned());
- db.user_node.fetch_and_update(&key, |d| {
- let mut d = d.unwrap_or_default();
- d.watched = match d.watched {
- WatchedState::None | WatchedState::Pending | WatchedState::Progress(_) => {
- WatchedState::Progress(t)
- }
- WatchedState::Watched => WatchedState::Watched,
- };
- Some(d)
- })?;
- Ok(())
-}