summaryrefslogtreecommitdiffstats
path: root/abs/core/mythtv/stable-29/mythtv/0037-pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch
blob: 597b06462cceefcb2263c6d49ba2b8b93d6b565f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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'<metadata></metadata>')
     mapping = [['runtime',      'runtime'],     ['title',       'originaltitle'],
                ['releasedate',  'releasedate'], ['tagline',     'tagline'],