From 081997727d9e130092eb589ea5d1f4054937e046 Mon Sep 17 00:00:00 2001 From: echel0n Date: Wed, 12 Nov 2014 16:00:45 -0800 Subject: [PATCH] Added function to auto-update remote origin url, can be manually set in config as well. (cherry picked from commit 88e1f2e) --- sickbeard/__init__.py | 67 +++++++++++++++++-------------------- sickbeard/versionChecker.py | 13 ++++++- 2 files changed, 43 insertions(+), 37 deletions(-) diff --git a/sickbeard/__init__.py b/sickbeard/__init__.py index bc342899..772b5660 100755 --- a/sickbeard/__init__.py +++ b/sickbeard/__init__.py @@ -39,7 +39,6 @@ from sickbeard.config import CheckSection, check_setting_int, check_setting_str, naming_ep_type from sickbeard import searchBacklog, showUpdater, versionChecker, properFinder, autoPostProcesser, \ subtitles, traktChecker -from sickbeard.automations import imdbChecker from sickbeard import helpers, db, exceptions, show_queue, search_queue, scheduler, show_name_helpers from sickbeard import logger from sickbeard import naming @@ -105,6 +104,8 @@ AUTO_UPDATE = False NOTIFY_ON_UPDATE = False CUR_COMMIT_HASH = None BRANCH = '' +GIT_REMOTE = '' +GIT_REMOTE_URL = '' CUR_COMMIT_BRANCH = '' INIT_LOCK = Lock() @@ -147,6 +148,8 @@ CACHE_DIR = None ACTUAL_CACHE_DIR = None ROOT_DIRS = None UPDATE_SHOWS_ON_START = False +TRASH_REMOVE_SHOW = False +TRASH_ROTATE_LOGS = False SORT_ARTICLE = False DEBUG = False @@ -428,6 +431,8 @@ TIME_PRESET = None TIME_PRESET_W_SECONDS = None TIMEZONE_DISPLAY = None THEME_NAME = None +POSTER_SORTBY = None +POSTER_SORTDIR = None USE_SUBTITLES = False SUBTITLES_LANGUAGES = [] @@ -461,7 +466,7 @@ def get_backlog_cycle_time(): def initialize(consoleLogging=True): with INIT_LOCK: - global BRANCH, CUR_COMMIT_HASH, CUR_COMMIT_BRANCH, ACTUAL_LOG_DIR, LOG_DIR, WEB_PORT, WEB_LOG, ENCRYPTION_VERSION, WEB_ROOT, WEB_USERNAME, WEB_PASSWORD, WEB_HOST, WEB_IPV6, USE_API, API_KEY, ENABLE_HTTPS, HTTPS_CERT, HTTPS_KEY, \ + global BRANCH, GIT_REMOTE, GIT_REMOTE_URL, CUR_COMMIT_HASH, CUR_COMMIT_BRANCH, ACTUAL_LOG_DIR, LOG_DIR, WEB_PORT, WEB_LOG, ENCRYPTION_VERSION, WEB_ROOT, WEB_USERNAME, WEB_PASSWORD, WEB_HOST, WEB_IPV6, USE_API, API_KEY, ENABLE_HTTPS, HTTPS_CERT, HTTPS_KEY, \ HANDLE_REVERSE_PROXY, USE_NZBS, USE_TORRENTS, NZB_METHOD, NZB_DIR, DOWNLOAD_PROPERS, CHECK_PROPERS_INTERVAL, ALLOW_HIGH_PRIORITY, TORRENT_METHOD, \ SAB_USERNAME, SAB_PASSWORD, SAB_APIKEY, SAB_CATEGORY, SAB_HOST, \ NZBGET_USERNAME, NZBGET_PASSWORD, NZBGET_CATEGORY, NZBGET_PRIORITY, NZBGET_HOST, NZBGET_USE_HTTPS, backlogSearchScheduler, \ @@ -469,10 +474,9 @@ def initialize(consoleLogging=True): USE_XBMC, XBMC_ALWAYS_ON, XBMC_NOTIFY_ONSNATCH, XBMC_NOTIFY_ONDOWNLOAD, XBMC_NOTIFY_ONSUBTITLEDOWNLOAD, XBMC_UPDATE_FULL, XBMC_UPDATE_ONLYFIRST, \ XBMC_UPDATE_LIBRARY, XBMC_HOST, XBMC_USERNAME, XBMC_PASSWORD, BACKLOG_FREQUENCY, \ USE_TRAKT, TRAKT_USERNAME, TRAKT_PASSWORD, TRAKT_API, TRAKT_REMOVE_WATCHLIST, TRAKT_USE_WATCHLIST, TRAKT_METHOD_ADD, TRAKT_START_PAUSED, traktCheckerScheduler, TRAKT_USE_RECOMMENDED, TRAKT_SYNC, TRAKT_DEFAULT_INDEXER, TRAKT_REMOVE_SERIESLIST, \ - USE_IMDBWATCHLIST, IMDB_WATCHLISTCSV, imdbWatchlistScheduler, \ USE_PLEX, PLEX_NOTIFY_ONSNATCH, PLEX_NOTIFY_ONDOWNLOAD, PLEX_NOTIFY_ONSUBTITLEDOWNLOAD, PLEX_UPDATE_LIBRARY, \ PLEX_SERVER_HOST, PLEX_HOST, PLEX_USERNAME, PLEX_PASSWORD, DEFAULT_BACKLOG_FREQUENCY, MIN_BACKLOG_FREQUENCY, BACKLOG_STARTUP, SKIP_REMOVED_FILES, \ - showUpdateScheduler, __INITIALIZED__, LAUNCH_BROWSER, UPDATE_SHOWS_ON_START, SORT_ARTICLE, showList, loadingShowList, \ + showUpdateScheduler, __INITIALIZED__, LAUNCH_BROWSER, UPDATE_SHOWS_ON_START, 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, \ GROWL_NOTIFY_ONSNATCH, GROWL_NOTIFY_ONDOWNLOAD, GROWL_NOTIFY_ONSUBTITLEDOWNLOAD, TWITTER_NOTIFY_ONSNATCH, TWITTER_NOTIFY_ONDOWNLOAD, TWITTER_NOTIFY_ONSUBTITLEDOWNLOAD, \ @@ -497,6 +501,7 @@ def initialize(consoleLogging=True): USE_LISTVIEW, METADATA_XBMC, METADATA_XBMC_12PLUS, METADATA_MEDIABROWSER, METADATA_PS3, metadata_provider_dict, \ NEWZBIN, NEWZBIN_USERNAME, NEWZBIN_PASSWORD, GIT_PATH, MOVE_ASSOCIATED_FILES, POSTPONE_IF_SYNC_FILES, dailySearchScheduler, NFO_RENAME, \ GUI_NAME, HOME_LAYOUT, HISTORY_LAYOUT, DISPLAY_SHOW_SPECIALS, COMING_EPS_LAYOUT, COMING_EPS_SORT, COMING_EPS_DISPLAY_PAUSED, COMING_EPS_MISSED_RANGE, FUZZY_DATING, TRIM_ZERO, DATE_PRESET, TIME_PRESET, TIME_PRESET_W_SECONDS, THEME_NAME, \ + POSTER_SORTBY, POSTER_SORTDIR, \ METADATA_WDTV, METADATA_TIVO, METADATA_MEDE8ER, IGNORE_WORDS, REQUIRE_WORDS, CALENDAR_UNPROTECTED, CREATE_MISSING_SHOW_DIRS, \ ADD_SHOWS_WO_DIR, USE_SUBTITLES, SUBTITLES_LANGUAGES, SUBTITLES_DIR, SUBTITLES_SERVICES_LIST, SUBTITLES_SERVICES_ENABLED, SUBTITLES_HISTORY, SUBTITLES_FINDER_FREQUENCY, subtitlesFinderScheduler, \ USE_FAILED_DOWNLOADS, DELETE_FAILED, ANON_REDIRECT, LOCALHOST_IP, TMDB_API_KEY, DEBUG, PROXY_SETTING, PROXY_INDEXERS, \ @@ -528,11 +533,14 @@ def initialize(consoleLogging=True): CheckSection(CFG, 'Pushalot') CheckSection(CFG, 'Pushbullet') CheckSection(CFG, 'Subtitles') - CheckSection(CFG, 'IMDBWatchlist') # wanted branch BRANCH = check_setting_str(CFG, 'General', 'branch', '') + # git_remote + GIT_REMOTE = check_setting_str(CFG, 'General', 'git_remote', 'origin') + GIT_REMOTE_URL = check_setting_str(CFG, 'General', 'git_remote_url', 'https://github.com/SiCKRAGETV/SickRage.git') + # current commit hash CUR_COMMIT_HASH = check_setting_str(CFG, 'General', 'cur_commit_hash', '') @@ -580,7 +588,7 @@ def initialize(consoleLogging=True): if WEB_PORT < 21 or WEB_PORT > 65535: WEB_PORT = 8081 - + WEB_HOST = check_setting_str(CFG, 'General', 'web_host', '0.0.0.0') WEB_IPV6 = bool(check_setting_int(CFG, 'General', 'web_ipv6', 0)) WEB_ROOT = check_setting_str(CFG, 'General', 'web_root', '').rstrip("/") @@ -598,12 +606,15 @@ def initialize(consoleLogging=True): ANON_REDIRECT = check_setting_str(CFG, 'General', 'anon_redirect', 'http://dereferer.org/?') PROXY_SETTING = check_setting_str(CFG, 'General', 'proxy_setting', '') - PROXY_INDEXERS = bool(check_setting_str(CFG, 'General', 'proxy_indexers', 1)) + PROXY_INDEXERS = bool(check_setting_int(CFG, 'General', 'proxy_indexers', 1)) # attempt to help prevent users from breaking links by using a bad url if not ANON_REDIRECT.endswith('?'): ANON_REDIRECT = '' UPDATE_SHOWS_ON_START = bool(check_setting_int(CFG, 'General', 'update_shows_on_start', 0)) + TRASH_REMOVE_SHOW = bool(check_setting_int(CFG, 'General', 'trash_remove_show', 0)) + TRASH_ROTATE_LOGS = bool(check_setting_int(CFG, 'General', 'trash_rotate_logs', 0)) + SORT_ARTICLE = bool(check_setting_int(CFG, 'General', 'sort_article', 0)) USE_API = bool(check_setting_int(CFG, 'General', 'use_api', 0)) @@ -843,11 +854,7 @@ def initialize(consoleLogging=True): TRAKT_USE_RECOMMENDED = bool(check_setting_int(CFG, 'Trakt', 'trakt_use_recommended', 0)) TRAKT_SYNC = bool(check_setting_int(CFG, 'Trakt', 'trakt_sync', 0)) TRAKT_DEFAULT_INDEXER = check_setting_int(CFG, 'Trakt', 'trakt_default_indexer', 1) - - ### IMDB Watchlist set default values for config - USE_IMDBWATCHLIST = bool(check_setting_int(CFG, 'IMDBWatchlist', 'use_imdbwatchlist', 0)) - IMDB_WATCHLISTCSV = check_setting_str(CFG, 'IMDBWatchlist', 'imdb_watchlistcsv', '') - + CheckSection(CFG, 'pyTivo') USE_PYTIVO = bool(check_setting_int(CFG, 'pyTivo', 'use_pytivo', 0)) PYTIVO_NOTIFY_ONSNATCH = bool(check_setting_int(CFG, 'pyTivo', 'pytivo_notify_onsnatch', 0)) @@ -949,6 +956,8 @@ def initialize(consoleLogging=True): TIME_PRESET_W_SECONDS = check_setting_str(CFG, 'GUI', 'time_preset', '%I:%M:%S %p') TIME_PRESET = TIME_PRESET_W_SECONDS.replace(u":%S", u"") TIMEZONE_DISPLAY = check_setting_str(CFG, 'GUI', 'timezone_display', 'network') + POSTER_SORTBY = check_setting_str(CFG, 'GUI', 'poster_sortby', 'name') + POSTER_SORTDIR = check_setting_int(CFG, 'GUI', 'poster_sortdir', 1) # initialize NZB and TORRENT providers providerList = providers.makeProviderList() @@ -1161,11 +1170,6 @@ def initialize(consoleLogging=True): cycleTime=datetime.timedelta(hours=SUBTITLES_FINDER_FREQUENCY), threadName="FINDSUBTITLES", silent=not USE_SUBTITLES) - - imdbWatchlistScheduler = scheduler.Scheduler(imdbChecker.IMDB(), - cycleTime=datetime.timedelta(hours=1), - threadName="IMDBWATCHLIST", - silent=not USE_IMDBWATCHLIST) showList = [] loadingShowList = {} @@ -1178,7 +1182,7 @@ def start(): global __INITIALIZED__, backlogSearchScheduler, \ showUpdateScheduler, versionCheckScheduler, showQueueScheduler, \ properFinderScheduler, autoPostProcesserScheduler, searchQueueScheduler, \ - subtitlesFinderScheduler, USE_SUBTITLES, traktCheckerScheduler, imdbWatchlistScheduler, \ + subtitlesFinderScheduler, USE_SUBTITLES, traktCheckerScheduler, \ dailySearchScheduler, events, started with INIT_LOCK: @@ -1219,10 +1223,7 @@ def start(): # start the trakt checker if USE_TRAKT: traktCheckerScheduler.start() - - if USE_IMDBWATCHLIST: - imdbWatchlistScheduler.start() - + started = True @@ -1230,7 +1231,7 @@ def halt(): global __INITIALIZED__, backlogSearchScheduler, \ showUpdateScheduler, versionCheckScheduler, showQueueScheduler, \ properFinderScheduler, autoPostProcesserScheduler, searchQueueScheduler, \ - subtitlesFinderScheduler, traktCheckerScheduler, imdbWatchlistScheduler, \ + subtitlesFinderScheduler, traktCheckerScheduler, \ dailySearchScheduler, events, started with INIT_LOCK: @@ -1303,14 +1304,6 @@ def halt(): traktCheckerScheduler.join(10) except: pass - - if USE_IMDBWATCHLIST: - imdbWatchlistScheduler.stop.set() - logger.log(u"Waiting for the IMDBWATCHLIST thread to exit") - try: - imdbWatchlistScheduler.join(10) - except: - pass if DOWNLOAD_PROPERS: properFinderScheduler.stop.set() @@ -1376,6 +1369,8 @@ def save_config(): # For passwords you must include the word `password` in the item_name and add `helpers.encrypt(ITEM_NAME, ENCRYPTION_VERSION)` in save_config() new_config['General'] = {} new_config['General']['branch'] = BRANCH + new_config['General']['git_remote'] = GIT_REMOTE + new_config['General']['git_remote_url'] = GIT_REMOTE_URL new_config['General']['cur_commit_hash'] = CUR_COMMIT_HASH new_config['General']['cur_commit_branch'] = CUR_COMMIT_BRANCH new_config['General']['config_version'] = CONFIG_VERSION @@ -1439,6 +1434,8 @@ def save_config(): new_config['General']['naming_anime'] = int(NAMING_ANIME) new_config['General']['launch_browser'] = int(LAUNCH_BROWSER) new_config['General']['update_shows_on_start'] = int(UPDATE_SHOWS_ON_START) + new_config['General']['trash_remove_show'] = int(TRASH_REMOVE_SHOW) + new_config['General']['trash_rotate_logs'] = int(TRASH_ROTATE_LOGS) new_config['General']['sort_article'] = int(SORT_ARTICLE) new_config['General']['proxy_setting'] = PROXY_SETTING new_config['General']['proxy_indexers'] = int(PROXY_INDEXERS) @@ -1712,11 +1709,7 @@ def save_config(): new_config['Trakt']['trakt_use_recommended'] = int(TRAKT_USE_RECOMMENDED) new_config['Trakt']['trakt_sync'] = int(TRAKT_SYNC) new_config['Trakt']['trakt_default_indexer'] = int(TRAKT_DEFAULT_INDEXER) - - new_config['IMDBWatchlist'] = {} - new_config['IMDBWatchlist']['use_imdbwatchlist'] = int(USE_IMDBWATCHLIST) - new_config['IMDBWatchlist']['imdb_watchlistcsv'] = IMDB_WATCHLISTCSV - + new_config['pyTivo'] = {} new_config['pyTivo']['use_pytivo'] = int(USE_PYTIVO) new_config['pyTivo']['pytivo_notify_onsnatch'] = int(PYTIVO_NOTIFY_ONSNATCH) @@ -1784,6 +1777,8 @@ def save_config(): new_config['GUI']['date_preset'] = DATE_PRESET new_config['GUI']['time_preset'] = TIME_PRESET_W_SECONDS new_config['GUI']['timezone_display'] = TIMEZONE_DISPLAY + new_config['GUI']['poster_sortby'] = POSTER_SORTBY + new_config['GUI']['poster_sortdir'] = POSTER_SORTDIR new_config['Subtitles'] = {} new_config['Subtitles']['use_subtitles'] = int(USE_SUBTITLES) diff --git a/sickbeard/versionChecker.py b/sickbeard/versionChecker.py index b77b50a5..6102efbc 100644 --- a/sickbeard/versionChecker.py +++ b/sickbeard/versionChecker.py @@ -442,6 +442,9 @@ class GitUpdateManager(UpdateManager): self._num_commits_behind = 0 self._num_commits_ahead = 0 + # update remote origin url + self.update_remote_origin() + # get all new info from github output, err, exit_status = self._run_git(self._git_path, 'fetch origin') @@ -537,6 +540,9 @@ class GitUpdateManager(UpdateManager): on the call's success. """ + # update remote origin url + self.update_remote_origin() + if self.branch == self._find_installed_branch(): output, err, exit_status = self._run_git(self._git_path, 'pull -f origin ' + self.branch) # @UnusedVariable else: @@ -553,11 +559,16 @@ class GitUpdateManager(UpdateManager): return False def list_remote_branches(self): - branches, err, exit_status = self._run_git(self._git_path, 'ls-remote --heads origin') # @UnusedVariable + # update remote origin url + self.update_remote_origin() + + branches, err, exit_status = self._run_git(self._git_path, 'ls-remote --heads %s' % sickbeard.GIT_REMOTE) # @UnusedVariable if exit_status == 0 and branches: return re.findall('\S+\Wrefs/heads/(.*)', branches) return [] + def update_remote_origin(self): + self._run_git(self._git_path, 'config remote.origin.url %s' % sickbeard.GIT_REMOTE_URL) class SourceUpdateManager(UpdateManager): def __init__(self):