diff --git a/traktarr.py b/traktarr.py index 88678c8..00fc4b1 100755 --- a/traktarr.py +++ b/traktarr.py @@ -183,8 +183,8 @@ def show(show_id, folder=None, no_search=False): @click.option('--notifications', is_flag=True, help='Send notifications.') @click.option('--authenticate-user', help='Specify which user to authenticate with to retrieve Trakt lists. Default: first user in the config') -def shows(list_type, add_limit=0, add_delay=2.5, sort='votes', genre=None, folder=None, no_search=False, notifications=False, - authenticate_user=None): +def shows(list_type, add_limit=0, add_delay=2.5, sort='votes', genre=None, folder=None, no_search=False, + notifications=False, authenticate_user=None): from media.sonarr import Sonarr from media.trakt import Trakt from helpers import misc as misc_helper @@ -369,8 +369,8 @@ def movie(movie_id, folder=None, no_search=False): @click.option('--notifications', is_flag=True, help='Send notifications.') @click.option('--authenticate-user', help='Specify which user to authenticate with to retrieve Trakt lists. Default: first user in the config.') -def movies(list_type, add_limit=0, add_delay=2.5, sort='votes', genre=None, folder=None, no_search=False, notifications=False, - authenticate_user=None): +def movies(list_type, add_limit=0, add_delay=2.5, sort='votes', genre=None, folder=None, no_search=False, + notifications=False, authenticate_user=None): from media.radarr import Radarr from media.trakt import Trakt from helpers import misc as misc_helper @@ -517,7 +517,7 @@ def callback_notify(data): return -def automatic_shows(add_delay=2.5, no_search=False, notifications=False): +def automatic_shows(add_delay=2.5, sort='votes', no_search=False, notifications=False): from media.trakt import Trakt total_shows_added = 0 @@ -541,7 +541,7 @@ def automatic_shows(add_delay=2.5, no_search=False, notifications=False): # run shows added_shows = shows.callback(list_type=list_type, add_limit=limit, - add_delay=add_delay, no_search=no_search, + add_delay=add_delay, sort=sort, no_search=no_search, notifications=notifications) elif list_type.lower() == 'watchlist': for authenticate_user, limit in value.items(): @@ -553,7 +553,7 @@ def automatic_shows(add_delay=2.5, no_search=False, notifications=False): # run shows added_shows = shows.callback(list_type=list_type, add_limit=limit, - add_delay=add_delay, no_search=no_search, + add_delay=add_delay, sort=sort, no_search=no_search, notifications=notifications, authenticate_user=authenticate_user) elif list_type.lower() == 'lists': for list, v in value.items(): @@ -566,7 +566,7 @@ def automatic_shows(add_delay=2.5, no_search=False, notifications=False): # run shows added_shows = shows.callback(list_type=list, add_limit=limit, - add_delay=add_delay, no_search=no_search, + add_delay=add_delay, sort=sort, no_search=no_search, notifications=notifications, authenticate_user=authenticate_user) if added_shows is None: @@ -588,7 +588,7 @@ def automatic_shows(add_delay=2.5, no_search=False, notifications=False): return -def automatic_movies(add_delay=2.5, no_search=False, notifications=False): +def automatic_movies(add_delay=2.5, sort='votes', no_search=False, notifications=False): from media.trakt import Trakt total_movies_added = 0 @@ -612,7 +612,7 @@ def automatic_movies(add_delay=2.5, no_search=False, notifications=False): # run movies added_movies = movies.callback(list_type=list_type, add_limit=limit, - add_delay=add_delay, no_search=no_search, + add_delay=add_delay, sort=sort, no_search=no_search, notifications=notifications) elif list_type.lower() == 'watchlist': for authenticate_user, limit in value.items(): @@ -624,7 +624,7 @@ def automatic_movies(add_delay=2.5, no_search=False, notifications=False): # run movies added_movies = movies.callback(list_type=list_type, add_limit=limit, - add_delay=add_delay, no_search=no_search, + add_delay=add_delay, sort=sort, no_search=no_search, notifications=notifications, authenticate_user=authenticate_user) elif list_type.lower() == 'lists': for list, v in value.items(): @@ -637,7 +637,7 @@ def automatic_movies(add_delay=2.5, no_search=False, notifications=False): # run shows added_movies = movies.callback(list_type=list, add_limit=limit, - add_delay=add_delay, no_search=no_search, + add_delay=add_delay, sort=sort, no_search=no_search, notifications=notifications, authenticate_user=authenticate_user) if added_movies is None: @@ -662,10 +662,12 @@ def automatic_movies(add_delay=2.5, no_search=False, notifications=False): @app.command(help='Run in automatic mode.') @click.option('--add-delay', '-d', default=2.5, help='Seconds between each add request to Sonarr / Radarr.', show_default=True) +@click.option('--sort', '-s', default='votes', type=click.Choice(['votes', 'rating', 'release']), + help='Sort list to process.') @click.option('--no-search', is_flag=True, help='Disable search when adding to Sonarr / Radarr.') @click.option('--run-now', is_flag=True, help="Do a first run immediately without waiting.") @click.option('--no-notifications', is_flag=True, help="Disable notifications.") -def run(add_delay=2.5, no_search=False, run_now=False, no_notifications=False): +def run(add_delay=2.5, sort='votes', no_search=False, run_now=False, no_notifications=False): log.info("Automatic mode is now running...") # Add tasks to schedule and do first run if enabled @@ -673,6 +675,7 @@ def run(add_delay=2.5, no_search=False, run_now=False, no_notifications=False): movie_schedule = schedule.every(cfg.automatic.movies.interval).hours.do( automatic_movies, add_delay, + sort, no_search, not no_notifications ) @@ -686,6 +689,7 @@ def run(add_delay=2.5, no_search=False, run_now=False, no_notifications=False): shows_schedule = schedule.every(cfg.automatic.shows.interval).hours.do( automatic_shows, add_delay, + sort, no_search, not no_notifications )