From c9898e0e8793010ee5f9e92a029e4455c6bb0d5c Mon Sep 17 00:00:00 2001 From: echel0n Date: Mon, 7 Apr 2014 06:47:36 -0700 Subject: [PATCH] Fixed enable/disable check. Added few more helper functions to our config class. --- TorrentToMedia.py | 11 ++++--- nzbToCouchPotato.py | 2 +- nzbToGamez.py | 2 +- nzbToHeadPhones.py | 2 +- nzbToMedia.py | 2 +- nzbToMylar.py | 2 +- nzbToNzbDrone.py | 2 +- nzbToSickBeard.py | 2 +- nzbtomedia/autoProcess/autoProcessComics.py | 8 ++--- nzbtomedia/autoProcess/autoProcessGames.py | 9 ++---- nzbtomedia/autoProcess/autoProcessMovie.py | 8 ++--- nzbtomedia/autoProcess/autoProcessMusic.py | 8 ++--- nzbtomedia/autoProcess/autoProcessTV.py | 8 ++--- nzbtomedia/nzbToMediaConfig.py | 36 +++++++++++++++++---- 14 files changed, 53 insertions(+), 49 deletions(-) diff --git a/TorrentToMedia.py b/TorrentToMedia.py index 0c21332d..0603d86f 100755 --- a/TorrentToMedia.py +++ b/TorrentToMedia.py @@ -465,9 +465,12 @@ if __name__ == "__main__": if inputDirectory is None: for section, subsection in subsections.iteritems(): for category in subsection: - dirNames = get_dirnames(section, category) - Logger.info("MAIN: TorrentToMedia running %s:%s as a manual run...", section, category) - for dirName in dirNames: - main(dirName, os.path.basename(dirName), category, inputHash, inputID) + if config.isenabled(section, category): + dirNames = get_dirnames(section, category) + Logger.info("MAIN: TorrentToMedia running %s:%s as a manual run...", section, category) + for dirName in dirNames: + main(dirName, os.path.basename(dirName), category, inputHash, inputID) + else: + Logger.info("MAIN: nzbTo%s %s:%s is DISABLED, you can enable this in autoProcessMedia.cfg ...",section, section, category) else: main(inputDirectory, inputName, inputCategory, inputHash, inputID) diff --git a/nzbToCouchPotato.py b/nzbToCouchPotato.py index 72f3ff76..dd344682 100755 --- a/nzbToCouchPotato.py +++ b/nzbToCouchPotato.py @@ -238,7 +238,7 @@ else: Logger.warn("MAIN: Invalid number of arguments received from client.") for section, subsection in subsections.items(): for category in subsection: - if int(config()[section][category]['enabled']) == 1: + if config.isenabled(section, category): dirNames = get_dirnames(section, category) for dirName in dirNames: Logger.info("MAIN: nzbToCouchPotato running %s:%s as a manual run...", section, subsection) diff --git a/nzbToGamez.py b/nzbToGamez.py index 39f82d5c..eda01e0e 100755 --- a/nzbToGamez.py +++ b/nzbToGamez.py @@ -168,7 +168,7 @@ else: Logger.warn("MAIN: Invalid number of arguments received from client.") for section, subsection in subsections.items(): for category in subsection: - if int(config()[section][category]['enabled']) == 1: + if config.isenabled(section, category): dirNames = get_dirnames(section, category) for dirName in dirNames: Logger.info("MAIN: nzbToGamez running %s:%s as a manual run...", section, category) diff --git a/nzbToHeadPhones.py b/nzbToHeadPhones.py index 84315e3d..9a81051a 100755 --- a/nzbToHeadPhones.py +++ b/nzbToHeadPhones.py @@ -178,7 +178,7 @@ else: Logger.warn("MAIN: Invalid number of arguments received from client.") for section, subsection in subsections.items(): for category in subsection: - if int(config()[section][category]['enabled']) == 1: + if config.isenabled(section, category): dirNames = get_dirnames(section, category) for dirName in dirNames: Logger.info("MAIN: nzbToHeadPhones running %s:%s as a manual run...", section, category) diff --git a/nzbToMedia.py b/nzbToMedia.py index 6322fc06..11911b08 100755 --- a/nzbToMedia.py +++ b/nzbToMedia.py @@ -448,7 +448,7 @@ else: Logger.warn("MAIN: Invalid number of arguments received from client.") for section, subsection in subsections.items(): for category in subsection: - if int(config()[section][category]['enabled']) == 1: + if config.isenabled(section, category): dirNames = get_dirnames(section, category) for dirName in dirNames: Logger.info("MAIN: nzbToMedia running %s:%s as a manual run...", section, category) diff --git a/nzbToMylar.py b/nzbToMylar.py index ed77bd00..20d644bb 100755 --- a/nzbToMylar.py +++ b/nzbToMylar.py @@ -170,7 +170,7 @@ else: Logger.warn("MAIN: Invalid number of arguments received from client.") for section, subsection in subsections.items(): for category in subsection: - if int(config()[section][category]['enabled']) == 1: + if config.isenabled(section, category): dirNames = get_dirnames(section, category) for dirName in dirNames: Logger.info("MAIN: nzbToMylar running %s:%s as a manual run...", section, category) diff --git a/nzbToNzbDrone.py b/nzbToNzbDrone.py index 65b132af..6d98eb7d 100755 --- a/nzbToNzbDrone.py +++ b/nzbToNzbDrone.py @@ -202,7 +202,7 @@ else: Logger.warn("MAIN: Invalid number of arguments received from client.") for section, subsection in subsections.items(): for category in subsection: - if int(config()[section][category]['enabled']) == 1: + if config.isenabled(section, category): dirNames = get_dirnames(section, category) for dirName in dirNames: Logger.info("MAIN: nzbToNzbDrone running %s:%s as a manual run...", section, category) diff --git a/nzbToSickBeard.py b/nzbToSickBeard.py index 3d6e814d..6afcd0f2 100755 --- a/nzbToSickBeard.py +++ b/nzbToSickBeard.py @@ -235,7 +235,7 @@ else: Logger.warn("MAIN: Invalid number of arguments received from client.") for section, subsection in subsections.items(): for category in subsection: - if int(config()[section][category]['enabled']) == 1: + if config.isenabled(section,category): dirNames = get_dirnames(section, category) for dirName in dirNames: Logger.info("MAIN: nzbTo%s running %s:%s as a manual run...", section, section, category) diff --git a/nzbtomedia/autoProcess/autoProcessComics.py b/nzbtomedia/autoProcess/autoProcessComics.py index 2e6da939..295b1ab2 100644 --- a/nzbtomedia/autoProcess/autoProcessComics.py +++ b/nzbtomedia/autoProcess/autoProcessComics.py @@ -15,12 +15,8 @@ class autoProcessComics: return 1 # failure # auto-detect correct section - secCount, section = [x for x in enumerate(config.issubsection(inputCategory)) if int(config()[x[1]][inputCategory]['enabled']) == 1][0] - if secCount > 1: - Logger.error( - "MAIN: You can't have multiple sub-sections with the same name enabled, fix your autoProcessMedia.cfg file.") - return 1 - elif secCount == 0: + section = config.issubsection(inputCategory, checkenabled=True) + if len(section) == 0: Logger.error( "MAIN: We were unable to find a processor for category %s that was enabled, please check your autoProcessMedia.cfg file.", inputCategory) return 1 diff --git a/nzbtomedia/autoProcess/autoProcessGames.py b/nzbtomedia/autoProcess/autoProcessGames.py index 8f47bea1..7104dea3 100644 --- a/nzbtomedia/autoProcess/autoProcessGames.py +++ b/nzbtomedia/autoProcess/autoProcessGames.py @@ -14,17 +14,12 @@ class autoProcessGames: return 1 # failure # auto-detect correct section - secCount, section = [x for x in enumerate(config.issubsection(inputCategory)) if int(config()[x[1]][inputCategory]['enabled']) == 1][0] - if secCount > 1: - Logger.error( - "MAIN: You can't have multiple sub-sections with the same name enabled, fix your autoProcessMedia.cfg file.") - return 1 - elif secCount == 0: + section = config.issubsection(inputCategory, checkenabled=True) + if len(section) == 0: Logger.error( "MAIN: We were unable to find a processor for category %s that was enabled, please check your autoProcessMedia.cfg file.", inputCategory) return 1 - socket.setdefaulttimeout(int(config.NZBTOMEDIA_TIMEOUT)) #initialize socket timeout. Logger.info("Loading config from %s", config.CONFIG_FILE) diff --git a/nzbtomedia/autoProcess/autoProcessMovie.py b/nzbtomedia/autoProcess/autoProcessMovie.py index 0178906c..4b37829b 100644 --- a/nzbtomedia/autoProcess/autoProcessMovie.py +++ b/nzbtomedia/autoProcess/autoProcessMovie.py @@ -166,12 +166,8 @@ class autoProcessMovie: return 1 # failure # auto-detect correct section - secCount, section = [x for x in enumerate(config.issubsection(inputCategory)) if int(config()[x[1]][inputCategory]['enabled']) == 1][0] - if secCount > 1: - Logger.error( - "MAIN: You can't have multiple sub-sections with the same name enabled, fix your autoProcessMedia.cfg file.") - return 1 - elif secCount == 0: + section = config.issubsection(inputCategory, checkenabled=True) + if len(section) == 0: Logger.error( "MAIN: We were unable to find a processor for category %s that was enabled, please check your autoProcessMedia.cfg file.", inputCategory) return 1 diff --git a/nzbtomedia/autoProcess/autoProcessMusic.py b/nzbtomedia/autoProcess/autoProcessMusic.py index a11c0e95..6fb2c3f3 100644 --- a/nzbtomedia/autoProcess/autoProcessMusic.py +++ b/nzbtomedia/autoProcess/autoProcessMusic.py @@ -15,12 +15,8 @@ class autoProcessMusic: return 1 # failure # auto-detect correct section - secCount, section = [x for x in enumerate(config.issubsection(inputCategory)) if int(config()[x[1]][inputCategory]['enabled']) == 1][0] - if secCount > 1: - Logger.error( - "MAIN: You can't have multiple sub-sections with the same name enabled, fix your autoProcessMedia.cfg file.") - return 1 - elif secCount == 0: + section = config.issubsection(inputCategory,checkenabled=True) + if len(section) == 0: Logger.error( "MAIN: We were unable to find a processor for category %s that was enabled, please check your autoProcessMedia.cfg file.", inputCategory) return 1 diff --git a/nzbtomedia/autoProcess/autoProcessTV.py b/nzbtomedia/autoProcess/autoProcessTV.py index 2324387e..1d3bc1fe 100644 --- a/nzbtomedia/autoProcess/autoProcessTV.py +++ b/nzbtomedia/autoProcess/autoProcessTV.py @@ -21,12 +21,8 @@ class autoProcessTV: return 1 # failure # auto-detect correct section - secCount, section = [x for x in enumerate(config.issubsection(inputCategory)) if int(config()[x[1]][inputCategory]['enabled']) == 1][0] - if secCount > 1: - Logger.error( - "MAIN: You can't have multiple sub-sections with the same name enabled, fix your autoProcessMedia.cfg file.") - return 1 - elif secCount == 0: + section = config.issubsection(inputCategory, checkenabled=True) + if len(section) == 0: Logger.error( "MAIN: We were unable to find a processor for category %s that was enabled, please check your autoProcessMedia.cfg file.", inputCategory) return 1 diff --git a/nzbtomedia/nzbToMediaConfig.py b/nzbtomedia/nzbToMediaConfig.py index 0ea6aa8b..ce7dc03d 100644 --- a/nzbtomedia/nzbToMediaConfig.py +++ b/nzbtomedia/nzbToMediaConfig.py @@ -51,22 +51,28 @@ class config(object): return @staticmethod - def issubsection(subsection, sections=None): + def issubsection(inputCategory, sections=None, checkenabled=False): + # checks if the inputCategory belongs to the section + # or returns sections with subsections matching the inputCategoryu if not sections: - sections = config.__get_sections(subsection) + sections = config.get_sections(inputCategory) if not isinstance(sections, list): sections = [sections] results = set() for section in sections: - if config()[section].has_key(subsection): - results.add(section) + if config()[section].has_key(inputCategory): + if checkenabled: + if config.isenabled(section, inputCategory): + results.add(section) + else: + results.add(section) return results if results.issubset(sections) else False @staticmethod - def __get_sections(subsections): - # check and return categories if section does exist + def get_sections(subsections): + # finds all sections belonging to the subsection and returns them if not isinstance(subsections, list): subsections = [subsections] @@ -79,7 +85,7 @@ class config(object): @staticmethod def get_subsections(sections): - # check and return categories if section does exist + # finds all subsections belonging to the section and returns them if not isinstance(sections, list): sections = [sections] @@ -92,6 +98,22 @@ class config(object): to_return.update({section: subsection}) return to_return + @staticmethod + def isenabled(section, inputCategory): + # checks if the subsection is enabled/disabled + if int(config()[section][inputCategory]['enabled']) == 1: + return True + + @staticmethod + def search(key, section, subsection=None): + # searches for data in sections and subsections and returns it + if subsection: + if key in config()[section][subsection].keys(): + return config()[section][subsection][key] + else: + if key in config()[section].keys(): + return config()[section][key] + @staticmethod def migrate(): global config_new, config_old