Use simple_title for sorting and searching
This commit is contained in:
1 parent
2345febb28
commit
efee3a836d
1 file changed
+13
-10
@@ -8,8 +8,8 @@ from couchpotato.core.plugins.base import Plugin
|
|||||||
from couchpotato.core.settings.model import Movie, Library, LibraryTitle
|
from couchpotato.core.settings.model import Movie, Library, LibraryTitle
|
||||||
from couchpotato.environment import Env
|
from couchpotato.environment import Env
|
||||||
from sqlalchemy.orm import joinedload_all
|
from sqlalchemy.orm import joinedload_all
|
||||||
from sqlalchemy.sql.expression import or_, asc, func
|
from sqlalchemy.sql.expression import or_, asc, not_
|
||||||
from string import ascii_letters, digits
|
from string import ascii_lowercase
|
||||||
from urllib import urlencode
|
from urllib import urlencode
|
||||||
|
|
||||||
log = CPLog(__name__)
|
log = CPLog(__name__)
|
||||||
@@ -70,19 +70,22 @@ class MoviePlugin(Plugin):
|
|||||||
|
|
||||||
filter_or = []
|
filter_or = []
|
||||||
if starts_with:
|
if starts_with:
|
||||||
if starts_with in ascii_letters:
|
starts_with = toUnicode(starts_with.lower())
|
||||||
filter_or.append(LibraryTitle.title.startswith(toUnicode(starts_with)))
|
if starts_with in ascii_lowercase:
|
||||||
|
filter_or.append(LibraryTitle.simple_title.startswith(starts_with))
|
||||||
else:
|
else:
|
||||||
for letter in ('()!-=+,.?' + digits):
|
ignore = []
|
||||||
filter_or.append(LibraryTitle.title.startswith(toUnicode(letter)))
|
for letter in ascii_lowercase:
|
||||||
|
ignore.append(LibraryTitle.simple_title.startswith(toUnicode(letter)))
|
||||||
|
filter_or.append(not_(or_(*ignore)))
|
||||||
|
|
||||||
if search:
|
if search:
|
||||||
filter_or.append(LibraryTitle.title.like('%%' + search + '%%'))
|
filter_or.append(LibraryTitle.simple_title.like('%%' + search + '%%'))
|
||||||
|
|
||||||
if filter_or:
|
if filter_or:
|
||||||
q = q.filter(or_(*filter_or))
|
q = q.filter(or_(*filter_or))
|
||||||
|
|
||||||
q = q.order_by(asc(func.lower(LibraryTitle.title)))
|
q = q.order_by(asc(LibraryTitle.simple_title))
|
||||||
|
|
||||||
if limit_offset:
|
if limit_offset:
|
||||||
splt = limit_offset.split(',')
|
splt = limit_offset.split(',')
|
||||||
@@ -119,8 +122,8 @@ class MoviePlugin(Plugin):
|
|||||||
results = q.all()
|
results = q.all()
|
||||||
|
|
||||||
for movie in results:
|
for movie in results:
|
||||||
char = movie.library.titles[0].title[0].lower()
|
char = movie.library.titles[0].simple_title[0]
|
||||||
char = char if char in ascii_letters else '#'
|
char = char if char in ascii_lowercase else '#'
|
||||||
if char not in chars:
|
if char not in chars:
|
||||||
chars += char
|
chars += char
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user