diff --git a/couchpotato/core/plugins/renamer/main.py b/couchpotato/core/plugins/renamer/main.py index 7ab9f45..cf79b34 100644 --- a/couchpotato/core/plugins/renamer/main.py +++ b/couchpotato/core/plugins/renamer/main.py @@ -143,6 +143,10 @@ class Renamer(Plugin): remove_releases = [] movie_title = getTitle(group['library']) + try: + destination = group['category']['path'] + except: + destination = self.conf('to') # Add _UNKNOWN_ if no library item is connected if not group['library'] or not movie_title: diff --git a/couchpotato/core/plugins/searcher/main.py b/couchpotato/core/plugins/searcher/main.py index 23e8ea5..ab30984 100644 --- a/couchpotato/core/plugins/searcher/main.py +++ b/couchpotato/core/plugins/searcher/main.py @@ -385,24 +385,30 @@ class Searcher(Plugin): nzb_words = re.split('\W+', nzb_name) # Make sure it has required words - required_words = splitString(self.conf('required_words').lower()) + try: + required_words = splitString(movie['category']['required'].lower()) + except: + required_words = splitString(self.conf('required_words').lower()) req_match = 0 for req_set in required_words: req = splitString(req_set, '&') req_match += len(list(set(nzb_words) & set(req))) == len(req) - if self.conf('required_words') and req_match == 0: + if len(required_words) > 0 and req_match == 0: log.info2('Wrong: Required word missing: %s', nzb['name']) return False # Ignore releases - ignored_words = splitString(self.conf('ignored_words').lower()) + try: + ignored_words = splitString(movie['category']['ignored'].lower()) + except: + ignored_words = splitString(self.conf('ignored_words').lower()) ignored_match = 0 for ignored_set in ignored_words: ignored = splitString(ignored_set, '&') ignored_match += len(list(set(nzb_words) & set(ignored))) == len(ignored) - if self.conf('ignored_words') and ignored_match: + if len(ignored_words) > 0 and ignored_match: log.info2("Wrong: '%s' contains 'ignored words'", (nzb['name'])) return False diff --git a/couchpotato/core/settings/model.py b/couchpotato/core/settings/model.py index 6c8deb1..3ec78f4 100644 --- a/couchpotato/core/settings/model.py +++ b/couchpotato/core/settings/model.py @@ -50,6 +50,7 @@ class Movie(Entity): library = ManyToOne('Library', cascade = 'delete, delete-orphan', single_parent = True) status = ManyToOne('Status') profile = ManyToOne('Profile') + category = ManyToOne('Category') releases = OneToMany('Release', cascade = 'all, delete-orphan') files = ManyToMany('File', cascade = 'all, delete-orphan', single_parent = True) @@ -174,6 +175,22 @@ class Profile(Entity): return orig_dict +class Category(Entity): + """""" + using_options(order_by = 'order') + + label = Field(Unicode(50)) + order = Field(Integer, default = 0, index = True) + core = Field(Boolean, default = False) + hide = Field(Boolean, default = False) + + movie = OneToMany('Movie') + path = Field(Unicode(255)) + required = Field(Unicode(255)) + preferred = Field(Unicode(255)) + ignored = Field(Unicode(255)) + + class ProfileType(Entity): """""" using_options(order_by = 'order')