Repository: IgnisDa/ryot (language: rust)

Issue:
Create tmdb people with the correct `source_specifics`
From a discord user:

---

<@358313783862624259> I've been noticing that there's a problem with the mapping of some `people`. About 80% seem right, but there's a few that definitely wrong. It seems like some production companies are mapped as actors. Robert DeNiro is one of the obvious ones I noticed. He's listed as "Thousand Words," the production company. Harrison Ford is listed as "Pixar." I'm also pretty sure that Gary Sinise is mapped as "Universal Pictures."

---

This happens because the first time we create a `person` from a related metadata person, it is created with the wrong value of `source_specifics`.


Discussion / hints:
![Image](https://github.com/user-attachments/assets/12353162-b3ec-47b8-a285-3ecb66fac3a5)

![Image](https://github.com/user-attachments/assets/b9021b1a-9810-42d3-be41-a9dd18f5ee0d)

Fix patch:
diff --git a/apps/frontend/app/routes/_dashboard.fitness.exercises.$action.tsx b/apps/frontend/app/routes/_dashboard.fitness.exercises.$action.tsx
index da30bb164a..4166b54e4e 100644
--- a/apps/frontend/app/routes/_dashboard.fitness.exercises.$action.tsx
+++ b/apps/frontend/app/routes/_dashboard.fitness.exercises.$action.tsx
@@ -193,9 +193,12 @@ export default function Page() {
 						required
 						name="lot"
 						label="Type"
-						data={Object.values(ExerciseLot)}
 						defaultValue={loaderData.details?.lot}
 						readOnly={loaderData.action === Action.Update}
+						data={Object.values(ExerciseLot).map((l) => ({
+							value: l,
+							label: startCase(l.toLowerCase()),
+						}))}
 					/>
 					<Group wrap="nowrap">
 						<Select
diff --git a/crates/services/miscellaneous/src/lib.rs b/crates/services/miscellaneous/src/lib.rs
index 3bdf2fde87..95c2e562f8 100644
--- a/crates/services/miscellaneous/src/lib.rs
+++ b/crates/services/miscellaneous/src/lib.rs
@@ -2867,7 +2867,7 @@ ORDER BY RANDOM() LIMIT 10;
 
         ryot_log!(trace, "Invalidating invalid media import jobs");
         self.invalidate_import_jobs().await.trace_ok();
-        ryot_log!(trace, "Checking for updates for media in Watchlist");
+        ryot_log!(trace, "Checking for updates for monitored media");
         self.update_monitored_metadata_and_queue_notifications()
             .await
             .trace_ok();
diff --git a/crates/utils/dependent/src/lib.rs b/crates/utils/dependent/src/lib.rs
index f874460689..04be11d93c 100644
--- a/crates/utils/dependent/src/lib.rs
+++ b/crates/utils/dependent/src/lib.rs
@@ -782,8 +782,9 @@ pub async fn commit_person(
     match Person::find()
         .filter(person::Column::Source.eq(input.source))
         .filter(person::Column::Identifier.eq(&input.identifier))
-        .apply_if(input.source_specifics.clone(), |query, v| {
-            query.filter(person::Column::SourceSpecifics.eq(v))
+        .filter(match input.source_specifics.clone() {
+            None => person::Column::SourceSpecifics.is_null(),
+            Some(specifics) => person::Column::SourceSpecifics.eq(specifics),
         })
         .one(db)
         .await?


Test patch: