Merge pull request #63 from LLukas22/Fix-server-names

Respect 'Add Server Names to Media' setting
This commit is contained in:
Lukas Kreussel
2025-12-07 12:04:25 +01:00
committed by GitHub
4 changed files with 23 additions and 24 deletions

View File

@@ -183,20 +183,27 @@ pub async fn get_virtual_id(
/// Replaces the original ids with vitual ids that map back to the original media item and server.
pub async fn process_media_item(
item: MediaItem,
media_storage: &MediaStorageService,
state: &AppState,
server: &Server,
change_name: bool,
should_change_name: bool,
server_id: &str,
) -> Result<MediaItem, StatusCode> {
let mut item = item;
let media_storage = &state.media_storage;
let allowed_to_change_name = state.can_change_item_names().await;
let can_change_name = if let Some(ref collection_type) = item.collection_type {
!matches!(collection_type, CollectionType::LiveTv)
match collection_type {
CollectionType::LiveTv => false,
_ => allowed_to_change_name,
}
} else {
true
allowed_to_change_name
};
if can_change_name && change_name {
if can_change_name && should_change_name {
if let Some(name) = &item.name {
item.name = Some(format!("{} [{}]", name, server.name));
}

View File

@@ -92,7 +92,7 @@ pub async fn get_items_from_all_servers(
for item in items_response.iter_mut_items() {
match process_media_item(
item.clone(),
&state_clone.media_storage,
&state_clone,
&server_clone,
true, // Change name to include server name
&server_id,

View File

@@ -34,8 +34,7 @@ pub async fn get_item(
Ok(media_item) => {
let server_id = { state.config.read().await.server_id.clone() };
Ok(Json(
process_media_item(media_item, &state.media_storage, &server, false, &server_id)
.await?,
process_media_item(media_item, &state, &server, false, &server_id).await?,
))
}
Err(e) => {
@@ -67,14 +66,8 @@ pub async fn get_items(
Ok(mut response) => {
let server_id = { state.config.read().await.server_id.clone() };
for item in &mut response.iter_mut_items() {
*item = process_media_item(
item.clone(),
&state.media_storage,
&server,
false,
&server_id,
)
.await?;
*item =
process_media_item(item.clone(), &state, &server, false, &server_id).await?;
}
Ok(Json(response))
@@ -103,14 +96,8 @@ pub async fn get_items_list(
Ok(mut response) => {
let server_id = { state.config.read().await.server_id.clone() };
for item in &mut response {
*item = process_media_item(
item.clone(),
&state.media_storage,
&server,
false,
&server_id,
)
.await?;
*item =
process_media_item(item.clone(), &state, &server, false, &server_id).await?;
}
Ok(Json(response))

View File

@@ -117,6 +117,11 @@ impl AppState {
config.password.clone()
}
pub async fn can_change_item_names(&self) -> bool {
let config = self.config.read().await;
config.include_server_name_in_media
}
pub async fn remove_prefix_from_path<'a>(&self, path: &'a str) -> &'a str {
let config = self.config.read().await;
if let Some(prefix) = &config.url_prefix {