treewide: cleanup

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia01590cdeed872cc8ebd16f6ca95f3cc6a6a6964
This commit is contained in:
raf 2026-03-11 17:23:51 +03:00
commit df1c46fa5c
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
16 changed files with 258 additions and 219 deletions

View file

@ -15,7 +15,8 @@ pub fn relativize_path(full_path: &Path, roots: &[PathBuf]) -> String {
let mut best: Option<&PathBuf> = None;
for root in roots {
if full_path.starts_with(root) {
let is_longer = best.map_or(true, |b| root.components().count() > b.components().count());
let is_longer = best
.map_or(true, |b| root.components().count() > b.components().count());
if is_longer {
best = Some(root);
}
@ -268,10 +269,7 @@ impl MediaResponse {
/// matching root prefix from the path before serialization. Pass the
/// configured root directories so that clients receive a relative path
/// (e.g. `"Music/song.mp3"`) rather than a full server filesystem path.
pub fn new(
item: pinakes_core::model::MediaItem,
roots: &[PathBuf],
) -> Self {
pub fn new(item: pinakes_core::model::MediaItem, roots: &[PathBuf]) -> Self {
Self {
id: item.id.0.to_string(),
path: relativize_path(&item.path, roots),
@ -358,10 +356,7 @@ mod tests {
#[test]
fn relativize_path_empty_roots_returns_full() {
let path = Path::new("/home/user/music/song.mp3");
assert_eq!(
relativize_path(path, &[]),
"/home/user/music/song.mp3"
);
assert_eq!(relativize_path(path, &[]), "/home/user/music/song.mp3");
}
#[test]

View file

@ -195,8 +195,10 @@ pub async fn list_books(
.await?;
let roots = state.config.read().await.directories.roots.clone();
let response: Vec<MediaResponse> =
items.into_iter().map(|item| MediaResponse::new(item, &roots)).collect();
let response: Vec<MediaResponse> = items
.into_iter()
.map(|item| MediaResponse::new(item, &roots))
.collect();
Ok(Json(response))
}
@ -225,8 +227,10 @@ pub async fn get_series_books(
) -> Result<impl IntoResponse, ApiError> {
let items = state.storage.get_series_books(&series_name).await?;
let roots = state.config.read().await.directories.roots.clone();
let response: Vec<MediaResponse> =
items.into_iter().map(|item| MediaResponse::new(item, &roots)).collect();
let response: Vec<MediaResponse> = items
.into_iter()
.map(|item| MediaResponse::new(item, &roots))
.collect();
Ok(Json(response))
}
@ -261,8 +265,10 @@ pub async fn get_author_books(
.await?;
let roots = state.config.read().await.directories.roots.clone();
let response: Vec<MediaResponse> =
items.into_iter().map(|item| MediaResponse::new(item, &roots)).collect();
let response: Vec<MediaResponse> = items
.into_iter()
.map(|item| MediaResponse::new(item, &roots))
.collect();
Ok(Json(response))
}
@ -321,8 +327,10 @@ pub async fn get_reading_list(
.await?;
let roots = state.config.read().await.directories.roots.clone();
let response: Vec<MediaResponse> =
items.into_iter().map(|item| MediaResponse::new(item, &roots)).collect();
let response: Vec<MediaResponse> = items
.into_iter()
.map(|item| MediaResponse::new(item, &roots))
.collect();
Ok(Json(response))
}

View file

@ -153,10 +153,12 @@ pub async fn list_plugin_ui_pages(
let pages = plugin_manager.list_ui_pages_with_endpoints().await;
let entries = pages
.into_iter()
.map(|(plugin_id, page, allowed_endpoints)| PluginUiPageEntry {
plugin_id,
page,
allowed_endpoints,
.map(|(plugin_id, page, allowed_endpoints)| {
PluginUiPageEntry {
plugin_id,
page,
allowed_endpoints,
}
})
.collect();
Ok(Json(entries))