@@ -6,7 +6,7 @@ defmodule Reencodarr.Sync do
66 alias Reencodarr.Analyzer.Broadway , as: AnalyzerBroadway
77 alias Reencodarr.Core.Parsers
88 alias Reencodarr.Dashboard.Events
9- alias Reencodarr . { Media , Repo , Services }
9+ alias Reencodarr . { DbWriter , Media , Repo , Services }
1010
1111 alias Reencodarr.Media . { MediaInfoExtractor , VideoFileInfo , VideoUpsert }
1212 alias Reencodarr.Media.Video.MediaInfoConverter
@@ -335,8 +335,13 @@ defmodule Reencodarr.Sync do
335335 # Check if video exists and file size hasn't changed
336336 existing_video = Media . get_video_by_path ( info . path )
337337
338- # VideoUpsert will automatically set state to needs_analysis for zero bitrate
339- handle_video_upsert ( existing_video , info )
338+ DbWriter . transaction (
339+ fn ->
340+ # VideoUpsert will automatically set state to needs_analysis for zero bitrate
341+ handle_video_upsert ( existing_video , info )
342+ end ,
343+ label: :sync_upsert_video_from_file
344+ )
340345 end
341346
342347 defp handle_video_upsert ( { :ok , video } , info ) do
@@ -419,17 +424,22 @@ defmodule Reencodarr.Sync do
419424 # Convert directly to MediaInfo format
420425 mediainfo = MediaInfoConverter . from_service_file ( file , service_type )
421426
422- # Store in database
423- # VideoUpsert will automatically set state to needs_analysis for missing bitrate
424- VideoUpsert . upsert ( % {
425- "path" => file [ "path" ] ,
426- "size" => file [ "size" ] ,
427- "service_id" => to_string ( file [ "id" ] ) ,
428- "service_type" => to_string ( service_type ) ,
429- "mediainfo" => mediainfo ,
430- "bitrate" => file [ "overallBitrate" ] || 0 ,
431- "dateAdded" => file [ "dateAdded" ]
432- } )
427+ DbWriter . transaction (
428+ fn ->
429+ # Store in database
430+ # VideoUpsert will automatically set state to needs_analysis for missing bitrate
431+ VideoUpsert . upsert ( % {
432+ "path" => file [ "path" ] ,
433+ "size" => file [ "size" ] ,
434+ "service_id" => to_string ( file [ "id" ] ) ,
435+ "service_type" => to_string ( service_type ) ,
436+ "mediainfo" => mediainfo ,
437+ "bitrate" => file [ "overallBitrate" ] || 0 ,
438+ "dateAdded" => file [ "dateAdded" ]
439+ } )
440+ end ,
441+ label: :sync_upsert_video_from_service_file
442+ )
433443 end
434444
435445 defp build_video_file_info ( file , _media_info , service_type ) do
0 commit comments