@@ -2686,7 +2686,7 @@ impl MiscellaneousService {
2686
2686
Ok ( ProgressUpdateResultUnion :: Ok ( IdObject { id } ) )
2687
2687
}
2688
2688
2689
- pub async fn deploy_bulk_progress_update (
2689
+ async fn deploy_bulk_progress_update (
2690
2690
& self ,
2691
2691
user_id : i32 ,
2692
2692
input : Vec < ProgressUpdateInput > ,
@@ -2777,7 +2777,7 @@ impl MiscellaneousService {
2777
2777
Ok ( true )
2778
2778
}
2779
2779
2780
- pub async fn cleanup_user_and_metadata_association ( & self ) -> Result < ( ) > {
2780
+ async fn cleanup_user_and_metadata_association ( & self ) -> Result < ( ) > {
2781
2781
let all_users = User :: find ( )
2782
2782
. select_only ( )
2783
2783
. column ( user:: Column :: Id )
@@ -2897,7 +2897,7 @@ impl MiscellaneousService {
2897
2897
Ok ( ( ) )
2898
2898
}
2899
2899
2900
- pub async fn update_media (
2900
+ async fn update_media (
2901
2901
& self ,
2902
2902
metadata_id : i32 ,
2903
2903
input : MediaDetails ,
@@ -3109,7 +3109,7 @@ impl MiscellaneousService {
3109
3109
Ok ( notifications)
3110
3110
}
3111
3111
3112
- pub async fn associate_person_with_metadata (
3112
+ async fn associate_person_with_metadata (
3113
3113
& self ,
3114
3114
metadata_id : i32 ,
3115
3115
person : PartialMetadataPerson ,
@@ -3395,7 +3395,7 @@ impl MiscellaneousService {
3395
3395
Ok ( ( ) )
3396
3396
}
3397
3397
3398
- pub async fn deploy_update_metadata_job ( & self , metadata_id : i32 ) -> Result < String > {
3398
+ async fn deploy_update_metadata_job ( & self , metadata_id : i32 ) -> Result < String > {
3399
3399
let metadata = Metadata :: find_by_id ( metadata_id)
3400
3400
. one ( & self . db )
3401
3401
. await
@@ -3409,7 +3409,7 @@ impl MiscellaneousService {
3409
3409
Ok ( job_id. to_string ( ) )
3410
3410
}
3411
3411
3412
- pub async fn deploy_update_person_job ( & self , person_id : i32 ) -> Result < String > {
3412
+ async fn deploy_update_person_job ( & self , person_id : i32 ) -> Result < String > {
3413
3413
let person = Person :: find_by_id ( person_id)
3414
3414
. one ( & self . db )
3415
3415
. await
@@ -3423,12 +3423,7 @@ impl MiscellaneousService {
3423
3423
Ok ( job_id. to_string ( ) )
3424
3424
}
3425
3425
3426
- pub async fn merge_metadata (
3427
- & self ,
3428
- user_id : i32 ,
3429
- merge_from : i32 ,
3430
- merge_into : i32 ,
3431
- ) -> Result < bool > {
3426
+ async fn merge_metadata ( & self , user_id : i32 , merge_from : i32 , merge_into : i32 ) -> Result < bool > {
3432
3427
for old_seen in Seen :: find ( )
3433
3428
. filter ( seen:: Column :: MetadataId . eq ( merge_from) )
3434
3429
. filter ( seen:: Column :: UserId . eq ( user_id) )
@@ -4376,7 +4371,7 @@ impl MiscellaneousService {
4376
4371
} )
4377
4372
}
4378
4373
4379
- pub async fn delete_review ( & self , user_id : i32 , review_id : i32 ) -> Result < bool > {
4374
+ async fn delete_review ( & self , user_id : i32 , review_id : i32 ) -> Result < bool > {
4380
4375
let review = Review :: find ( )
4381
4376
. filter ( review:: Column :: Id . eq ( review_id) )
4382
4377
. one ( & self . db )
@@ -4453,7 +4448,7 @@ impl MiscellaneousService {
4453
4448
}
4454
4449
}
4455
4450
4456
- pub async fn delete_collection ( & self , user_id : i32 , name : & str ) -> Result < bool > {
4451
+ async fn delete_collection ( & self , user_id : i32 , name : & str ) -> Result < bool > {
4457
4452
if DefaultCollection :: iter ( ) . any ( |col_name| col_name. to_string ( ) == name) {
4458
4453
return Err ( Error :: new ( "Can not delete a default collection" . to_owned ( ) ) ) ;
4459
4454
}
@@ -4513,7 +4508,7 @@ impl MiscellaneousService {
4513
4508
Ok ( IdObject { id : collect. id } )
4514
4509
}
4515
4510
4516
- pub async fn delete_seen_item ( & self , user_id : i32 , seen_id : i32 ) -> Result < IdObject > {
4511
+ async fn delete_seen_item ( & self , user_id : i32 , seen_id : i32 ) -> Result < IdObject > {
4517
4512
let seen_item = Seen :: find_by_id ( seen_id) . one ( & self . db ) . await . unwrap ( ) ;
4518
4513
if let Some ( si) = seen_item {
4519
4514
let ( ssn, sen) = match & si. show_extra_information {
@@ -5033,7 +5028,7 @@ impl MiscellaneousService {
5033
5028
Ok ( IdObject { id : user_obj. id } )
5034
5029
}
5035
5030
5036
- pub async fn regenerate_user_summaries ( & self ) -> Result < ( ) > {
5031
+ async fn regenerate_user_summaries ( & self ) -> Result < ( ) > {
5037
5032
let all_users = User :: find ( )
5038
5033
. select_only ( )
5039
5034
. column ( user:: Column :: Id )
@@ -5998,7 +5993,7 @@ impl MiscellaneousService {
5998
5993
Ok ( ( ) )
5999
5994
}
6000
5995
6001
- pub async fn after_media_seen_tasks ( & self , seen : seen:: Model ) -> Result < ( ) > {
5996
+ async fn after_media_seen_tasks ( & self , seen : seen:: Model ) -> Result < ( ) > {
6002
5997
let add_entity_to_collection = |collection_name : & str | {
6003
5998
self . add_entity_to_collection (
6004
5999
seen. user_id ,
@@ -6124,11 +6119,7 @@ impl MiscellaneousService {
6124
6119
}
6125
6120
6126
6121
#[ tracing:: instrument( skip( self , msg) ) ]
6127
- pub async fn send_notifications_to_user_platforms (
6128
- & self ,
6129
- user_id : i32 ,
6130
- msg : & str ,
6131
- ) -> Result < bool > {
6122
+ async fn send_notifications_to_user_platforms ( & self , user_id : i32 , msg : & str ) -> Result < bool > {
6132
6123
let user_details = user_by_id ( & self . db , user_id) . await ?;
6133
6124
let mut success = true ;
6134
6125
if user_details. preferences . notifications . enabled {
@@ -6185,7 +6176,7 @@ impl MiscellaneousService {
6185
6176
Ok ( ( ) )
6186
6177
}
6187
6178
6188
- pub async fn send_media_state_changed_notification_for_user (
6179
+ async fn send_media_state_changed_notification_for_user (
6189
6180
& self ,
6190
6181
user_id : i32 ,
6191
6182
notification : & ( String , MediaStateChanged ) ,
@@ -6200,7 +6191,7 @@ impl MiscellaneousService {
6200
6191
Ok ( ( ) )
6201
6192
}
6202
6193
6203
- pub async fn genres_list ( & self , input : SearchInput ) -> Result < SearchResults < GenreListItem > > {
6194
+ async fn genres_list ( & self , input : SearchInput ) -> Result < SearchResults < GenreListItem > > {
6204
6195
let page: u64 = input. page . unwrap_or ( 1 ) . try_into ( ) . unwrap ( ) ;
6205
6196
let num_items = "num_items" ;
6206
6197
let query = Genre :: find ( )
@@ -6245,7 +6236,7 @@ impl MiscellaneousService {
6245
6236
} )
6246
6237
}
6247
6238
6248
- pub async fn metadata_groups_list (
6239
+ async fn metadata_groups_list (
6249
6240
& self ,
6250
6241
user_id : i32 ,
6251
6242
input : SearchInput ,
@@ -7302,11 +7293,55 @@ GROUP BY m.id;
7302
7293
}
7303
7294
}
7304
7295
7296
+ pub async fn remove_useless_data ( & self ) -> Result < ( ) > {
7297
+ let mut metadata_stream = Metadata :: find ( )
7298
+ . select_only ( )
7299
+ . column ( metadata:: Column :: Id )
7300
+ . left_join ( UserToEntity )
7301
+ . filter ( user_to_entity:: Column :: MetadataId . is_null ( ) )
7302
+ . into_tuple :: < i32 > ( )
7303
+ . stream ( & self . db )
7304
+ . await ?;
7305
+ while let Some ( meta) = metadata_stream. try_next ( ) . await ? {
7306
+ tracing:: debug!( "Removing metadata id = {:#?}" , meta) ;
7307
+ Metadata :: delete_by_id ( meta) . exec ( & self . db ) . await ?;
7308
+ }
7309
+ let mut people_stream = Person :: find ( )
7310
+ . select_only ( )
7311
+ . column ( person:: Column :: Id )
7312
+ . left_join ( UserToEntity )
7313
+ . filter ( user_to_entity:: Column :: PersonId . is_null ( ) )
7314
+ . into_tuple :: < i32 > ( )
7315
+ . stream ( & self . db )
7316
+ . await ?;
7317
+ while let Some ( person) = people_stream. try_next ( ) . await ? {
7318
+ tracing:: debug!( "Removing person id = {:#?}" , person) ;
7319
+ Person :: delete_by_id ( person) . exec ( & self . db ) . await ?;
7320
+ }
7321
+ let mut metadata_group_stream = MetadataGroup :: find ( )
7322
+ . select_only ( )
7323
+ . column ( metadata_group:: Column :: Id )
7324
+ . left_join ( UserToEntity )
7325
+ . filter ( user_to_entity:: Column :: MetadataGroupId . is_null ( ) )
7326
+ . into_tuple :: < i32 > ( )
7327
+ . stream ( & self . db )
7328
+ . await ?;
7329
+ while let Some ( meta_group) = metadata_group_stream. try_next ( ) . await ? {
7330
+ tracing:: debug!( "Removing metadata group id = {:#?}" , meta_group) ;
7331
+ MetadataGroup :: delete_by_id ( meta_group)
7332
+ . exec ( & self . db )
7333
+ . await ?;
7334
+ }
7335
+ Ok ( ( ) )
7336
+ }
7337
+
7305
7338
pub async fn perform_user_jobs ( & self ) -> Result < ( ) > {
7306
7339
tracing:: trace!( "Cleaning up user and metadata association" ) ;
7307
7340
self . cleanup_user_and_metadata_association ( ) . await ?;
7308
7341
tracing:: trace!( "Removing old user summaries and regenerating them" ) ;
7309
7342
self . regenerate_user_summaries ( ) . await ?;
7343
+ tracing:: trace!( "Removing useless data" ) ;
7344
+ self . remove_useless_data ( ) . await ?;
7310
7345
Ok ( ( ) )
7311
7346
}
7312
7347
0 commit comments