diff -Naur mythtv-master-20170223-ga8b2fe8-old/mythtv/libs/libmythmetadata/videometadata.cpp mythtv-master-20170223-ga8b2fe8-new/mythtv/libs/libmythmetadata/videometadata.cpp --- mythtv-master-20170223-ga8b2fe8-old/mythtv/libs/libmythmetadata/videometadata.cpp 2017-02-23 13:18:09.000000000 +0100 +++ src/mythtv/libs/libmythmetadata/videometadata.cpp 2017-02-25 14:03:16.933333314 +0100 @@ -1162,7 +1162,7 @@ title.lastIndexOf('/') -1); title = eatBraces(title, "[", "]"); - title = eatBraces(title, "(", ")"); + //title = eatBraces(title, "(", ")"); title = eatBraces(title, "{", "}"); return title.trimmed(); } diff -Naur mythtv-master-20170223-ga8b2fe8-old/mythtv/programs/scripts/metadata/Movie/tmdb3.py mythtv-master-20170223-ga8b2fe8-new/mythtv/programs/scripts/metadata/Movie/tmdb3.py --- mythtv-master-20170223-ga8b2fe8-old/mythtv/programs/scripts/metadata/Movie/tmdb3.py 2017-02-23 13:18:12.000000000 +0100 +++ src/mythtv/programs/scripts/metadata/Movie/tmdb3.py 2017-02-25 13:12:40.213333328 +0100 @@ -29,6 +29,7 @@ from optparse import OptionParser import sys +import re def buildSingle(inetref, opts): from MythTV.tmdb3.tmdb_exceptions import TMDBRequestInvalid @@ -122,11 +123,27 @@ # replace all dashes from queries to work around search behavior # as negative to all text that comes afterwards query = query.replace('-',' ') + query = query.strip() # trim extra whitespace + # extract year from name -- note that we require a space before the year + # so we don't confuse movie names for years (example: "2012 - 2009", + # a 2009 movie); also note that we accept optional paranthesis around + # the year: + yearRegex = re.compile(r"\s\(?((19|20)[0-9]{2})\)?$") + year = yearRegex.search(query) + if year is not None: + year = year.group(1) + # if no year was found, we'll pass year=None to searchMovie, + # which is the default anyway + + # get rid of the year (if any) from the query text, because + # it causes bad TMDB results + query = yearRegex.sub("", query) + query = query.strip() from MythTV.tmdb3 import searchMovie from MythTV import VideoMetadata from lxml import etree - results = iter(searchMovie(query)) + results = iter(searchMovie(query, locale=None, adult=False, year=year)) tree = etree.XML(u'') mapping = [['runtime', 'runtime'], ['title', 'originaltitle'], ['releasedate', 'releasedate'], ['tagline', 'tagline'],