parent
4e98df4498
commit
1dfb3d4964
21 changed files with 338 additions and 523 deletions
|
@ -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"))?;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue