The branch, frodo has been updated
       via  1b6cd20ae616cb0d5382dd2f1649833a3497a679 (commit)
      from  24ef7bf92456e257da63454b7b6247bb9e86e48e (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=1b6cd20ae616cb0d5382dd2f1649833a3497a679

commit 1b6cd20ae616cb0d5382dd2f1649833a3497a679
Author: Martijn Kaijser <[email protected]>
Date:   Mon Oct 21 22:30:34 2013 +0200

    [script.module.metahandler] 2.1.0

diff --git a/script.module.metahandler/addon.xml 
b/script.module.metahandler/addon.xml
index d2ae133..2050418 100644
--- a/script.module.metahandler/addon.xml
+++ b/script.module.metahandler/addon.xml
@@ -1,16 +1,24 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="script.module.metahandler" 
-            name="metahandler" 
-            version="2.0.3" 
-            provider-name="Eldorado (inspired by anarchintosh, westcoast, 
daledude, t0mm0)">
+     name="metahandler" 
+     version="2.1.0" 
+     provider-name="Eldorado">
   <requires>
     <import addon="xbmc.python" version="2.1.0" />
-    <import addon="script.module.elementtree" version="1.2.7"/>
     <import addon="script.module.t0mm0.common" version="1.1.0"/>
-       <import addon="script.module.myconnpy" version="0.3.2"/>
+    <import addon="script.module.myconnpy" version="0.3.2"/>
   </requires>
   <extension point="xbmc.python.module" library="lib" />
   <extension point="xbmc.addon.metadata">
+    <summary lang="en">Downloads Artwork for TV shows, Movies and Music videos 
for addons and stores them in a local SQLITE database</summary>
+    <description lang="en">Queries, stores, and returns metadata for TV shows, 
Movies and Musicvideos. 
[CR]Sources:[CR]www.thetvdb.com[CR]www.themoviedb.org[CR]www.imdb.com</description>
+    <disclaimer lang="en"></disclaimer>
+    <language></language>
     <platform>all</platform>
+    <license>GNU GENERAL PUBLIC LICENSE. Version 2, June 1991</license>
+    <forum></forum>
+    <website></website>
+    <email></email>
+    <source></source>
   </extension>
 </addon>
diff --git a/script.module.metahandler/changelog.txt 
b/script.module.metahandler/changelog.txt
index b927560..fa2d0c6 100644
--- a/script.module.metahandler/changelog.txt
+++ b/script.module.metahandler/changelog.txt
@@ -1,3 +1,8 @@
+[B]Version 2.1.0[/B]
+- Updated TMDB scraper to use v3 api
+- Added multithreaded support
+- Added language setting
+
 [B]Version 2.0.3[/B]
 - Rewrite of get_episode logic - now supports air date
 - Added search/refresh on tv shows - returns list of possible matches
diff --git a/script.module.metahandler/lib/metahandler/TMDB.py 
b/script.module.metahandler/lib/metahandler/TMDB.py
index 23c71a5..43d178a 100644
--- a/script.module.metahandler/lib/metahandler/TMDB.py
+++ b/script.module.metahandler/lib/metahandler/TMDB.py
@@ -4,12 +4,22 @@
 # added support for TVDB search for show, seasons, episodes
 # also searches imdb (using http://www.imdbapi.com/) for missing info in 
movies or tvshows
 
-import simplejson
+import sys
+if sys.version_info >=  (2, 7):
+    import _json as simplejson
+else:
+    import simplejson as simplejson 
+
 import urllib, re
 from datetime import datetime
 import time
 from t0mm0.common.net import Net  
 from t0mm0.common.addon import Addon       
+from threading import Thread
+try:
+    import Queue as queue
+except ImportError:
+    import queue
 net = Net()
 addon = Addon('script.module.metahandler')
 
@@ -24,13 +34,21 @@ class TMDB(object):
     def __init__(self, api_key='b91e899ce561dd19695340c3b26e0a02', 
view='json', lang='en'):
         #view = yaml json xml
         self.view = view
-        self.lang = lang
+        self.lang = self.__get_language(lang)
         self.api_key = api_key
-        self.url_prefix = 'http://api.themoviedb.org/2.1'
+        self.url_prefix = 'http://api.themoviedb.org/3'
+        self.poster_prefix = 'http://d3gtl9l2a4fn1j.cloudfront.net/t/p/' + 
addon.get_setting('tmdb_poster_size')
+        self.backdrop_prefix = 'http://d3gtl9l2a4fn1j.cloudfront.net/t/p/' + 
addon.get_setting('tmdb_backdrop_size')
         self.imdb_api = 'http://www.imdbapi.com/?i=%s'
         self.imdb_name_api = 'http://www.imdbapi.com/?t=%s'
         self.imdb_nameyear_api = 'http://www.imdbapi.com/?t=%s&y=%s' 
 
+    def __get_language(self, lang):
+        tmdb_language = addon.get_setting('tmdb_language')
+        if tmdb_language:
+            return re.sub(".*\((\w+)\).*","\\1",tmdb_language)
+        else:
+            return lang
 
     def __clean_name(self, mystring):
         newstring = ''
@@ -57,10 +75,10 @@ class TMDB(object):
             DICT of meta data found on TMDB
             Returns None when not found or error requesting page
         '''      
-        url = "%s/%s/%s/%s/%s/%s" % (self.url_prefix, method, self.lang, 
self.view, self.api_key, values)
+        url = "%s/%s?language=%s&api_key=%s&%s" % (self.url_prefix, method, 
self.lang, self.api_key, values)
         addon.log('Requesting TMDB : %s' % url, 0)
         try:
-            meta = simplejson.loads(net.http_GET(url).content)[0]
+            meta = 
simplejson.loads(net.http_GET(url,{"Accept":"application/json"}).content)
         except Exception, e:
             addon.log("Error connecting to TMDB: %s " % e, 4)
             return None
@@ -84,10 +102,10 @@ class TMDB(object):
             DICT of meta data found on TMDB
             Returns None when not found or error requesting page
         '''      
-        url = "%s/%s/%s/%s/%s/%s" % (self.url_prefix, method, self.lang, 
self.view, self.api_key, values)
+        url = "%s/%s?language=%s&api_key=%s&%s" % (self.url_prefix, method, 
self.lang, self.api_key, values)
         addon.log('Requesting TMDB : %s' % url, 0)
         try:
-            meta = simplejson.loads(net.http_GET(url).content)
+            meta = 
simplejson.loads(net.http_GET(url,{"Accept":"application/json"}).content)
         except Exception, e:
             addon.log("Error connecting to TMDB: %s " % e, 4)
             return None
@@ -101,14 +119,7 @@ class TMDB(object):
 
     def _convert_date(self, string, in_format, out_format):
         ''' Helper method to convert a string date to a given format '''
-        
-        #Legacy check, Python 2.4 does not have strptime attribute, 
instroduced in 2.5
-        if hasattr(datetime, 'strptime'):
-            strptime = datetime.strptime
-        else:
-            strptime = lambda date_string, format: 
datetime(*(time.strptime(date_string, format)[0:6]))
-        
-        #strptime = lambda date_string, format: 
datetime(*(time.strptime(date_string, format)[0:6]))
+        strptime = lambda date_string, format: 
datetime(*(time.strptime(date_string, format)[0:6]))
         try:
             a = strptime(string, in_format).strftime(out_format)
         except Exception, e:
@@ -202,7 +213,7 @@ class TMDB(object):
                 if imdb_meta['Year'] != 'N/A':
                     meta['released'] = imdb_meta['Year'] + '-01-01'
         
-        if self._upd_key(meta, 'posters'):
+        if self._upd_key(meta, 'cover_url'):
             addon.log('-- IMDB - Updating Posters', 0)
             temp=imdb_meta['Poster']
             if temp != 'N/A':
@@ -270,20 +281,28 @@ class TMDB(object):
     # video_id is either tmdb or imdb id
     def _get_version(self, video_id):
         ''' Helper method to start a TMDB getVersion request '''    
-        return self._do_request('Movie.getVersion', video_id)
+        return self._do_request('movie/'+str(video_id), '')
 
 
-    def _get_info(self, tmdb_id):
+    def _get_info(self, tmdb_id, q = False):
         ''' Helper method to start a TMDB getInfo request '''            
-        return self._do_request('Movie.getInfo', tmdb_id)
+        r = self._do_request('movie/'+str(tmdb_id), '')
+        if q: q.put(r)
+        return r
+    
+    def _get_cast(self, tmdb_id, q = False):
+        ''' Helper method to start a TMDB getCast request '''            
+        r = self._do_request('movie/'+str(tmdb_id)+'/casts', '')
+        if q: q.put(r)
+        return r
         
 
     def _search_movie(self, name, year=''):
         ''' Helper method to start a TMDB Movie.search request - search by 
Name/Year '''
         name = urllib.quote(self.__clean_name(name))
         if year:
-            name = name + '+' + year
-        return self._do_request('Movie.search',name)
+            name = name + '&year=' + year
+        return self._do_request('search/movie','query='+name)
         
 
     def tmdb_search(self, name):
@@ -298,7 +317,7 @@ class TMDB(object):
         Returns:
             DICT of matches
         '''
-        return self._do_request_all('Movie.search',urllib.quote(name))
+        return self._do_request_all('search/movie','query='+urllib.quote(name))
         
         
     def tmdb_lookup(self, name, imdb_id='', tmdb_id='', year=''):
@@ -323,9 +342,13 @@ class TMDB(object):
         #If we don't have an IMDB ID or TMDB ID let's try searching TMDB first 
by movie name
         if not imdb_id and not tmdb_id:
             meta = self._search_movie(name,year)              
-            if meta:
-                tmdb_id = meta['id']
-                imdb_id = meta['imdb_id']
+            ##Retry without the year
+            if meta and meta['total_results'] == 0 and year:
+                meta = self._search_movie(name,'')
+            if meta and meta['total_results'] != 0:
+                tmdb_id = meta['results'][0]['id']
+                if meta['results'][0].has_key('imdb_id'):
+                    imdb_id = meta['results'][0]['imdb_id']
             
             #Didn't get a match by name at TMDB, let's try IMDB by name
             else:
@@ -335,25 +358,37 @@ class TMDB(object):
 
         #If we don't have a tmdb_id yet but do have imdb_id lets see if we can 
find it
         elif imdb_id and not tmdb_id:
-            addon.log('IMDB ID found, attempting to get TMDB ID', 0)
-            meta = self._get_version(imdb_id)
-            if meta:
-                tmdb_id = meta['id']
+            #tmdb api v3 supports imdb_id
+            tmdb_id = imdb_id
 
         if tmdb_id:
-            meta = self._get_info(tmdb_id)
+            metaQueue = queue.Queue()
+            castQueue = queue.Queue()
+            Thread(target=self._get_info, args=(tmdb_id,metaQueue)).start()
+            Thread(target=self._get_cast, args=(tmdb_id,castQueue)).start()
+            meta = metaQueue.get()
+            cast = castQueue.get()
 
             if meta is None: # fall through to IMDB lookup
                 meta = {}
             else:               
                 
+                if meta.has_key('poster_path') and meta['poster_path']:
+                    meta['cover_url'] = self.poster_prefix + 
meta['poster_path']
+                if meta.has_key('backdrop_path') and meta['backdrop_path']:
+                    meta['backdrop_url'] = self.backdrop_prefix + 
meta['backdrop_path']
+                meta['released'] = meta['release_date']
                 #Set rating to 0 so that we can force it to be grabbed from 
IMDB
-                meta['tmdb_rating'] = meta['rating']
+                meta['tmdb_rating'] = meta['vote_average']
                 meta['rating'] = 0
-                
+                if cast:
+                    meta['cast'] = cast['cast']
+                    meta['crew'] = cast['crew']
                 #Update any missing information from IDMB
                 #if meta['overview'] == 'None' or meta['overview'] == '' or 
meta['overview'] == 'TBD' or meta['overview'] == 'No overview found.' or 
meta['rating'] == 0 or meta['runtime'] == 0 or meta['runtime'] == None or 
str(meta['genres']) == '[]' or str(meta['posters']) == '[]' or meta['released'] 
== None or meta['certification'] == None:
                 #addon.log('Some info missing in TMDB for Movie *** %s ***. 
Will search imdb for more' % imdb_id, 0)
+                if meta.has_key('imdb_id'):
+                    imdb_id = meta['imdb_id']
                 addon.log('Requesting IMDB for extra information: %s' % 
imdb_id, 0)
                 imdb_meta = self.search_imdb(name, imdb_id)
                 if imdb_meta:
@@ -366,3 +401,4 @@ class TMDB(object):
                 meta = self.update_imdb_meta({}, imdb_meta)
        
         return meta
+
diff --git a/script.module.metahandler/lib/metahandler/metacontainers.py 
b/script.module.metahandler/lib/metahandler/metacontainers.py
index cd2d02f..e1ae0d1 100644
--- a/script.module.metahandler/lib/metahandler/metacontainers.py
+++ b/script.module.metahandler/lib/metahandler/metacontainers.py
@@ -52,8 +52,7 @@ except:
 
 class MetaContainer:
 
-    def __init__(self, 
path='special://profile/addon_data/script.module.metahandler'):
-        #!!!! This must be matched to the path in meteahandler.py MetaData 
__init__
+    def __init__(self):
 
         #Check if a path has been set in the addon settings
         settings_path = common.addon.get_setting('meta_folder_location')
@@ -61,7 +60,7 @@ class MetaContainer:
         if settings_path:
             self.path = xbmc.translatePath(settings_path)
         else:
-            self.path = xbmc.translatePath(path)
+            self.path = 
xbmc.translatePath('special://profile/addon_data/script.module.metahandler')
 
         self.work_path = os.path.join(self.path, 'work')
         self.cache_path = os.path.join(self.path,  'meta_cache')
@@ -98,7 +97,10 @@ class MetaContainer:
 
     def make_dir(self, mypath):
         ''' Creates sub-directories if they are not found. '''
-        if not xbmcvfs.exists(mypath): xbmcvfs.mkdirs(mypath)   
+        try:
+            if not xbmcvfs.exists(mypath): xbmcvfs.mkdirs(mypath)
+        except:
+            if not os.path.exists(mypath): os.makedirs(mypath)  
 
 
     def _del_metadir(self, path=''):
diff --git a/script.module.metahandler/lib/metahandler/metahandlers.py 
b/script.module.metahandler/lib/metahandler/metahandlers.py
index 83c51e3..ff8d4bd 100644
--- a/script.module.metahandler/lib/metahandler/metahandlers.py
+++ b/script.module.metahandler/lib/metahandler/metahandlers.py
@@ -90,7 +90,7 @@ class MetaData:
     '''  
 
      
-    def __init__(self, 
path='special://profile/addon_data/script.module.metahandler/', 
preparezip=False):
+    def __init__(self, preparezip=False):
 
         #Check if a path has been set in the addon settings
         settings_path = common.addon.get_setting('meta_folder_location')
@@ -98,7 +98,7 @@ class MetaData:
         if settings_path:
             self.path = xbmc.translatePath(settings_path)
         else:
-            self.path = xbmc.translatePath(path)
+            self.path = 
xbmc.translatePath('special://profile/addon_data/script.module.metahandler')
         
         self.cache_path = make_dir(self.path, 'meta_cache')
 
@@ -905,7 +905,11 @@ class MetaData:
             meta = self._cache_lookup_by_id(media_type, tmdb_id=tmdb_id)
         else:
             meta = self._cache_lookup_by_name(media_type, name, year)
-        
+            
+        #if no old meta found, the year is probably not in the database
+        if not imdb_id and not tmdb_id:
+            year = ''
+            
         if meta:
             overlay = meta['overlay']
             self._cache_delete_video_meta(media_type, imdb_id, tmdb_id, name, 
year)
@@ -1013,52 +1017,9 @@ class MetaData:
         common.addon.log('Looking up in local cache by name for: %s %s %s' % 
(media_type, name, year), 0)
         
         # movie_meta doesn't have a year column
-        if year and media_type == self.type_movie:
-            sql_select = sql_select + " AND year = %s" % year
-        common.addon.log('SQL Select: %s' % sql_select, 0)
-        
-        try:
-            self.dbcur.execute(sql_select)            
-            matchedrow = self.dbcur.fetchone()
-        except Exception, e:
-            common.addon.log('************* Error selecting from cache db: %s' 
% e, 4)
-            pass
-            
-        if matchedrow:
-            common.addon.log('Found meta information by name in cache table: 
%s' % dict(matchedrow), 0)
-            return dict(matchedrow)
-        else:
-            common.addon.log('No match in local DB', 0)
-            return None
-
-
-    def _cache_lookup_by_name(self, media_type, name, year=''):
-        '''
-        Lookup in SQL DB for video meta data by name and year
-        
-        Args:
-            media_type (str): 'movie' or 'tvshow'
-            name (str): full name of movie/tvshow you are searching
-        Kwargs:
-            year (str): 4 digit year of video, recommended to include the year 
whenever possible
-                        to maximize correct search results.
-                        
-        Returns:
-            DICT of matched meta data or None if no match.
-        '''        
-
-        name =  self._clean_string(name.lower())
-        if media_type == self.type_movie:
-            sql_select = "SELECT * FROM movie_meta WHERE title = '%s'" % name
-        elif media_type == self.type_tvshow:
-            sql_select = "SELECT a.*, CASE WHEN b.episode ISNULL THEN 0 ELSE 
b.episode END AS episode, CASE WHEN c.playcount ISNULL THEN 0 ELSE c.playcount 
END as playcount FROM tvshow_meta a LEFT JOIN (SELECT imdb_id, count(imdb_id) 
AS episode FROM episode_meta GROUP BY imdb_id) b ON a.imdb_id = b.imdb_id LEFT 
JOIN (SELECT imdb_id, count(imdb_id) AS playcount FROM episode_meta WHERE 
overlay=7 GROUP BY imdb_id) c ON a.imdb_id = c.imdb_id WHERE a.title = '%s'" % 
name
-            if DB == 'mysql':
-                sql_select = sql_select.replace("ISNULL", "IS NULL")
-        common.addon.log('Looking up in local cache by name for: %s %s %s' % 
(media_type, name, year), 0)
-        
-        # movie_meta doesn't have a year column
-        # if year and media_type == self.type_movie:
-            # sql_select = sql_select + " AND year = %s" % year
+        if common.addon.get_setting('year_lock')=='true':
+            if year and media_type == self.type_movie:
+                sql_select = sql_select + " AND year = %s" % year
         common.addon.log('SQL Select: %s' % sql_select, 0)
         
         try:
@@ -1257,19 +1218,28 @@ class MetaData:
         cast_list = md.get('cast','')
         if cast_list:
             for cast in cast_list:
-                job=cast.get('job','')
-                if job == 'Actor':
-                    
meta['cast'].append((cast.get('name',''),cast.get('character','') ))
-                elif job == 'Director':
-                    meta['director'] = cast.get('name','')
+                char = cast.get('character','')
+                if not char:
+                    char = ''
+                meta['cast'].append((cast.get('name',''),char ))
+                        
+        crew_list = []
+        crew_list = md.get('crew','')
+        if crew_list:
+            for crew in crew_list:
+                job=crew.get('job','')
+                if job == 'Director':
+                    meta['director'] = crew.get('name','')
                 elif job == 'Screenplay':
                     if meta['writer']:
-                        meta['writer'] = meta['writer'] + ' / ' + 
cast.get('name','')
+                        meta['writer'] = meta['writer'] + ' / ' + 
crew.get('name','')
                     else:
-                        meta['writer'] = cast.get('name','')
+                        meta['writer'] = crew.get('name','')
                     
         genre_list = []
         genre_list = md.get('genres', '')
+        if(genre_list):
+            meta['genre'] = ''
         for genre in genre_list:
             if meta['genre'] == '':
                 meta['genre'] = genre.get('name','')
@@ -1294,6 +1264,7 @@ class MetaData:
                         pass
         
         meta['cover_url'] = md.get('cover_url', '')
+        meta['backdrop_url'] = md.get('backdrop_url', '')
         if md.has_key('posters'):
             # find first thumb poster url
             for poster in md['posters']:
@@ -1466,13 +1437,15 @@ class MetaData:
         movie_list = []
         meta = tmdb.tmdb_search(name)
         if meta:
-            for movie in meta:
-                if movie['released']:
-                    #year = self._convert_date(movie['released'], '%Y-%m-%d', 
'%Y')
-                    year = movie['released'][:4]
+            if meta['total_results'] == 0:
+                common.addon.log('No results found', 2)
+                return None
+            for movie in meta['results']:
+                if movie['release_date']:
+                    year = movie['release_date'][:4]
                 else:
                     year = None
-                movie_list.append({'title': movie['name'], 'imdb_id': 
movie['imdb_id'], 'tmdb_id': movie['id'], 'year': year})
+                movie_list.append({'title': movie['title'],'original_title': 
movie['original_title'], 'imdb_id': '', 'tmdb_id': movie['id'], 'year': year})
         else:
             common.addon.log('No results found', 2)
             return None
@@ -2070,6 +2043,7 @@ class MetaData:
             season (int): tv show season number    
 
         ''' 
+        sql_select = ''
         if media_type == self.type_movie:
             if imdb_id:
                 sql_select="SELECT overlay FROM movie_meta WHERE imdb_id = 
'%s'" % imdb_id
@@ -2103,11 +2077,11 @@ class MetaData:
 
         '''       
         if meta['imdb_id']:
-            sql_select = 'SELECT * FROM episode_meta WHERE imdb_id = "%s" AND 
season = %s AND episode = %s and premiered = "%s"'  % (meta['imdb_id'], 
meta['season'], meta['episode'], meta['episode'])
+            sql_select = 'SELECT * FROM episode_meta WHERE imdb_id = "%s" AND 
season = %s AND episode = %s and premiered = "%s"'  % (meta['imdb_id'], 
meta['season'], meta['episode'], meta['premiered'])
         elif meta['tvdb_id']:
-            sql_select = 'SELECT * FROM episode_meta WHERE tvdb_id = "%s" AND 
season = %s AND episode = %s and premiered = "%s"'  % (meta['tvdb_id'], 
meta['season'], meta['episode'], meta['episode'])
+            sql_select = 'SELECT * FROM episode_meta WHERE tvdb_id = "%s" AND 
season = %s AND episode = %s and premiered = "%s"'  % (meta['tvdb_id'], 
meta['season'], meta['episode'], meta['premiered'])
         else:         
-            sql_select = 'SELECT * FROM episode_meta WHERE title = "%s" AND 
season = %s AND episode = %s and premiered = "%s"'  % 
(self._clean_string(meta['title'].lower()), meta['season'], meta['episode'], 
meta['episode'])
+            sql_select = 'SELECT * FROM episode_meta WHERE title = "%s" AND 
season = %s AND episode = %s and premiered = "%s"'  % 
(self._clean_string(meta['title'].lower()), meta['season'], meta['episode'], 
meta['premiered'])
         common.addon.log('Getting episode watched status', 0)
         common.addon.log('SQL Select: %s' % sql_select, 0)
         try:
@@ -2482,7 +2456,6 @@ class MetaData:
 
         placeholder= '?'
         placeholders= ', '.join(placeholder for x in batch_ids)
-        print placeholders
         
         ids = []
         if media_type == self.type_movie:
@@ -2521,7 +2494,6 @@ class MetaData:
                 return None
 
         common.addon.log( 'SQL Select: %s' % sql_select, 0)
-        print ids
 
         try:
             self.dbcur.execute(sql_select, ids)
diff --git a/script.module.metahandler/lib/metahandler/thetvdbapi.py 
b/script.module.metahandler/lib/metahandler/thetvdbapi.py
index 8e48d9c..6f3dabe 100644
--- a/script.module.metahandler/lib/metahandler/thetvdbapi.py
+++ b/script.module.metahandler/lib/metahandler/thetvdbapi.py
@@ -21,7 +21,8 @@ import datetime
 import re
 import copy
 
-import elementtree.ElementTree as ET
+import xml.etree.ElementTree as ET 
+#import elementtree.ElementTree as ET
 #from elementtree.ElementTree import ElementTree as ET
 from cStringIO import StringIO
 
@@ -193,7 +194,6 @@ class TheTVDB(object):
         print url
         data = urllib.urlopen(url)
         show_list = []
-        print url
         if data:
             try:
                 tree = ET.parse(data)
@@ -209,7 +209,6 @@ class TheTVDB(object):
         url = "%s/series/%s/" % (self.base_key_url, show_id)
         data = StringIO(urllib.urlopen(url).read())
         temp_data = data.getvalue()
-        print 'data returned from TheTVDB ' + temp_data
         show = None
         if temp_data.startswith('<?xml') == False:
             return show
@@ -231,7 +230,6 @@ class TheTVDB(object):
         url = "%s/GetSeriesByRemoteID.php?imdbid=%s" % (self.base_url, imdb_id)
         data = StringIO(urllib.urlopen(url).read())
         temp_data = data.getvalue()
-        print 'data returned from TheTVDB ' + temp_data
         tvdb_id = ''
         if temp_data.startswith('<?xml') == False:
             return tvdb_id
@@ -275,7 +273,6 @@ class TheTVDB(object):
         
         #code to check if data has been returned
         temp_data = data.getvalue()
-        print 'data returned from TheTVDB ' + temp_data
         if temp_data.startswith('<?xml') == False:
             print 'No data returned ', temp_data
             return episode
diff --git a/script.module.metahandler/resources/settings.xml 
b/script.module.metahandler/resources/settings.xml
index d153307..23710cd 100644
--- a/script.module.metahandler/resources/settings.xml
+++ b/script.module.metahandler/resources/settings.xml
@@ -9,4 +9,11 @@
                <setting id="db_pass"    type="text"    label="    Password"    
enable="eq(-4,true)" default="" option="hidden"/>
                <setting id="db_name"    type="text"    label="    Database"    
enable="eq(-5,true)" default="video_cache" />
 </category>
-</settings>
\ No newline at end of file
+<category label="TMDB (Movies)">
+    <setting id="tmdb_language" label="Language" type="labelenum" 
default="English (en)" values="English (en)|Český (cs)|Dansk (da)|Deutsch 
(de)|ελληνικά (el)|Español (es)|Français (fr)|Magyar (hu)|Italiano 
(it)|Nederlands (nl)|Polski (pl)|Português (pt)|Pусский 
(ru)|Slovenščina (sk)|Svenska (sv)|Türkçe (tr)"/>
+    <setting id="tmdb_poster_size" label="Poster Size" type="labelenum" 
default="w342" values="w92|w154|w185|w342|w500|original"/>
+    <setting id="tmdb_backdrop_size" label="Backdrop Size" type="labelenum" 
default="original" values="w300|w780|w1280|original"/>
+    <setting type="sep" />
+    <setting id="year_lock" label="Year Lock" type="bool" default="false"/>
+</category>
+</settings>

-----------------------------------------------------------------------

Summary of changes:
 script.module.metahandler/addon.xml                |   18 +++-
 script.module.metahandler/changelog.txt            |    5 +
 script.module.metahandler/lib/metahandler/TMDB.py  |  100 +++++++++++++------
 .../lib/metahandler/metacontainers.py              |   10 +-
 .../lib/metahandler/metahandlers.py                |  104 +++++++------------
 .../lib/metahandler/thetvdbapi.py                  |    7 +-
 script.module.metahandler/resources/settings.xml   |    9 ++-
 7 files changed, 140 insertions(+), 113 deletions(-)


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to