based
Some checks failed
ci/woodpecker/push/deploy Pipeline failed

This commit is contained in:
JMARyA 2024-12-18 18:59:00 +01:00
parent 4e98df4498
commit 1dfb3d4964
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
21 changed files with 338 additions and 523 deletions

View file

@ -1,18 +1,13 @@
use std::str::FromStr;
use super::api_error;
use super::no_uuid_error;
use super::to_uuid;
use super::FallibleApiResponse;
use super::ToAPI;
use crate::library::user::User;
use crate::library::{track, Libary};
use based::{
auth::User,
check_admin,
request::api::{api_error, to_uuid, FallibleApiResponse, ToAPI},
};
use fs::NamedFile;
use rocket::{fs, get, State};
use serde_json::json;
use crate::check_admin;
use crate::library::Libary;
#[get("/track/<track_id>")]
pub async fn track_route(track_id: &str, lib: &State<Libary>) -> FallibleApiResponse {
Ok(lib
@ -38,9 +33,7 @@ pub async fn track_reload_meta_route(
#[get("/track/<track_id>/audio")]
pub async fn track_audio_route(track_id: &str, lib: &State<Libary>) -> Option<NamedFile> {
let track = lib
.get_track_by_id(&uuid::Uuid::from_str(track_id).ok()?)
.await?;
let track = lib.get_track_by_id(&to_uuid(track_id).ok()?).await?;
NamedFile::open(std::path::Path::new(&track.path))
.await
.ok()
@ -48,24 +41,20 @@ pub async fn track_audio_route(track_id: &str, lib: &State<Libary>) -> Option<Na
#[get("/track/<track_id>/audio/opus128")]
pub async fn track_audio_opus128_route(track_id: &str, lib: &State<Libary>) -> Option<NamedFile> {
let track = lib
.get_track_by_id(&uuid::Uuid::from_str(track_id).ok()?)
.await?;
let track = lib.get_track_by_id(&to_uuid(track_id).ok()?).await?;
NamedFile::open(track.get_opus(128)?).await.ok()
}
#[get("/track/<track_id>/audio/aac128")]
pub async fn track_audio_aac128_route(track_id: &str, lib: &State<Libary>) -> Option<NamedFile> {
let track = lib
.get_track_by_id(&uuid::Uuid::from_str(track_id).ok()?)
.await?;
let track = lib.get_track_by_id(&to_uuid(track_id).ok()?).await?;
NamedFile::open(track.get_aac(128)?).await.ok()
}
#[get("/track/<track_id>/lyrics")]
pub async fn track_lyrics_route(track_id: &str, lib: &State<Libary>) -> FallibleApiResponse {
let track = lib
.get_track_by_id(&uuid::Uuid::from_str(track_id).map_err(|_| no_uuid_error())?)
.get_track_by_id(&to_uuid(track_id)?)
.await
.ok_or_else(|| api_error("No such track"))?;