diff --git a/mylar/__init__.py b/mylar/__init__.py index 0421b0b3..c3cc8afe 100755 --- a/mylar/__init__.py +++ b/mylar/__init__.py @@ -209,6 +209,8 @@ READ2FILENAME = 0 CVAPIFIX = 0 CVURL = None WEEKFOLDER = 0 +LOCMOVE = 0 +NEWCOM_DIR = None def CheckSection(sec): """ Check if INI section exists, if not create it """ @@ -268,7 +270,7 @@ def initialize(): USE_NZBGET, NZBGET_HOST, NZBGET_PORT, NZBGET_USERNAME, NZBGET_PASSWORD, NZBGET_CATEGORY, NZBGET_PRIORITY, NZBSU, NZBSU_APIKEY, DOGNZB, DOGNZB_APIKEY, NZBX,\ NEWZNAB, NEWZNAB_HOST, NEWZNAB_APIKEY, NEWZNAB_ENABLED, EXTRA_NEWZNABS,\ RAW, RAW_PROVIDER, RAW_USERNAME, RAW_PASSWORD, RAW_GROUPS, EXPERIMENTAL, \ - PROWL_ENABLED, PROWL_PRIORITY, PROWL_KEYS, PROWL_ONSNATCH, NMA_ENABLED, NMA_APIKEY, NMA_PRIORITY, NMA_ONSNATCH, PUSHOVER_ENABLED, PUSHOVER_PRIORITY, PUSHOVER_APIKEY, PUSHOVER_USERKEY, PUSHOVER_ONSNATCH, \ + PROWL_ENABLED, PROWL_PRIORITY, PROWL_KEYS, PROWL_ONSNATCH, NMA_ENABLED, NMA_APIKEY, NMA_PRIORITY, NMA_ONSNATCH, PUSHOVER_ENABLED, PUSHOVER_PRIORITY, PUSHOVER_APIKEY, PUSHOVER_USERKEY, PUSHOVER_ONSNATCH, LOCMOVE, NEWCOM_DIR, \ PREFERRED_QUALITY, MOVE_FILES, RENAME_FILES, LOWERCASE_FILENAMES, USE_MINSIZE, MINSIZE, USE_MAXSIZE, MAXSIZE, CORRECT_METADATA, FOLDER_FORMAT, FILE_FORMAT, REPLACE_CHAR, REPLACE_SPACES, ADD_TO_CSV, CVINFO, LOG_LEVEL, POST_PROCESSING, SEARCH_DELAY, GRABBAG_DIR, READ2FILENAME, CVURL, CVAPIFIX, \ COMIC_LOCATION, QUAL_ALTVERS, QUAL_SCANNER, QUAL_TYPE, QUAL_QUALITY, ENABLE_EXTRA_SCRIPTS, EXTRA_SCRIPTS, ENABLE_PRE_SCRIPTS, PRE_SCRIPTS, PULLNEW, COUNT_ISSUES, COUNT_HAVES, COUNT_COMICS, SYNO_FIX, CHMOD_FILE, CHMOD_DIR, ANNUALS_ON, CV_ONLY, CV_ONETIMER, WEEKFOLDER @@ -351,6 +353,10 @@ def initialize(): CVAPIFIX = bool(check_setting_int(CFG, 'General', 'cvapifix', 0)) if CVAPIFIX is None: CVAPIFIX = 0 + LOCMOVE = bool(check_setting_int(CFG, 'General', 'locmove', 0)) + if LOCMOVE is None: + LOCMOVE = 0 + NEWCOM_DIR = check_setting_str(CFG, 'General', 'newcom_dir', '') HIGHCOUNT = check_setting_str(CFG, 'General', 'highcount', '') if not HIGHCOUNT: HIGHCOUNT = 0 READ2FILENAME = bool(check_setting_int(CFG, 'General', 'read2filename', 0)) @@ -573,6 +579,10 @@ def initialize(): else: CVURL = 'http://api.comicvine.com/' logger.info("CVAPIFIX disabled: Comicvine set to normal API site") + + if LOCMOVE: + helpers.updateComicLocation() + #Ordering comics here logger.info("Remapping the sorting to allow for new additions.") COMICSORT = helpers.ComicSort(sequence='startup') @@ -712,6 +722,8 @@ def config_write(): new_config['General']['pre_scripts'] = PRE_SCRIPTS new_config['General']['post_processing'] = int(POST_PROCESSING) new_config['General']['weekfolder'] = int(WEEKFOLDER) + new_config['General']['locmove'] = int(LOCMOVE) + new_config['General']['newcom_dir'] = NEWCOM_DIR new_config['SABnzbd'] = {} new_config['SABnzbd']['use_sabnzbd'] = int(USE_SABNZBD) diff --git a/mylar/helpers.py b/mylar/helpers.py index 1b22c511..9f53a996 100755 --- a/mylar/helpers.py +++ b/mylar/helpers.py @@ -505,3 +505,38 @@ def fullmonth(monthno): monthconv = basmonths[numbs] return monthconv + +def updateComicLocation(): + import db, logger + myDB = db.DBConnection() + if mylar.NEWCOM_DIR is not None: + logger.info("Performing a one-time mass update to Comic Location") + #create the root dir if it doesn't exist + if os.path.isdir(mylar.NEWCOM_DIR): + logger.info(u"Directory (" + mylar.NEWCOM_DIR + ") already exists! Continuing...") + else: + logger.info("Directory doesn't exist!") + try: + os.makedirs(mylar.NEWCOM_DIR) + logger.info(u"Directory successfully created at: " + mylar.NEWCOM_DIR) + except OSError: + logger.error(u"Could not create comicdir : " + new_comlocation_dir) + return + + dirlist = myDB.select("SELECT * FROM comics") + if dirlist is not None: + for dl in dirlist: + seriesdir = os.path.basename(os.path.normpath(dl['ComicLocation'])) + newdir = os.path.join(mylar.NEWCOM_DIR, seriesdir) + ctrlVal = {"ComicID": dl['ComicID']} + newVal = {"ComicLocation": newdir} + myDB.upsert("Comics", newVal, ctrlVal) + logger.fdebug("updated " + dl['ComicName'] + " to : " + newdir) + #set the value to 0 here so we don't keep on doing this... + mylar.LOCMOVE = 0 + mylar.config_write() + else: + logger.info("No new ComicLocation path specified - not updating.") + #raise cherrypy.HTTPRedirect("config") + return +