diff --git a/gui/slick/interfaces/default/inc_addShowOptions.tmpl b/gui/slick/interfaces/default/inc_addShowOptions.tmpl index 668c8411f5c7c3b5a1c8734b43a306d80bf1147a..fe26f8b79614b1527d4de7c079c49f06d30e38d5 100644 --- a/gui/slick/interfaces/default/inc_addShowOptions.tmpl +++ b/gui/slick/interfaces/default/inc_addShowOptions.tmpl @@ -26,6 +26,18 @@ </span> </label> </div> + <div class="field-pair"> + <label for="statusSelectAfter"> + <span class="component-title">Status for all future episodes</span> + <span class="component-desc"> + <select name="defaultStatusAfter" id="statusSelectAfter" class="form-control form-control-inline input-sm"> + #for $curStatus in [$SKIPPED, $WANTED, $ARCHIVED, $IGNORED]: + <option value="$curStatus" #if $sickbeard.STATUS_DEFAULT_AFTER == $curStatus then 'selected="selected"' else ''#>$statusStrings[$curStatus]</option> + #end for + </select> + </span> + </label> + </div> <div class="field-pair alt"> <label for="flatten_folders" class="clearfix"> <span class="component-title">Flatten Folders</span> diff --git a/gui/slick/js/addShowOptions.js b/gui/slick/js/addShowOptions.js index ceea77147452b7792165c11aa8629ebefb3febb2..03653a49f54340c6007167f5582510ed25fa8791 100644 --- a/gui/slick/js/addShowOptions.js +++ b/gui/slick/js/addShowOptions.js @@ -17,7 +17,8 @@ $(document).ready(function () { defaultFlattenFolders: $('#flatten_folders').prop('checked'), subtitles: $('#subtitles').prop('checked'), anime: $('#anime').prop('checked'), - scene: $('#scene').prop('checked') + scene: $('#scene').prop('checked'), + defaultStatusAfter: $('#statusSelectAfter').val() }); $(this).attr('disabled', true); @@ -28,8 +29,8 @@ $(document).ready(function () { }); }); - $('#statusSelect, #qualityPreset, #flatten_folders, #anyQualities, #bestQualities, #subtitles, #scene, #anime').change(function () { + $('#statusSelect, #qualityPreset, #flatten_folders, #anyQualities, #bestQualities, #subtitles, #scene, #anime, #statusSelectAfter').change(function () { $('#saveDefaultsButton').attr('disabled', false); }); -}); \ No newline at end of file +}); diff --git a/sickbeard/__init__.py b/sickbeard/__init__.py index 5a05113cd313dd7a17221dee7ba00c51cb92cdd6..2137d00f43c4c9e33837597585c82cf7c42a3da2 100644 --- a/sickbeard/__init__.py +++ b/sickbeard/__init__.py @@ -51,7 +51,7 @@ from sickbeard import scene_numbering, scene_exceptions, name_cache from indexers.indexer_api import indexerApi from indexers.indexer_exceptions import indexer_shownotfound, indexer_showincomplete, indexer_exception, indexer_error, \ indexer_episodenotfound, indexer_attributenotfound, indexer_seasonnotfound, indexer_userabort, indexerExcepts -from sickbeard.common import SD, SKIPPED, NAMING_REPEAT +from sickbeard.common import SD, SKIPPED, WANTED, NAMING_REPEAT from sickbeard.databases import mainDB, cache_db, failed_db from sickbeard.helpers import ex @@ -197,6 +197,7 @@ METADATA_MEDE8ER = None QUALITY_DEFAULT = None STATUS_DEFAULT = None +STATUS_DEFAULT_AFTER = None FLATTEN_FOLDERS_DEFAULT = False SUBTITLES_DEFAULT = False INDEXER_DEFAULT = None @@ -557,7 +558,7 @@ def initialize(consoleLogging=True): PLEX_SERVER_HOST, PLEX_SERVER_TOKEN, PLEX_HOST, PLEX_USERNAME, PLEX_PASSWORD, DEFAULT_BACKLOG_FREQUENCY, MIN_BACKLOG_FREQUENCY, BACKLOG_STARTUP, SKIP_REMOVED_FILES, \ showUpdateScheduler, __INITIALIZED__, INDEXER_DEFAULT_LANGUAGE, EP_DEFAULT_DELETED_STATUS, LAUNCH_BROWSER, UPDATE_SHOWS_ON_START, UPDATE_SHOWS_ON_SNATCH, TRASH_REMOVE_SHOW, TRASH_ROTATE_LOGS, SORT_ARTICLE, showList, loadingShowList, \ NEWZNAB_DATA, NZBS, NZBS_UID, NZBS_HASH, INDEXER_DEFAULT, INDEXER_TIMEOUT, USENET_RETENTION, TORRENT_DIR, \ - QUALITY_DEFAULT, FLATTEN_FOLDERS_DEFAULT, SUBTITLES_DEFAULT, STATUS_DEFAULT, DAILYSEARCH_STARTUP, \ + QUALITY_DEFAULT, FLATTEN_FOLDERS_DEFAULT, SUBTITLES_DEFAULT, STATUS_DEFAULT, STATUS_DEFAULT_AFTER, DAILYSEARCH_STARTUP, \ GROWL_NOTIFY_ONSNATCH, GROWL_NOTIFY_ONDOWNLOAD, GROWL_NOTIFY_ONSUBTITLEDOWNLOAD, TWITTER_NOTIFY_ONSNATCH, TWITTER_NOTIFY_ONDOWNLOAD, TWITTER_NOTIFY_ONSUBTITLEDOWNLOAD, USE_FREEMOBILE, FREEMOBILE_ID, FREEMOBILE_APIKEY, FREEMOBILE_NOTIFY_ONSNATCH, FREEMOBILE_NOTIFY_ONDOWNLOAD, FREEMOBILE_NOTIFY_ONSUBTITLEDOWNLOAD, \ USE_GROWL, GROWL_HOST, GROWL_PASSWORD, USE_PROWL, PROWL_NOTIFY_ONSNATCH, PROWL_NOTIFY_ONDOWNLOAD, PROWL_NOTIFY_ONSUBTITLEDOWNLOAD, PROWL_API, PROWL_PRIORITY, PROG_DIR, \ USE_PYTIVO, PYTIVO_NOTIFY_ONSNATCH, PYTIVO_NOTIFY_ONDOWNLOAD, PYTIVO_NOTIFY_ONSUBTITLEDOWNLOAD, PYTIVO_UPDATE_LIBRARY, PYTIVO_HOST, PYTIVO_SHARE_NAME, PYTIVO_TIVO_NAME, \ @@ -783,6 +784,7 @@ def initialize(consoleLogging=True): QUALITY_DEFAULT = check_setting_int(CFG, 'General', 'quality_default', SD) STATUS_DEFAULT = check_setting_int(CFG, 'General', 'status_default', SKIPPED) + STATUS_DEFAULT_AFTER = check_setting_int(CFG, 'General', 'status_default_after', WANTED) VERSION_NOTIFY = bool(check_setting_int(CFG, 'General', 'version_notify', 1)) AUTO_UPDATE = bool(check_setting_int(CFG, 'General', 'auto_update', 0)) NOTIFY_ON_UPDATE = bool(check_setting_int(CFG, 'General', 'notify_on_update', 1)) @@ -1667,6 +1669,7 @@ def save_config(): new_config['General']['skip_removed_files'] = int(SKIP_REMOVED_FILES) new_config['General']['quality_default'] = int(QUALITY_DEFAULT) new_config['General']['status_default'] = int(STATUS_DEFAULT) + new_config['General']['status_default_after'] = int(STATUS_DEFAULT_AFTER) new_config['General']['flatten_folders_default'] = int(FLATTEN_FOLDERS_DEFAULT) new_config['General']['indexer_default'] = int(INDEXER_DEFAULT) new_config['General']['indexer_timeout'] = int(INDEXER_TIMEOUT) diff --git a/sickbeard/show_queue.py b/sickbeard/show_queue.py index c87a325b56483e42b8b615de4864d6e1c36c1549..5a59ce602282e0a46f0a991cf9f1739b62a22cda 100644 --- a/sickbeard/show_queue.py +++ b/sickbeard/show_queue.py @@ -133,13 +133,13 @@ class ShowQueue(generic_queue.GenericQueue): return queueItemObj def addShow(self, indexer, indexer_id, showDir, default_status=None, quality=None, flatten_folders=None, - lang=None, subtitles=None, anime=None, scene=None, paused=None, blacklist=None, whitelist=None): + lang=None, subtitles=None, anime=None, scene=None, paused=None, blacklist=None, whitelist=None, default_status_after=None): if lang is None: lang = sickbeard.INDEXER_DEFAULT_LANGUAGE queueItemObj = QueueItemAdd(indexer, indexer_id, showDir, default_status, quality, flatten_folders, lang, - subtitles, anime, scene, paused, blacklist, whitelist) + subtitles, anime, scene, paused, blacklist, whitelist, default_status_after) self.add_item(queueItemObj) @@ -196,7 +196,7 @@ class ShowQueueItem(generic_queue.QueueItem): class QueueItemAdd(ShowQueueItem): def __init__(self, indexer, indexer_id, showDir, default_status, quality, flatten_folders, lang, subtitles, anime, - scene, paused, blacklist, whitelist): + scene, paused, blacklist, whitelist, default_status_after): self.indexer = indexer self.indexer_id = indexer_id @@ -211,6 +211,7 @@ class QueueItemAdd(ShowQueueItem): self.paused = paused self.blacklist = blacklist self.whitelist = whitelist + self.default_status_after = default_status_after if sickbeard.TRAKT_USE_ROLLING_DOWNLOAD and sickbeard.USE_TRAKT: self.paused = sickbeard.TRAKT_ROLLING_ADD_PAUSED @@ -420,8 +421,8 @@ class QueueItemAdd(ShowQueueItem): self.show.indexer): self.show.scene = 1 - # After initial add, set back to WANTED. - self.show.default_ep_status = WANTED + # After initial add, set to default_status_after. + self.show.default_ep_status = self.default_status_after self.finish() diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py index 078b862cddf16cffda4ef35896c727b6a8900f14..5b24a1b7272d04283fc9561aa9c292cd0acc66aa 100644 --- a/sickbeard/webserve.py +++ b/sickbeard/webserve.py @@ -2555,7 +2555,8 @@ class HomeAddShows(Home): flatten_folders=sickbeard.FLATTEN_FOLDERS_DEFAULT, subtitles=sickbeard.SUBTITLES_DEFAULT, anime=sickbeard.ANIME_DEFAULT, - scene=sickbeard.SCENE_DEFAULT) + scene=sickbeard.SCENE_DEFAULT, + default_status_after=sickbeard.STATUS_DEFAULT_AFTER) ui.notifications.message('Show added', 'Adding the specified show into ' + show_dir) else: @@ -2568,7 +2569,7 @@ class HomeAddShows(Home): def addNewShow(self, whichSeries=None, indexerLang=None, rootDir=None, defaultStatus=None, anyQualities=None, bestQualities=None, flatten_folders=None, subtitles=None, fullShowPath=None, other_shows=None, skipShow=None, providedIndexer=None, anime=None, - scene=None, blacklist=None, whitelist=None): + scene=None, blacklist=None, whitelist=None, defaultStatusAfter=None): """ Receive tvdb id, dir, and other options and create a show from them. If extra show dirs are provided then it forwards back to newShow, if not it goes to /home. @@ -2674,7 +2675,7 @@ class HomeAddShows(Home): # add the show sickbeard.showQueueScheduler.action.addShow(indexer, indexer_id, show_dir, int(defaultStatus), newQuality, flatten_folders, indexerLang, subtitles, anime, - scene, None, blacklist, whitelist) + scene, None, blacklist, whitelist, int(defaultStatusAfter)) ui.notifications.message('Show added', 'Adding the specified show into ' + show_dir) return finishAddShow() @@ -2747,7 +2748,8 @@ class HomeAddShows(Home): flatten_folders=sickbeard.FLATTEN_FOLDERS_DEFAULT, subtitles=sickbeard.SUBTITLES_DEFAULT, anime=sickbeard.ANIME_DEFAULT, - scene=sickbeard.SCENE_DEFAULT) + scene=sickbeard.SCENE_DEFAULT, + default_status_after=sickbeard.STATUS_DEFAULT_AFTER) num_added += 1 if num_added: @@ -3672,7 +3674,7 @@ class ConfigGeneral(Config): sickbeard.ROOT_DIRS = rootDirString def saveAddShowDefaults(self, defaultStatus, anyQualities, bestQualities, defaultFlattenFolders, subtitles=False, - anime=False, scene=False): + anime=False, scene=False, defaultStatusAfter=WANTED): if anyQualities: anyQualities = anyQualities.split(',') @@ -3687,6 +3689,7 @@ class ConfigGeneral(Config): newQuality = Quality.combineQualities(map(int, anyQualities), map(int, bestQualities)) sickbeard.STATUS_DEFAULT = int(defaultStatus) + sickbeard.STATUS_DEFAULT_AFTER = int(defaultStatusAfter) sickbeard.QUALITY_DEFAULT = int(newQuality) sickbeard.FLATTEN_FOLDERS_DEFAULT = config.checkbox_to_value(defaultFlattenFolders)