diff --git a/src/data_manager.rs b/src/data_manager.rs index b1c7437..56e0efe 100644 --- a/src/data_manager.rs +++ b/src/data_manager.rs @@ -63,6 +63,7 @@ impl DataManager { films . release_date , films . runtime_minutes , films . poster_file_path , + films . source , sources . video_file_path , sources . video_track , sources . audio_file_path , @@ -176,6 +177,9 @@ pub struct FilmDetails { pub release_date : String , pub runtime_minutes : u32 , pub poster_file_path : Option , + pub source : Option , +} +pub struct SourceDetails { pub video_file_path : PathBuf , pub video_track : Option , pub audio_file_path : PathBuf , @@ -191,12 +195,28 @@ fn row_to_film_details ( row : & Row ) -> rusqlite :: Result { let release_date = row . get (3) ? ; let runtime_minutes = row . get (4) ? ; let poster_file_path = row . get :: < _ , Option > (5) ? . map ( PathBuf :: from ) ; - let video_file_path = PathBuf :: from ( row . get :: < _ , String > (6) ? ) ; - let video_track = row . get (7) ? ; - let audio_file_path = PathBuf :: from ( row . get :: < _ , String > (8) ? ) ; - let audio_track = row . get (9) ? ; - let subtitle_file_path = row . get :: < _ , Option > (10) ? . map ( PathBuf :: from ) ; - let subtitle_track = row . get (11) ? ; + + let source_uuid = row . get :: < _ , Option > (6) ? ; + let source = match source_uuid { + Some (_) => { + let video_file_path = PathBuf :: from ( row . get :: < _ , String > (7) ? ) ; + let video_track = row . get (8) ? ; + let audio_file_path = PathBuf :: from ( row . get :: < _ , String > (9) ? ) ; + let audio_track = row . get (10) ? ; + let subtitle_file_path = row . get :: < _ , Option > (11) ? . map ( PathBuf :: from ) ; + let subtitle_track = row . get (12) ? ; + + Some ( SourceDetails { + video_file_path , + video_track , + audio_file_path , + audio_track , + subtitle_file_path , + subtitle_track , + } ) + } , + None => None , + } ; Ok ( FilmDetails { uuid , @@ -205,12 +225,7 @@ fn row_to_film_details ( row : & Row ) -> rusqlite :: Result { release_date , runtime_minutes , poster_file_path , - video_file_path , - video_track , - audio_file_path , - audio_track , - subtitle_file_path , - subtitle_track , + source , } ) }