From 1d232ad0105958ff95f13242b32bb2935154ee53 Mon Sep 17 00:00:00 2001 From: Vince Valenti <vince@blue-box.net> Date: Sat, 21 Nov 2015 22:02:52 -0800 Subject: [PATCH] Enhance show search If term contains a leading article, remove it. Also, if there is a trailing year, enclose it in (). --- sickbeard/webserve.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py index aa77da599..af9659879 100644 --- a/sickbeard/webserve.py +++ b/sickbeard/webserve.py @@ -2235,6 +2235,19 @@ class HomeAddShows(Home): search_term = search_term.encode('utf-8') + searchTerms = [search_term] + + # If search term ends with a 4 digit number (year), enclose it in () + matches = re.match(r'^(.+) ([12][0-9]{3})$', search_term) + if matches: + searchTerms.append("%s (%s)" % (matches.group(1), matches.group(2))) + + for searchTerm in searchTerms: + # If search term begins with an article, let's also search for it without + matches = re.match(r'^(?:a|an|the) (.+)$', searchTerm, re.I) + if matches: + searchTerms.append(matches.group(1)) + results = {} final_results = [] @@ -2245,13 +2258,16 @@ class HomeAddShows(Home): lINDEXER_API_PARMS['custom_ui'] = classes.AllShowsListUI t = sickbeard.indexerApi(indexer).indexer(**lINDEXER_API_PARMS) - logger.log(u"Searching for Show with searchterm: %s on Indexer: %s" % ( - search_term, sickbeard.indexerApi(indexer).name), logger.DEBUG) - try: + logger.log(u"Searching for Show with searchterm(s): %s on Indexer: %s" % ( + searchTerms, sickbeard.indexerApi(indexer).name), logger.DEBUG) + for searchTerm in searchTerms: + try: + indexerResults = t[searchTerm] + except Exception: + continue + # add search results - results.setdefault(indexer, []).extend(t[search_term]) - except Exception: - continue + results.setdefault(indexer, []).extend(indexerResults) for i, shows in results.iteritems(): final_results.extend([[sickbeard.indexerApi(i).name, i, sickbeard.indexerApi(i).config["show_url"], int(show['id']), -- GitLab