diff --git a/resources/lib/extendedSearchModel.py b/resources/lib/extendedSearchModel.py index b976577..7a90d09 100644 --- a/resources/lib/extendedSearchModel.py +++ b/resources/lib/extendedSearchModel.py @@ -68,6 +68,7 @@ def reset(self): self.title = [] self.show = [] self.showId = [] + self.quick = [] self.showStartLetter = [] self.exactMatchForShow = 0 self.description = [] @@ -102,6 +103,9 @@ def getShowStartLetter(self): def getTitle(self): return self.title + def getQuick(self): + return self.quick + def getDescription(self): return self.description @@ -213,6 +217,13 @@ def setTitle(self, pValue): pValue = pValue.split('|') self.title = pValue + def setQuick(self, pValue): + if pValue is None or pValue == "": + pValue = [] + else: + pValue = pValue.split(' ') + self.quick = pValue + def setDescription(self, pValue): if pValue is None or pValue == "": pValue = [] @@ -349,6 +360,20 @@ def generateExclude(self): sql += ")" return (sql, params) + def generateQuickSearch(self): + sql = "" + params = [] + if len(self.getQuick()) > 0: + sql += ' (' + innerSql = [] + for conditionString in self.getQuick(): + exp = '%' + conditionString + '%' + params.append(exp) + innerSql.append('concat(showname, \' \', title) like ?') + sql += ' and '.join(innerSql) + sql += ')' + return (sql, params) + # def generateShowTitleDescription(self): sql = "" diff --git a/resources/lib/storeQuery.py b/resources/lib/storeQuery.py index bc5aadb..5d5a953 100644 --- a/resources/lib/storeQuery.py +++ b/resources/lib/storeQuery.py @@ -122,6 +122,11 @@ def extendedSearchQuery(self, esModel): sql = self.sql_query_films sql += ' WHERE (1=1)' # + (quickSearchCondition, quickSearchParams) = esModel.generateQuickSearch() + if (quickSearchCondition != ''): + sql += ' AND ' + quickSearchCondition + params.extend(quickSearchParams) + # (mixedSearchCondition, mixedSearchParams) = esModel.generateShowTitleDescription() if (mixedSearchCondition != ''): sql += ' AND ' + mixedSearchCondition @@ -202,8 +207,8 @@ def getQuickSearch(self, searchTerm): self.logger.debug('getQuickSearch') # esModel = ExtendedSearchModel.ExtendedSearchModel('') - esModel.setShow(searchTerm) - esModel.setTitle(searchTerm) + esModel.setQuick(searchTerm) + #cacheKey = searchTerm + esModel.generateMinLength() + esModel.generateIgnoreTrailer() + esModel.generateMaxRows() cacheKey = esModel.getCacheKey() cached_data = self._cache.load_cache('quickSearch', cacheKey)