The branch, frodo has been updated
       via  0cc20e32923a2b24a47bf2da6a55697162078724 (commit)
      from  dc67eb170a66e4976640e7216da20f07f35e64a0 (commit)

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

commit 0cc20e32923a2b24a47bf2da6a55697162078724
Author: beenje <[email protected]>
Date:   Fri Dec 13 00:20:31 2013 +0100

    [plugin.video.arte_tv] updated to version 2.0.5

diff --git a/plugin.video.arte_tv/addon.xml b/plugin.video.arte_tv/addon.xml
index 607bffb..34062d0 100644
--- a/plugin.video.arte_tv/addon.xml
+++ b/plugin.video.arte_tv/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.arte_tv" name="Arte.tv" version="2.0.4" 
provider-name="AddonScriptorDE">
+<addon id="plugin.video.arte_tv" name="Arte.tv" version="2.0.5" 
provider-name="AddonScriptorDE">
     <requires>
         <import addon="xbmc.python" version="2.1.0"/>
     </requires>
@@ -12,13 +12,13 @@
         <summary lang="en">ARTE Media Library (DE/FR)</summary>
         <summary lang="fr">ARTE médiathèque (DE/FR)</summary>
         <language>de fr</language>
-        <description lang="de">ARTE Mediathek (DE/FR)</description>
-        <description lang="en">ARTE Media Library (DE/FR)</description>
-        <description lang="fr">ARTE médiathèque (DE/FR)</description>
-        <disclaimer lang="en">Some parts of this addon may not be legal in 
your country of residence - please check with your local laws before 
installing.</disclaimer>
-        <website>http://www.arte.tv</website>
+        <description lang="de">Videos aus der ARTE Mediathek anschauen + 
Livestream (DE/FR)</description>
+        <description lang="en">Watch Videos from the ARTE Media Library + 
Livestream (DE/FR)</description>
+        <description lang="fr">Regarder des vidéos de la ARTE médiathèque + 
Livestream (DE/FR)</description>
+        <license>GNU GENERAL PUBLIC LICENSE. Version 2, June 1991</license>
         
<source>https://github.com/AddonScriptorDE/plugin.video.arte_tv</source>
         <forum>http://forum.xbmc.org/showthread.php?tid=132563</forum>
         <email>AddonScriptorDE at yahoo dot de</email>
+        <website>http://www.arte.tv</website>
     </extension>
 </addon>
diff --git a/plugin.video.arte_tv/changelog.txt 
b/plugin.video.arte_tv/changelog.txt
index d1a3da2..8536b63 100644
--- a/plugin.video.arte_tv/changelog.txt
+++ b/plugin.video.arte_tv/changelog.txt
@@ -12,3 +12,6 @@
 - Added support for HD videos
 1.0.4 / 2.0.4
 - Added Arte Livestream
+2.0.5
+- Changed streaming type
+- Changed default view
diff --git a/plugin.video.arte_tv/default.py b/plugin.video.arte_tv/default.py
index 88ddb26..f03f357 100644
--- a/plugin.video.arte_tv/default.py
+++ b/plugin.video.arte_tv/default.py
@@ -6,6 +6,7 @@ import socket
 import sys
 import re
 import os
+import json
 import xbmcplugin
 import xbmcaddon
 import xbmcgui
@@ -15,10 +16,10 @@ socket.setdefaulttimeout(30)
 pluginhandle = int(sys.argv[1])
 addonID = "plugin.video.arte_tv"
 addon = xbmcaddon.Addon(id=addonID)
-translation = addon.getLocalizedString
-forceViewMode = addon.getSetting("forceViewMode") == "true"
+forceViewMode = addon.getSetting("forceView") == "true"
 useThumbAsFanart = addon.getSetting("useThumbAsFanart") == "true"
-viewMode = str(addon.getSetting("viewMode"))
+viewMode = str(addon.getSetting("viewID"))
+icon = xbmc.translatePath('special://home/addons/'+addonID+'/icon.png')
 baseUrl = "http://www.arte.tv";
 
 while (not 
os.path.exists(xbmc.translatePath("special://profile/addon_data/"+addonID+"/settings.xml"))):
@@ -40,43 +41,88 @@ def index():
     addDir(translation(30007), "by_date", "listCats", "")
     addDir(translation(30008), "", "search", "")
     addDir(translation(30012), "", "listWebLiveMain", "")
-    addLink(translation(30009), "", "playLiveStream", "")
+    addLink(translation(30009), "", "playLiveStream", icon)
     xbmcplugin.endOfDirectory(pluginhandle)
 
 
-def listVideosOld(url):
-    urlMain = url
+def listVideosNew(url):
+    xbmcplugin.setContent(pluginhandle, "episodes")
     content = getUrl(url)
-    spl = content.split('<div class="video">')
-    for i in range(1, len(spl), 1):
-        entry = spl[i]
-        match = re.compile('<p>(.+?)</p>', re.DOTALL).findall(entry)
-        date = ""
-        if match:
-            date = match[0]
-        match = re.compile('<p class="teaserText">(.+?)</p>', 
re.DOTALL).findall(entry)
-        desc = ""
-        if match:
-            desc = cleanTitle(match[0])
-        desc = date+"\n"+desc
-        match = re.compile('<h2><a href="(.+?)">(.+?)</a></h2>', 
re.DOTALL).findall(entry)
-        url = "http://videos.arte.tv"+match[0][0]
-        title = cleanTitle(match[0][1])
-        entry = entry[entry.find('class="thumbnail"'):]
-        match = re.compile('src="(.+?)"', re.DOTALL).findall(entry)
-        thumb = "http://videos.arte.tv"+match[0]
-        addLink(title, url, 'playVideo', thumb, desc, "")
+    content = json.loads(content)
+    for item in content["videos"]:
+        title = item["title"].encode('utf-8')
+        try:
+            desc = item["desc"].encode('utf-8')
+        except:
+            desc = ""
+        try:
+            duration = str(item["duration"])
+        except:
+            duration = ""
+        try:
+            date = item["airdate_long"].encode('utf-8')
+        except:
+            date = ""
+        try:
+            url = item["url"]
+        except:
+            url = ""
+        try:
+            thumb = item["image_url"]
+        except:
+            thumb = ""
+        try:
+            channels = item["video_channels"].encode('utf-8')
+        except:
+            channels = ""
+        try:
+            views = str(item["video_views"])
+        except:
+            views = ""
+        try:
+            until = item["video_rights_until"].encode('utf-8')
+        except:
+            until = ""
+        try:
+            rank = str(item["video_rank"])
+        except:
+            rank = ""
+        desc = views+"   |   "+date+"\n"+channels+"\n"+desc
+        addLink(cleanTitle(title), baseUrl+url, 'playVideoNew', thumb, desc, 
duration)
     xbmcplugin.endOfDirectory(pluginhandle)
     if forceViewMode:
         xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
 
 
-def listVideosNew(url):
-    content = getUrl(url)
-    match = 
re.compile('\\{"image_url":"(.+?)","title":"(.+?)","duration":(.+?),"airdate_long":"(.+?)","desc":(.*?),"url":"(.+?)","video_channels":"(.*?)","video_views":"(.+?)","video_rights_until":"(.+?)","video_rank":(.*?)\\}',
 re.DOTALL).findall(content)
-    for thumb, title, duration, date, desc, url, channels, views, until, rank 
in match:
-        desc = views+"   |   
"+date+"\n"+channels+"\n"+cleanTitle(desc).replace('"', '').replace("null", "")
-        addLink(cleanTitle(title), baseUrl+url, 'playVideoNew', thumb, desc, 
duration)
+def listSearchVideos(urlMain):
+    xbmcplugin.setContent(pluginhandle, "episodes")
+    try:
+        content = getUrl(urlMain)
+        spl = content.split('<div class="video-block has-play"')
+        for i in range(1, len(spl), 1):
+            entry = spl[i]
+            match = re.compile('alt="(.+?)"', re.DOTALL).findall(entry)
+            title = cleanTitle(match[0])
+            match = re.compile('data-description="(.+?)"', 
re.DOTALL).findall(entry)
+            desc = ""
+            if match:
+                desc = cleanTitle(match[0])
+            match = re.compile('<p class="time-row">.+?<span 
class=".+?">.+?</span>(.+?)</p>.+?<p class=".+?">.+?<span 
class=".+?">.+?</span>(.+?)</p>', re.DOTALL).findall(entry)
+            if match:
+                date = match[0][0].strip()
+                desc = date+"\n"+desc
+                duration = match[0][1].strip()
+                duration = duration.split(" ")[0]
+            match = re.compile('href="(.+?)"', re.DOTALL).findall(entry)
+            url = match[0]
+            match = re.compile('src="(.+?)"', re.DOTALL).findall(entry)
+            thumb = match[0]
+            addLink(title, url, 'playVideoNew', thumb, desc, duration)
+        currentPage = urlMain[urlMain.find("page=")+5:]
+        nextPage = str(int(currentPage)+1)
+        addDir(translation(30010), 
urlMain.replace("page="+currentPage,"page="+nextPage), "listSearchVideos", "")
+    except:
+        pass
     xbmcplugin.endOfDirectory(pluginhandle)
     if forceViewMode:
         xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
@@ -95,19 +141,19 @@ def listCats(type):
 
 
 def search():
-    keyboard = xbmc.Keyboard('', translation(30005))
+    keyboard = xbmc.Keyboard('', translation(30008))
     keyboard.doModal()
     if keyboard.isConfirmed() and keyboard.getText():
         search_string = keyboard.getText().replace(" ", "+")
         if language == "de":
-            url = 
"http://videos.arte.tv/de/do_search/videos/suche?q="+search_string
+            url = 
"http://www.arte.tv/guide/de/suchergebnisse?keyword="+search_string+"&page=1";
         elif language == "fr":
-            url = 
"http://videos.arte.tv/fr/do_search/videos/recherche?q="+search_string
-        listVideosOld(url)
+            url = 
"http://www.arte.tv/guide/fr/resultats-de-recherche?keyword="+search_string+"&page=1";
+        listSearchVideos(url)
 
 
 def searchWebLive():
-    keyboard = xbmc.Keyboard('', translation(30005))
+    keyboard = xbmc.Keyboard('', translation(30008))
     keyboard.doModal()
     if keyboard.isConfirmed() and keyboard.getText():
         search_string = keyboard.getText().replace(" ", "+")
@@ -163,42 +209,22 @@ def listWebLive(url):
         xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
 
 
-def playVideo(url):
-    url = url.replace("/videos/", "/do_delegate/videos/").replace(".html", 
",view,asPlayerXml.xml")
-    content = getUrl(url)
-    match = re.compile('<video lang="'+language+'" ref="(.+?)"', 
re.DOTALL).findall(content)
-    url = match[0]
-    content = getUrl(url)
-    match1 = re.compile('<url quality="hd">(.+?)</url>', 
re.DOTALL).findall(content)
-    match2 = re.compile('<url quality="sd">(.+?)</url>', 
re.DOTALL).findall(content)
-    urlNew = ""
-    if match1:
-        urlNew = match1[0]
-    elif match2:
-        urlNew = match2[0]
-    if urlNew != "":
-        urlNew = urlNew.replace("MP4:", "mp4:")
-        base = urlNew[:urlNew.find("mp4:")]
-        playpath = urlNew[urlNew.find("mp4:"):]
-        listitem = xbmcgui.ListItem(path=base+" playpath="+playpath+" swfVfy=1 
swfUrl=http://videos.arte.tv/blob/web/i18n/view/player_24-3188338-data-5168030.swf";)
-        xbmcplugin.setResolvedUrl(pluginhandle, True, listitem)
+def playVideoNew(url):
+    listitem = xbmcgui.ListItem(path=getStreamUrlNew(url))
+    xbmcplugin.setResolvedUrl(pluginhandle, True, listitem)
 
 
-def playVideoNew(url):
+def getStreamUrlNew(url):
     content = getUrl(url)
     match = re.compile('arte_vp_url="(.+?)">', re.DOTALL).findall(content)
-    url = match[0]
+    url = match[0].replace("/player/","/")
     content = getUrl(url)
-    match1 = re.compile('"RTMP_SQ_1":\\{"quality":"HD - 
720p","width":.+?,"height":.+?,"mediaType":"rtmp","mimeType":"application/x-fcs","bitrate":.+?,"streamer":"(.+?)","url":"(.+?)"',
 re.DOTALL).findall(content)
-    match2 = re.compile('"RTMP_MQ_1":\\{"quality":"SD - 
400p","width":.+?,"height":.+?,"mediaType":"rtmp","mimeType":"application/x-fcs","bitrate":.+?,"streamer":"(.+?)","url":"(.+?)"',
 re.DOTALL).findall(content)
+    match1 = re.compile('"HBBTV","VQU":"SQ","VMT":"mp4","VUR":"(.+?)"', 
re.DOTALL).findall(content)
+    match2 = re.compile('"HBBTV","VQU":"EQ","VMT":"mp4","VUR":"(.+?)"', 
re.DOTALL).findall(content)
     if match1 and maxVideoQuality == "720p":
-        base = match1[0][0]
-        playpath = match1[0][1]
+        return match1[0]
     elif match2:
-        base = match2[0][0]
-        playpath = match2[0][1]
-    listitem = xbmcgui.ListItem(path=base+" playpath=mp4:"+playpath)
-    xbmcplugin.setResolvedUrl(pluginhandle, True, listitem)
+        return match2[0]
 
 
 def queueVideo(url, name):
@@ -263,6 +289,10 @@ def getUrl(url, cookie=None):
     return link
 
 
+def translation(id):
+    return addon.getLocalizedString(id).encode('utf-8')
+
+
 def parameters_string_to_dict(parameters):
     paramDict = {}
     if parameters:
@@ -280,7 +310,7 @@ def addLink(name, url, mode, iconimage, desc="", 
duration=""):
     liz = xbmcgui.ListItem(name, iconImage="DefaultVideo.png", 
thumbnailImage=iconimage)
     liz.setInfo(type="Video", infoLabels={"Title": name, "Plot": desc, 
"Duration": duration})
     liz.setProperty('IsPlayable', 'true')
-    if useThumbAsFanart:
+    if useThumbAsFanart and iconimage!=icon:
         liz.setProperty("fanart_image", iconimage)
     liz.addContextMenuItems([(translation(30020), 
'RunPlugin(plugin://'+addonID+'/?mode=queueVideo&url='+urllib.quote_plus(u)+'&name='+urllib.quote_plus(name)+')',)])
     ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=u, 
listitem=liz)
@@ -300,14 +330,12 @@ mode = urllib.unquote_plus(params.get('mode', ''))
 url = urllib.unquote_plus(params.get('url', ''))
 name = urllib.unquote_plus(params.get('name', ''))
 
-if mode == 'listVideos':
-    listVideos(url)
-elif mode == 'listVideosNew':
+if mode == 'listVideosNew':
     listVideosNew(url)
+elif mode == 'listSearchVideos':
+    listSearchVideos(url)
 elif mode == 'listCats':
     listCats(url)
-elif mode == 'playVideo':
-    playVideo(url)
 elif mode == 'queueVideo':
     queueVideo(url, name)
 elif mode == 'playVideoNew':
diff --git a/plugin.video.arte_tv/resources/language/English/strings.xml 
b/plugin.video.arte_tv/resources/language/English/strings.xml
index 9161df8..5bb66e6 100644
--- a/plugin.video.arte_tv/resources/language/English/strings.xml
+++ b/plugin.video.arte_tv/resources/language/English/strings.xml
@@ -14,9 +14,9 @@
   <string id="30012">Concerts</string>
   <string id="30013">Pop, Rock, Electro</string>
   <string id="30014">Classic</string>
-  <string id="30015">Jazz & Blues</string>
+  <string id="30015">Jazz &amp; Blues</string>
   <string id="30016">World Music</string>
-  <string id="30017">Theater & Dance</string>
+  <string id="30017">Theater &amp; Dance</string>
   <string id="30018">Video is not available yet</string>
   <string id="30019">Video is no longer available</string>
   <string id="30020">Add to queue</string>
diff --git a/plugin.video.arte_tv/resources/language/German/strings.xml 
b/plugin.video.arte_tv/resources/language/German/strings.xml
index 1cd6286..df28bdd 100644
--- a/plugin.video.arte_tv/resources/language/German/strings.xml
+++ b/plugin.video.arte_tv/resources/language/German/strings.xml
@@ -14,7 +14,7 @@
   <string id="30012">Konzerte</string>
   <string id="30018">Video ist noch nicht verfuegbar</string>
   <string id="30019">Video ist nicht mehr verfuegbar</string>
-  <string id="30020">Zu Wiedergabeliste hinzufügen</string>
+  <string id="30020">In Abspielliste einreihen</string>
   <string id="30101">Sprache (Videos)</string>
   <string id="30104">View erzwingen</string>
   <string id="30106">Maximale Videoqualität</string>
diff --git a/plugin.video.arte_tv/resources/settings.xml 
b/plugin.video.arte_tv/resources/settings.xml
index 7cdd3b9..6184b04 100644
--- a/plugin.video.arte_tv/resources/settings.xml
+++ b/plugin.video.arte_tv/resources/settings.xml
@@ -1,7 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <settings>
    <setting id="language" type="enum" label="30101" values="DE|FR"/>
    <setting id="maxVideoQuality" type="enum" label="30106" values="480p|720p" 
default="1"/>
    <setting id="useThumbAsFanart" type="bool" label="30107" default="true"/>
-   <setting id="forceViewMode" type="bool" label="30104" default="true"/>
-   <setting id="viewMode" type="number" label="30105" default="500"/>
+   <setting id="forceView" type="bool" label="30104" default="true"/>
+   <setting id="viewID" type="number" label="30105" default="503"/>
 </settings>

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

Summary of changes:
 plugin.video.arte_tv/addon.xml                     |   12 +-
 plugin.video.arte_tv/changelog.txt                 |    3 +
 plugin.video.arte_tv/default.py                    |  170 ++++++++++++--------
 .../resources/language/English/strings.xml         |    4 +-
 .../resources/language/German/strings.xml          |    2 +-
 plugin.video.arte_tv/resources/settings.xml        |    5 +-
 6 files changed, 114 insertions(+), 82 deletions(-)


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to