mirror of
https://github.com/moparisthebest/SickRage
synced 2024-12-12 11:02:21 -05:00
Added function to auto-update remote origin url, can be manually set in config as well.
(cherry picked from commit 88e1f2e
)
This commit is contained in:
parent
34bbd76196
commit
081997727d
@ -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)
|
||||
|
@ -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):
|
||||
|
Loading…
Reference in New Issue
Block a user