The branch, frodo has been updated
       via  c27497b8cd9233c72b68ab1e24289eed8467cf8e (commit)
      from  18854451d23841b232049da4d9bdc9e8742f9d2f (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=c27497b8cd9233c72b68ab1e24289eed8467cf8e

commit c27497b8cd9233c72b68ab1e24289eed8467cf8e
Author: Martijn Kaijser <[email protected]>
Date:   Wed May 28 15:41:28 2014 +0200

    [plugin.video.noco] 1.0.1

diff --git a/plugin.video.noco/addon.py b/plugin.video.noco/addon.py
index 2958138..80e2618 100644
--- a/plugin.video.noco/addon.py
+++ b/plugin.video.noco/addon.py
@@ -25,15 +25,52 @@ api = nocoApi()
 
 @plugin.route('/')
 def index():
-    token = getToken()
-    partners = [{
-        'label': partner['partner_name'],
-        'icon': partner['icon_1024x576'],
-        'path': plugin.url_for('indexPartner', partner=partner['partner_key'])
-        } for partner in api.get_partners(token['token'])]
-    return plugin.finish(partners)
+    if plugin.get_setting('username') == '' or plugin.get_setting('password') 
== '':
+        plugin.open_settings()
+    if plugin.get_setting('username') == '' or plugin.get_setting('password') 
== '':
+        error=plugin.get_string('30050')
+        plugin.notify(msg=error, delay=10000)
+    else:
+        token = getToken()
+        partners = [{
+            'label': partner['partner_name'],
+            'icon': partner['icon_1024x576'],
+            'path': plugin.url_for('indexMenu', partner=partner['partner_key'])
+            } for partner in api.get_partners(token['token'])]
+        return plugin.finish(partners)
+
 
 @plugin.route('/partners/<partner>')
+def indexMenu(partner):
+    index = [
+        {'label': plugin.get_string('30060'),
+        'path': plugin.url_for('indexLast', partner=partner)},
+        {'label': plugin.get_string('30061'), 
+        'path': plugin.url_for('indexPartner', partner=partner)},
+        {'label': plugin.get_string('30062'),
+        'path': plugin.url_for('indexPopular', partner=partner)},
+        ]
+    return plugin.finish(index)
+
[email protected]('/partners/<partner>/last')
+def indexLast(partner):
+    token = getToken()
+    videos = []
+    num_last = str(plugin.get_setting('show_last'))
+    for video in api.get_last(partner, token['token'], num_last):
+        videos.append(getVideoInfos(video, partner, 
video['family_TT'].encode('utf-8')))
+    return plugin.finish(videos)
+
[email protected]('/partners/<partner>/popular')
+def indexPopular(partner):
+    token = getToken()
+    videos = []
+    num_last = str(plugin.get_setting('show_last'))
+    for video in api.get_popular(partner, token['token'], num_last):
+        videos.append(getVideoInfos(video, partner, 
video['family_TT'].encode('utf-8')))
+    return plugin.finish(videos)
+
[email protected]('/partners/<partner>/themes')
 def indexPartner(partner):
     token = getToken()
     res = []
@@ -44,6 +81,15 @@ def indexPartner(partner):
         } for theme in api.get_themes(partner, token['token'])]
     return plugin.finish(themes)
 
[email protected]('/partners/<partner>/search')
+def search(partner):
+    token = getToken()
+    videos = []
+    query = plugin.keyboard(heading=plugin.get_string('30064'))
+    for video in api.search(partner, query, token['token']):
+        videos.append(getVideoInfos(video, partner, 
video['family_TT'].encode('utf-8')))
+    return plugin.finish(videos)
+
 @plugin.route('/partners/<partner>/themes/<theme>')
 def indexThemes(partner, theme):
     token = getToken()
@@ -60,56 +106,7 @@ def indexFamily(partner, theme, family):
     videos = []
     num_video = str(plugin.get_setting('show_n'))
     for video in api.get_videos(partner, family, token['token'], num_video):
-        if video['show_TT'] == None:
-            label = video['family_TT'].encode('utf-8')+' - 
'+str(video['episode_number'])
-        else:
-            label = video['family_TT'].encode('utf-8')+' - 
'+str(video['episode_number']).encode('utf-8')+' - 
'+unicode(video['show_TT']).encode('utf-8')
-        if video['show_resume'] == None and video['family_resume'] == None:
-            resume = ''
-        elif video['show_resume'] == None and video['family_resume'] != None:
-            resume = video['family_resume']
-        elif video['family_resume'] == None and video['show_resume'] != None:
-            resume = video['show_resume']
-        else:
-            resume =  video['family_resume']+'\n\n'+video['show_resume']
-        if video['mark_read'] == 1:
-            read = '1'
-        else:
-            read = '0'
-        aired = video['online_date_start_utc']
-        infos = {
-            'genre': video['type_name'],
-            'episode': video['episode_number'],
-            'season': video['season_number'],
-            'title': label,
-            'studio': video['partner_name'],
-            'writer': video['partner_name'],
-            'director': video['partner_name'],
-            #'rating': video[''],
-            'playcount': read,
-            'plot': resume,
-            'plotoutline': resume,
-            'tvshowtitle': video['family_TT'],
-            'aired': video['online_date_start_utc']
-            }
-        totaltime  = unicode(video['duration_ms']/1000)
-        resumetime = unicode(video['resume_play']/1000)
-        properties = {
-            'resumetime': resumetime,
-            'totaltime': totaltime,
-            'fanart_image': video['banner_family']
-        }
-        stream_infos = {'video': {'duration': video['duration_ms']/1000 }}
-        videos.append({
-            'label': label.decode("utf-8"),
-            'icon': video['screenshot_512x288'],
-            'thumbnail': video['screenshot_512x288'],
-            'info': infos,
-            'properties': properties,
-            'stream_info': stream_infos,
-            'path': plugin.url_for('playVideo', partner=partner, 
family=family, video=video['id_show']),
-            'is_playable': True
-            })
+        videos.append(getVideoInfos(video, partner, family))
     return plugin.finish(videos)
 
 @plugin.route('/partners/<partner>/families/<family>/<video>')
@@ -128,13 +125,68 @@ def playVideo(partner, family, video):
         quality = 'HD_1080' 
     plugin.set_resolved_url(api.get_video(video, token['token'], quality))
 
+def getVideoInfos(video, partner, family):
+    if video['show_TT'] == None:
+        label = video['family_TT'].encode('utf-8')+' - 
'+str(video['episode_number'])
+    else:
+        label = video['family_TT'].encode('utf-8')+' - 
'+str(video['episode_number']).encode('utf-8')+' - 
'+unicode(video['show_TT']).encode('utf-8')
+    if video['show_resume'] == None and video['family_resume'] == None:
+        resume = ''
+    elif video['show_resume'] == None and video['family_resume'] != None:
+        resume = video['family_resume']
+    elif video['family_resume'] == None and video['show_resume'] != None:
+        resume = video['show_resume']
+    else:
+        resume =  video['family_resume']+'\n\n'+video['show_resume']
+    if video['mark_read'] == 1:
+        read = '1'
+    else:
+        read = '0'
+    aired = video['online_date_start_utc']
+    infos = {
+        'genre': video['type_name'],
+        'episode': video['episode_number'],
+        'season': video['season_number'],
+        'title': label,
+        'studio': video['partner_name'],
+        'writer': video['partner_name'],
+        'director': video['partner_name'],
+        #'rating': video[''],
+        'playcount': read,
+        'plot': resume,
+        'plotoutline': resume,
+        'tvshowtitle': video['family_TT'],
+        'aired': video['online_date_start_utc']
+        }
+    properties = {
+        'fanart_image': video['banner_family']
+    }
+    if read == '0':
+        totaltime  = unicode(video['duration_ms']/1000)
+        resumetime = unicode(video['resume_play']/1000)
+        properties['totaltime']  = totaltime
+        properties['resumetime'] = resumetime
+    stream_infos = {'video': {'duration': video['duration_ms']/1000 }}
+    v = {
+        'label': label.decode("utf-8"),
+        'icon': video['screenshot_512x288'],
+        'thumbnail': video['screenshot_512x288'],
+        'info': infos,
+        'properties': properties,
+        'stream_info': stream_infos,
+        'path': plugin.url_for('playVideo', partner=partner, family=family, 
video=video['id_show']),
+        'is_playable': True
+        }
+    return v
+
 def getToken():
     token = plugin.get_storage('token')
     username = plugin.get_setting('username')
     password = plugin.get_setting('password')
     if 'token' in token:
         if float(token['expire']) < ( time.time() + 600 ):
-            token['token'], token['expire'], token['renew'] = 
api.renew_token(token['renew'])
+            #token['token'], token['expire'], token['renew'] = 
api.renew_token(token['renew'])
+            token['token'], token['expire'], token['renew'] = 
api.get_token(username, password)
     else:
         token['token'], token['expire'], token['renew'] = 
api.get_token(username, password)
     return token
diff --git a/plugin.video.noco/addon.xml b/plugin.video.noco/addon.xml
index d3945ed..6d65885 100644
--- a/plugin.video.noco/addon.xml
+++ b/plugin.video.noco/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.video.noco" name="noco" version="1.0.0" 
provider-name="Julien Gormotte (gormux)">
+<addon id="plugin.video.noco" name="noco" version="1.0.1" 
provider-name="Julien Gormotte (gormux)">
   <requires>
     <import addon="xbmc.python" version="2.1.0"/>
     <import addon="script.module.xbmcswift2" version="2.4.0"/>
diff --git a/plugin.video.noco/fanart.jpg b/plugin.video.noco/fanart.jpg
index 8347f05..3964123 100644
Binary files a/plugin.video.noco/fanart.jpg and b/plugin.video.noco/fanart.jpg 
differ
diff --git a/plugin.video.noco/resources/language/English/strings.xml 
b/plugin.video.noco/resources/language/English/strings.xml
index c2d85be..e754aeb 100644
--- a/plugin.video.noco/resources/language/English/strings.xml
+++ b/plugin.video.noco/resources/language/English/strings.xml
@@ -17,4 +17,15 @@
     <string id="30024">Show autopromos</string>
     <string id="30025">Show announces</string>
     <string id="30026">Hide forbidden videos from age</string>
+
+    <!-- Messages -->
+    <string id="30050">You MUST provide a user and a password !</string>
+
+    <!-- Categories names -->
+    <string id="30060">Last videos</string>
+    <string id="30061">Themes</string>
+    <string id="30062">Most popular</string>
+    <string id="30063">Search</string>
+    <string id="30064">Enter your search terms</string>
+
 </strings>
diff --git a/plugin.video.noco/resources/language/French/strings.xml 
b/plugin.video.noco/resources/language/French/strings.xml
index 5b71492..5387726 100644
--- a/plugin.video.noco/resources/language/French/strings.xml
+++ b/plugin.video.noco/resources/language/French/strings.xml
@@ -17,4 +17,15 @@
     <string id="30024">Afficher les autopromos</string>
     <string id="30025">Afficher les annonces</string>
     <string id="30026">Cacher les videos interdites à partir de</string>
+
+    <!-- Messages -->
+    <string id="30050">Vous DEVEZ fournir un utilisateur et un mot de passe 
!</string>
+
+    <!-- Categories names -->
+    <string id="30060">Dernières vidéos</string>
+    <string id="30061">Thèmes</string>
+    <string id="30062">Les plus populaires</string>
+    <string id="30063">Recherche</string>
+    <string id="30064">Entrez votre recherche</string>
+    
 </strings>
diff --git a/plugin.video.noco/resources/lib/api.py 
b/plugin.video.noco/resources/lib/api.py
index 0f7dd50..8fb2471 100644
--- a/plugin.video.noco/resources/lib/api.py
+++ b/plugin.video.noco/resources/lib/api.py
@@ -74,6 +74,23 @@ class nocoApi():
             if not any(d['theme_key'] == element['theme_key'] for d in data):
                 data.append({'theme_key': element['theme_key'], 'theme_name': 
element['theme_name'], 'icon': element['icon_1024x576']})
         return data
+    def search(self, partner, query, token):
+        data = []
+        request = {'access_token': token, 'partner_key': partner, 'query': 
query}
+        json_data = json.loads(requests.get(mainURL+'search/', 
params=request).text)
+        for element in json_data:
+            if element['type'] == 'show':
+                request = {'access_token': token, 'partner_key': partner, 
'id_show': str(element['id'])}
+                
data.append(json.loads(requests.get(mainURL+'/shows/by_id/'+str(element['id']), 
params=request).text))
+        return data
+    def get_last(self, partner, token, num_video):
+        request = {'access_token': token, 'partner_key': partner, 
'elements_per_page': num_video}
+        data = json.loads(requests.get(mainURL+'shows/', params=request).text)
+        return data
+    def get_popular(self, partner, token, num_video):
+        request = {'access_token': token, 'partner_key': partner, 
'elements_per_page': num_video}
+        data = json.loads(requests.get(mainURL+'shows/most_popular', 
params=request).text)
+        return data
     def get_families(self, partner, theme, token):
         request = {'access_token': token, 'partner_key': partner, 'theme_key': 
theme}
         data = json.loads(requests.get(mainURL+'families', 
params=request).text)
diff --git a/plugin.video.noco/resources/settings.xml 
b/plugin.video.noco/resources/settings.xml
index d0b88b6..cd3fb52 100644
--- a/plugin.video.noco/resources/settings.xml
+++ b/plugin.video.noco/resources/settings.xml
@@ -9,6 +9,7 @@
     <!-- Affichage -->
     <category label="30006">
         <setting id="show_n" subsetting="true" type="slider" label="30009" 
default="100" range="10,10,1000" option="int"/>
+        <setting id="show_last" subsetting="true" type="slider" label="30012" 
default="30" range="10,10,100" option="int"/>
         <!-- <setting id="showseen" type="bool" label="30011" default="true"/> 
-->
         <setting id="quality" type="labelenum" label="30010" 
values="LQ|HQ|TV|HD_720|HD_1080" default="HD_720"/>
     </category>

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

Summary of changes:
 plugin.video.noco/addon.py                         |  168 +++++++++++++-------
 plugin.video.noco/addon.xml                        |    2 +-
 plugin.video.noco/fanart.jpg                       |  Bin 781478 -> 70000 bytes
 .../resources/language/English/strings.xml         |   11 ++
 .../resources/language/French/strings.xml          |   11 ++
 plugin.video.noco/resources/lib/api.py             |   17 ++
 plugin.video.noco/resources/settings.xml           |    1 +
 7 files changed, 151 insertions(+), 59 deletions(-)


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
Time is money. Stop wasting it! Get your web API in 5 minutes.
www.restlet.com/download
http://p.sf.net/sfu/restlet
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to