@@ -78,8 +78,8 @@ def not_failed(exception):
78
78
base_dir = os .path .dirname (os .path .abspath (__file__ ))
79
79
config_dir = os .path .join (base_dir , "config" )
80
80
pmmargs = PMMArgs ("meisnate12/Plex-Image-Cleanup" , os .path .dirname (os .path .abspath (__file__ )), options , use_nightly = False )
81
- secrets = [pmmargs ["url" ], pmmargs ["token" ], quote (str (pmmargs ["url" ])), requests .utils .urlparse (pmmargs ["url" ]).netloc ]
82
81
logger = logging .PMMLogger (script_name , "plex_image_cleanup" , os .path .join (config_dir , "logs" ), discord_url = pmmargs ["discord" ], log_requests = pmmargs ["trace" ])
82
+ logger .secret ([pmmargs ["url" ], pmmargs ["token" ], quote (str (pmmargs ["url" ])), requests .utils .urlparse (pmmargs ["url" ]).netloc ])
83
83
requests .Session .send = util .update_send (requests .Session .send , pmmargs ["timeout" ])
84
84
plexapi .BASE_HEADERS ["X-Plex-Client-Identifier" ] = pmmargs .uuid
85
85
@@ -94,7 +94,12 @@ def run_plex_image_cleanup(attrs):
94
94
do_trash = attrs ["empty-trash" ] if "empty-trash" in attrs else pmmargs ["empty-trash" ]
95
95
do_bundles = attrs ["clean-bundles" ] if "clean-bundles" in attrs else pmmargs ["clean-bundles" ]
96
96
do_optimize = attrs ["optimize-db" ] if "optimize-db" in attrs else pmmargs ["optimize-db" ]
97
- mode = attrs ["mode" ].lower () if "mode" in attrs else pmmargs ["mode" ].lower ()
97
+ if "mode" in attrs and attrs ["mode" ]:
98
+ mode = str (attrs ["mode" ]).lower ()
99
+ elif pmmargs ["mode" ]:
100
+ mode = str (pmmargs ["mode" ]).lower ()
101
+ else :
102
+ mode = "report"
98
103
description = f"Running in { mode .capitalize ()} Mode"
99
104
extras = []
100
105
if do_trash :
@@ -110,17 +115,18 @@ def run_plex_image_cleanup(attrs):
110
115
logger .info (description )
111
116
report = []
112
117
messages = []
118
+ kbi = None
113
119
try :
114
- try :
115
- logger .info ("Script Started" , log = False , discord = True )
116
- except Failed as e :
117
- logger .error (e )
118
-
119
120
# Check Mode
120
121
if mode not in modes :
121
122
raise Failed (f"Mode Error: { mode } Invalid. Options: \n \t { mode_descriptions } " )
122
123
logger .info (f"{ mode .capitalize ()} : { modes [mode ]['desc' ]} " )
123
124
125
+ try :
126
+ logger .info ("Script Started" , log = False , discord = True )
127
+ except Failed as e :
128
+ logger .error (f"Discord URL Error: { e } " )
129
+
124
130
# Check Plex Path
125
131
if not pmmargs ["plex" ]:
126
132
if not os .path .exists (os .path .join (base_dir , "plex" )):
@@ -313,8 +319,8 @@ def plex_connect():
313
319
logger .info (f"Copying database from { os .path .join (databases_dir , plex_db_name )} " , start = "database" )
314
320
util .copy_with_progress (os .path .join (databases_dir , plex_db_name ), dbpath , description = f"Copying database file to: { dbpath } " )
315
321
else :
316
- logger .info ("Downloading Database via the API. Plex will This will take some time... To see progress, log into \n "
317
- "Plex and go to Settings | Manage | Console and filter on Database.\n "
322
+ logger .info ("Downloading Database via the Plex API. First Plex will make a backup of your database. \n "
323
+ "To see progress, log into Plex and go to Settings | Manage | Console and filter on Database.\n "
318
324
"You can also look at the Plex Dashboard to see the progress of the Database backup." , start = "database" )
319
325
logger .info ()
320
326
@@ -446,20 +452,26 @@ def plex_connect():
446
452
logger .debug (message )
447
453
logger .stacktrace ()
448
454
logger .critical (e , discord = True )
455
+ except KeyboardInterrupt :
456
+ logger .separator (f"User Exiting { script_name } " )
457
+ logger .remove_main_handler ()
458
+ raise
459
+
449
460
logger .error_report ()
450
461
logger .switch ()
451
462
report .append ([(f"{ script_name } Finished" , "" )])
452
463
report .append ([("Total Runtime" , f"{ logger .runtime ()} " )])
453
464
logger .report (f"{ script_name } Summary" , description = description , rows = report , discord = True )
465
+ logger .remove_main_handler ()
454
466
455
467
if __name__ == "__main__" :
456
468
try :
457
469
if pmmargs ["schedule" ]:
458
470
pmmargs ["schedule" ] = pmmargs ["schedule" ].lower ().replace (" " , "" )
459
471
valid_sc = []
460
472
schedules = pmmargs ["schedule" ].split ("," )
461
- print ()
462
- print ("Scheduled Runs: " )
473
+ logger . info ()
474
+ logger . info ("Scheduled Runs: " )
463
475
for sc in schedules :
464
476
run_str = ""
465
477
parts = sc .split ("|" )
@@ -534,11 +546,11 @@ def plex_connect():
534
546
run_str += f" at { time_to_run } "
535
547
if options :
536
548
run_str += f" (Options: { '; ' .join ([f'{ k } ={ v } ' for k , v in options .items ()])} )"
537
- print (run_str )
549
+ logger . info (run_str )
538
550
else :
539
551
raise Failed (f'Schedule Error: Invalid Schedule: { sc } \n Each Schedule must be in either the "time|frequency" or "time|frequency|options" format' )
540
552
541
- print ()
553
+ logger . info ()
542
554
while True :
543
555
schedule .run_pending ()
544
556
next_run = schedule .next_run ()
0 commit comments