Can't use len() on filter iterator. fix #2762

This commit is contained in:
Ruud committed 2014-01-24 15:29:24 +01:00
1 parent d65667ce16
commit c9e0910c55
2 files changed
+14 -6

No files matched your search

+11 -2
View File
@@ -9,7 +9,7 @@ import re
import string import string
import sys import sys
import six import six
from six.moves import map, zip from six.moves import map, zip, filter
log = CPLog(__name__) log = CPLog(__name__)
@@ -260,7 +260,16 @@ def randomString(size = 8, chars = string.ascii_uppercase + string.digits):
def splitString(str, split_on = ',', clean = True): def splitString(str, split_on = ',', clean = True):
l = [x.strip() for x in str.split(split_on)] if str else [] l = [x.strip() for x in str.split(split_on)] if str else []
return [x for x in l if x] if clean else l return removeEmpty(l) if clean else l
def removeEmpty(l):
return list(filter(None, l))
def removeDuplicate(l):
seen = set()
return [x for x in l if x not in seen and not seen.add(x)]
def dictIsSubset(a, b): def dictIsSubset(a, b):
@@ -1,12 +1,11 @@
from couchpotato.api import addApiView from couchpotato.api import addApiView
from couchpotato.core.event import addEvent, fireEvent from couchpotato.core.event import addEvent, fireEvent
from couchpotato.core.helpers.encoding import simplifyString from couchpotato.core.helpers.encoding import simplifyString
from couchpotato.core.helpers.variable import splitString from couchpotato.core.helpers.variable import splitString, removeEmpty
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
from couchpotato.core.media._base.searcher.base import SearcherBase from couchpotato.core.media._base.searcher.base import SearcherBase
import datetime import datetime
import re import re
from six.moves import filter
log = CPLog(__name__) log = CPLog(__name__)
@@ -155,8 +154,8 @@ class Searcher(SearcherBase):
check_movie = fireEvent('scanner.name_year', check_name, single = True) check_movie = fireEvent('scanner.name_year', check_name, single = True)
try: try:
check_words = filter(None, re.split('\W+', check_movie.get('name', ''))) check_words = removeEmpty(re.split('\W+', check_movie.get('name', '')))
movie_words = filter(None, re.split('\W+', simplifyString(movie_name))) movie_words = removeEmpty(re.split('\W+', simplifyString(movie_name)))
if len(check_words) > 0 and len(movie_words) > 0 and len(list(set(check_words) - set(movie_words))) == 0: if len(check_words) > 0 and len(movie_words) > 0 and len(list(set(check_words) - set(movie_words))) == 0:
return True return True