format
This commit is contained in:
@@ -72,8 +72,16 @@ impl WorkerManager {
|
|||||||
// Read config for concurrency settings and spawn workers
|
// Read config for concurrency settings and spawn workers
|
||||||
let cfg = state_clone.config.read().await.clone();
|
let cfg = state_clone.config.read().await.clone();
|
||||||
spawn_worker(state_clone.clone(), WorkTaskType::Download, 1);
|
spawn_worker(state_clone.clone(), WorkTaskType::Download, 1);
|
||||||
spawn_worker(state_clone.clone(), WorkTaskType::Index, cfg.indexing.concurrency);
|
spawn_worker(
|
||||||
spawn_worker(state_clone.clone(), WorkTaskType::Tag, cfg.tagging.concurrency);
|
state_clone.clone(),
|
||||||
|
WorkTaskType::Index,
|
||||||
|
cfg.indexing.concurrency,
|
||||||
|
);
|
||||||
|
spawn_worker(
|
||||||
|
state_clone.clone(),
|
||||||
|
WorkTaskType::Tag,
|
||||||
|
cfg.tagging.concurrency,
|
||||||
|
);
|
||||||
spawn_worker(state_clone.clone(), WorkTaskType::Organize, 4);
|
spawn_worker(state_clone.clone(), WorkTaskType::Organize, 4);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -361,11 +369,11 @@ async fn process_index(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
for track in &tracks {
|
for track in &tracks {
|
||||||
if let Some(ref mbid) = track.musicbrainz_id {
|
if let Some(ref mbid) = track.musicbrainz_id
|
||||||
if !wanted_mbids.contains(mbid.as_str()) {
|
&& !wanted_mbids.contains(mbid.as_str())
|
||||||
let tag_payload = serde_json::json!({"track_id": track.id});
|
{
|
||||||
downstream.push((WorkTaskType::Tag, tag_payload.to_string()));
|
let tag_payload = serde_json::json!({"track_id": track.id});
|
||||||
}
|
downstream.push((WorkTaskType::Tag, tag_payload.to_string()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
offset += 500;
|
offset += 500;
|
||||||
@@ -420,35 +428,34 @@ async fn process_tag(
|
|||||||
.map_err(|e| e.to_string())?;
|
.map_err(|e| e.to_string())?;
|
||||||
|
|
||||||
// Ensure a wanted_item exists for this track (marks imported files as Owned)
|
// Ensure a wanted_item exists for this track (marks imported files as Owned)
|
||||||
if let Some(ref mbid) = track.musicbrainz_id {
|
if let Some(ref mbid) = track.musicbrainz_id
|
||||||
if queries::wanted::find_by_mbid(conn, mbid)
|
&& queries::wanted::find_by_mbid(conn, mbid)
|
||||||
.await
|
.await
|
||||||
.map_err(|e| e.to_string())?
|
.map_err(|e| e.to_string())?
|
||||||
.is_none()
|
.is_none()
|
||||||
{
|
{
|
||||||
let item = queries::wanted::add(
|
let item = queries::wanted::add(
|
||||||
conn,
|
conn,
|
||||||
queries::wanted::AddWantedItem {
|
queries::wanted::AddWantedItem {
|
||||||
item_type: shanty_db::entities::wanted_item::ItemType::Track,
|
item_type: shanty_db::entities::wanted_item::ItemType::Track,
|
||||||
name: track.title.as_deref().unwrap_or("Unknown"),
|
name: track.title.as_deref().unwrap_or("Unknown"),
|
||||||
musicbrainz_id: Some(mbid),
|
musicbrainz_id: Some(mbid),
|
||||||
artist_id: track.artist_id,
|
artist_id: track.artist_id,
|
||||||
album_id: track.album_id,
|
album_id: track.album_id,
|
||||||
track_id: Some(track.id),
|
track_id: Some(track.id),
|
||||||
user_id: None,
|
user_id: None,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.map_err(|e| e.to_string())?;
|
.map_err(|e| e.to_string())?;
|
||||||
|
|
||||||
// Mark as Owned immediately since the file already exists
|
// Mark as Owned immediately since the file already exists
|
||||||
let _ = queries::wanted::update_status(
|
let _ = queries::wanted::update_status(
|
||||||
conn,
|
conn,
|
||||||
item.id,
|
item.id,
|
||||||
shanty_db::entities::wanted_item::WantedStatus::Owned,
|
shanty_db::entities::wanted_item::WantedStatus::Owned,
|
||||||
)
|
)
|
||||||
.await;
|
.await;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create Organize work item
|
// Create Organize work item
|
||||||
|
|||||||
Reference in New Issue
Block a user