The branch, frodo has been updated
       via  dc67eb170a66e4976640e7216da20f07f35e64a0 (commit)
      from  3919c6475d1015848c47f11ce8402c132fbcba03 (commit)

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

commit dc67eb170a66e4976640e7216da20f07f35e64a0
Author: Martijn Kaijser <[email protected]>
Date:   Wed Dec 11 08:17:42 2013 +0100

    [plugin.video.orftvthek] 0.2.1

diff --git a/plugin.video.orftvthek/addon.xml b/plugin.video.orftvthek/addon.xml
index 7578096..a81323e 100755
--- a/plugin.video.orftvthek/addon.xml
+++ b/plugin.video.orftvthek/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.orftvthek" name="ORF TVthek" version="0.2.0" 
provider-name="sofaking">
+<addon id="plugin.video.orftvthek" name="ORF TVthek" version="0.2.1" 
provider-name="sofaking">
     <requires>
         <import addon="xbmc.python" version="2.1.0"/>
         <import addon="script.module.beautifulsoup"/>
diff --git a/plugin.video.orftvthek/changelog.txt 
b/plugin.video.orftvthek/changelog.txt
index 81e5e1b..2dc6839 100755
--- a/plugin.video.orftvthek/changelog.txt
+++ b/plugin.video.orftvthek/changelog.txt
@@ -1,3 +1,6 @@
+0.2.1
+- fixed video link parser
+
 0.2.0
 - adjusted the addon to the new orf tvthek website
 - mp4 streaming is now stable on all platforms!!!
diff --git a/plugin.video.orftvthek/default.py 
b/plugin.video.orftvthek/default.py
index eca189e..fb35d62 100755
--- a/plugin.video.orftvthek/default.py
+++ b/plugin.video.orftvthek/default.py
@@ -12,7 +12,7 @@ except:
 socket.setdefaulttimeout(30) 
 cache = StorageServer.StorageServer("plugin.video.orftvthek", 999999)
 
-version = "0.2.0"
+version = "0.2.1"
 plugin = "ORF-TVthek-" + version
 author = "sofaking"
  
@@ -21,8 +21,7 @@ settings = xbmcaddon.Addon(id='plugin.video.orftvthek')
 pluginhandle = int(sys.argv[1])
 basepath = settings.getAddonInfo('path')
 
-translation = settings.getLocalizedString
-playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
+
 base_url="http://tvthek.orf.at";
 
 forceView = settings.getSetting("forceView") == "true"
@@ -36,7 +35,7 @@ defaultbanner = "http://goo.gl/FG03G";
 defaultlogo = "http://goo.gl/FRLJK";
 
 opener = urllib2.build_opener()
-opener.addheaders = [('User-agent', 'Mozilla/5.0')]
+opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1) 
AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7')]
 playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO) 
 
 def parameters_string_to_dict(parameters):
@@ -49,21 +48,15 @@ def parameters_string_to_dict(parameters):
                 paramDict[paramSplits[0]] = paramSplits[1]
     return paramDict
 
-       
-def createPlaylistItem(banner):
-    parameters = {"mode" : "playList"}
-    u = sys.argv[0] + '?' + urllib.urlencode(parameters)
-    createListItem("[ %s ]" % 
(translation(30015)).encode("utf-8"),banner,(translation(30015)).encode("utf-8"),"","","",u,'false',False,False)
 
-
 def cleanText(string):
     string = string.replace('\\n', '').replace("&#160;"," 
").replace("&quot;","'").replace('&amp;', '&').replace('&#039;', '´')
     return string      
 
-def 
createListItem(title,banner,description,duration,date,channel,videourl,playable,folder,addToPlaylist):
 
+def 
createListItem(title,banner,description,duration,date,channel,videourl,playable,folder):
 
     if banner == '':
         banner = defaultbanner
     if description == '':
-        description = (translation(30008)).encode("utf-8")
+        description = "Keine Beschreibung verfügbar"
     liz=xbmcgui.ListItem(cleanText(title), iconImage=banner, 
thumbnailImage=banner)
     liz.setInfo( type="Video", infoLabels={ "Title": cleanText(title) } )
     liz.setInfo( type="Video", infoLabels={ "Tvshowtitle": cleanText(title) } )
@@ -76,29 +69,31 @@ def 
createListItem(title,banner,description,duration,date,channel,videourl,playa
     liz.setProperty('fanart_image',defaultbackdrop)
     liz.setProperty('IsPlayable', playable)
     xbmcplugin.addDirectoryItem(handle=pluginhandle, url=videourl, 
listitem=liz, isFolder=folder)
-    if addToPlaylist:
-        playlist.add(videourl,liz)
+
+
+def addFile(name,videourl,banner,summary,runtime,backdrop):
+    createListItem(name,banner,summary,runtime,'','',videourl,'true',False,'')
 
 def addDirectory(title,banner,description,link,mode):
     parameters = {"link" : link,"title" : cleanText(title),"banner" : 
banner,"backdrop" : defaultbackdrop, "mode" : mode}
     u = sys.argv[0] + '?' + urllib.urlencode(parameters)
-    createListItem(title,banner,description,'','','',u,'false',True,False)
+    createListItem(title,banner,description,'','','',u,'false',True)
 
 def getLinks(url,banner):
-    playlist.clear()
     url = urllib.unquote(url)
     banner = urllib.unquote(banner)
     arrayReg = re.compile("{.*?}")
     html = opener.open(url)
     html = html.read()
     soup = BeautifulSoup(html)
-    videobox = soup.find('div',{'class':'player_viewport'})
-    data = videobox.findAll('div')
+    data = soup.find('div',{'class':'jsb_ jsb_VideoPlaylist'})
     videoUrls = []
-    array = arrayReg.findall(str(data[len(data)-2]))
+    array = arrayReg.findall(str(data))
        #get video links
     for item in array:
         split = 
item.replace("{","").replace("}","").replace(",","").replace(":","").replace("\/","/").split('"')
+        if split[0] == "quality":
+            print "BOOM"
         if split[1] == "quality" and split[3] == "Q6A":
             if len(split) > 13 and split[21] == "protocol" and split[23] == 
"http":
                 if split[9] == "src":
@@ -113,11 +108,10 @@ def getLinks(url,banner):
         bcast_date = bcast.find('span',{'class':'meta meta_date'})
         bcast_time = bcast.find('span',{'class':'meta meta_time'})
         if bcast_time != None and bcast_date != None:
-            bcast_desc = "%s %s - %s\n\n" % 
((translation(30009)).encode("utf-8"),bcast_date.text.encode('UTF-8'),bcast_time.text.encode('UTF-8'))
+            bcast_desc = "Sendung vom %s - %s\n" % 
(bcast_date.text.encode('UTF-8'),bcast_time.text.encode('UTF-8'))
     #check if there are more playlist items
     descbox = soup.find('div',{'class':'base_list_wrapper mod_playlist'})
     if descbox != None:
-        createPlaylistItem(banner)
         videoDescs = []
         details = descbox.findAll('div',{'class':'details'})
         for detail in details:
@@ -128,14 +122,14 @@ def getLinks(url,banner):
                videoTitles.append(title.text.encode('UTF-8'))
         i = 0
         for url in videoTitles:
-            
createListItem(videoTitles[i],banner,"%s%s"%(bcast_desc,videoDescs[i]),'','','',videoUrls[i],'true',False,True)
+            
createListItem(videoTitles[i],banner,"%s%s"%(bcast_desc,videoDescs[i]),'','','',videoUrls[i],'true',False)
             i = i + 1
-    #only one item on video page
+    #only one item one video page
     else:
         title = soup.find('h3',{'class':'video_headline'}).text.encode('UTF-8')
         desc = 
soup.find('div',{'class':'details_description'}).text.encode('UTF-8')
         link = videoUrls[0]
-        
createListItem(title,banner,"%s%s"%(bcast_desc,desc),'','','',link,'true',False,False)
+        
createListItem(title,banner,"%s%s"%(bcast_desc,desc),'','','',link,'true',False)
     listCallback()
        
 def listCallback():
@@ -145,20 +139,20 @@ def listCallback():
        xbmc.executebuiltin(defaultViewMode)
 
 def getMainMenu():
-    
addDirectory((translation(30000)).encode("utf-8"),defaultbanner,'',"","getNewShows")
-    
addDirectory((translation(30001)).encode("utf-8"),defaultbanner,'',"","getAktuelles")
-    
addDirectory((translation(30002)).encode("utf-8"),defaultbanner,'',"","getSendungen")
-    
addDirectory((translation(30003)).encode("utf-8"),defaultbanner,'',"","getThemen")
-    
addDirectory((translation(30004)).encode("utf-8"),defaultbanner,'',"","getLive")
-    
addDirectory((translation(30005)).encode("utf-8"),defaultbanner,'',"","getTipps")
-    
addDirectory((translation(30006)).encode("utf-8"),defaultbanner,'',"","getMostViewed")
+    addDirectory("Neuste Sendungen",defaultbanner,'',"","getNewShows")
+    addDirectory("Aktuell",defaultbanner,'',"","getAktuelles")
+    addDirectory("Sendungen",defaultbanner,'',"","getSendungen")
+    addDirectory("Themen",defaultbanner,'',"","getThemen")
+    addDirectory("Live",defaultbanner,'',"","getLive")
+    addDirectory("ORF Tipps",defaultbanner,'',"","getTipps")
+    addDirectory("Meist gesehen",defaultbanner,'',"","getMostViewed")
     #addDirectory("Sendung verpasst?",defaultbanner,"","getArchiv")
-    
addDirectory((translation(30007)).encode("utf-8"),defaultbanner,'',"","searchPhrase")
+    addDirectory("Suchen",defaultbanner,'',"","searchPhrase")
     listCallback()
 
 def getCategoryList(category,banner):
     progressbar = xbmcgui.DialogProgress()
-    progressbar.create((translation(30010)).encode("utf-8"))
+    progressbar.create('Ladevorgang' )
     progressbar.update(0)
 
     url =  urllib.unquote(category)
@@ -175,7 +169,7 @@ def getCategoryList(category,banner):
     new_time = new.find('span',{'class':'meta meta_time'}).text.encode('UTF-8')
     new_link = url
     new_title = "%s - %s" % (showname,new_date)
-    new_desc = '%s %s - %s\n\n%s: %s' % 
((translation(30009)).encode("utf-8"),new_date,new_time,(translation(30011)).encode("utf-8"),new_duration)
+    new_desc = 'Sendung vom %s - %s\nLaufzeit: %s' % 
(new_date,new_time,new_duration)
 
     addDirectory(new_title,banner,new_desc,new_link,"openSeries")
        
@@ -195,7 +189,7 @@ def getCategoryList(category,banner):
         title = "%s - %s" % (showname,date)
         title = "%s - %s" % (showname,date)
         link = item.find('a')['href']
-        desc = "%s %s - %s\n\n%s: %s" % 
((translation(30009)).encode("utf-8"),date,time,(translation(300011)).encode("utf-8"),duration)
+        desc = "Sendung vom %s - %s\nLaufzeit: %s" % (date,time,duration)
         addDirectory(title,banner,desc,link,"openSeries")
     listCallback()
 
@@ -217,19 +211,17 @@ def getLiveStreams():
     for item in epgbox:
         program = item.get('class', []).split(" ")[2].encode('UTF-8').upper()
         banner = ''
-        title = item.find('h4')
-        if title != None:
-            title = title.text.encode('UTF-8')
-            time = 
item.find('div',{'class':'broadcast_information'}).find('span').text.encode('UTF-8').replace("Uhr","").replace(".",":").strip()
-            desc = "%s\n\n%s" % (time,title)
-            link = liveurls[program]
-            title = "[%s] %s (%s)" % (program,title,time)
-            
createListItem(title,banner,desc,'',desc,program,link,'true',False,False)
+        title = item.find('h4').text.encode('UTF-8')
+        time = 
item.find('div',{'class':'broadcast_information'}).find('span').text.encode('UTF-8').replace("Uhr","").replace(".",":").strip()
+        link = liveurls[program]
+        
+        title = "[%s] %s (%s)" % (program,title,time)
+        
createListItem(title,banner,'djsjsj',time,'jsdjjs',program,link,'true',False)
     listCallback()
 
 def getRecentlyAdded():
     progressbar = xbmcgui.DialogProgress()
-    progressbar.create((translation(30010)).encode("utf-8"))
+    progressbar.create('Ladevorgang' )
     progressbar.update(0)
     html = opener.open(base_url)
     html = html.read()
@@ -255,7 +247,7 @@ def getRecentlyAdded():
 
 def getThemenListe(url):
     progressbar = xbmcgui.DialogProgress()
-    progressbar.create((translation(30010)).encode("utf-8"))
+    progressbar.create('Ladevorgang' )
     progressbar.update(0)
     url = urllib.unquote(url)
     html = opener.open(url)
@@ -287,11 +279,11 @@ def getThemenListe(url):
         if desc != None:
             desc = desc.text.encode('UTF-8')
         else:
-            desc = (translation(30008)).encode("utf-8")
+            desc = 'Keine Beschreibung verfügbar'
         date = topic.find('time').text.encode('UTF-8')
         time = topic.find('span',{'class':'meta 
meta_duration'}).text.encode('UTF-8')
                
-        desc = "%s: %s \n%s: %s \n\n%s" % 
((translation(30016)).encode("utf-8"),date,(translation(30017)).encode("utf-8"),time,desc)
+        desc = "Datum: %s \nDauer: %s \n\n%s" % (date,time,desc)
         
         addDirectory(title,image,desc,link,"openSeries")
     listCallback()
@@ -301,14 +293,14 @@ def playFile():
     player.play(playlist)
     if not player.isPlayingVideo():
         d = xbmcgui.Dialog()
-        d.ok((translation(30012)).encode("utf-8"), 
(translation(30013)).encode("utf-8"),'')
+        d.ok('VIDEO QUEUE EMPTY', 'The XBMC video queue is empty.','Add more 
links to video queue.')
 
 
 
 
 def getThemen():
     progressbar = xbmcgui.DialogProgress()
-    progressbar.create((translation(30010)).encode("utf-8"))
+    progressbar.create('Ladevorgang' )
     progressbar.update(15)
        
     url = "http://tvthek.orf.at/topics";
@@ -357,12 +349,11 @@ def programUrlTitle(url):
     return title[2].replace("-"," ")
                
 def search():
-    addDirectory("%s ..." % 
(translation(30007)).encode("utf-8"),'','',"","searchNew")
+    addDirectory("Suchen ...",defaultbanner,defaultbackdrop,"","searchNew")
     cache.table_name = "searchhistory"
     some_dict = cache.get("searches").split("|")
     for str in reversed(some_dict):
-        if str != '':
-            addDirectory(str.encode('UTF-8'),"","",str.replace(" 
","+"),"searchNew")
+        addDirectory(str.encode('UTF-8'),defaultbanner,"",str.replace(" 
","+"),"searchNew")
     listCallback()
        
 def searchTV():
@@ -376,13 +367,13 @@ def searchTV():
       searchurl = "%s/search?q=%s"%(base_url,keyboard_in.replace(" ","+"))
       getTableResults(searchurl)
     else:
-      addDirectory((translation(30014)).encode("utf-8"),defaultlogo,"","","")
+      addDirectory("Keine Ergebnisse",defaultlogo,"","","")
     listCallback()
 
 def getTableResults(url):
     url = urllib.unquote(url)
     progressbar = xbmcgui.DialogProgress()
-    progressbar.create((translation(30010)).encode("utf-8"))
+    progressbar.create('Ladevorgang' )
     progressbar.update(0)
 
     html = opener.open(url)
@@ -391,8 +382,7 @@ def getTableResults(url):
     tipps = soup.findAll('article',{'class':'item'})
     i = 1
     feedcount = len(tipps)
-    if feedcount > 0:
-      for tip in tipps:
+    for tip in tipps:
         if progressbar.iscanceled() :
             xbmcplugin.endOfDirectory(pluginhandle)
             progressbar.close()
@@ -407,15 +397,13 @@ def getTableResults(url):
             date = tip.find('time',{'class':'meta 
meta_date'}).text.encode('UTF-8')
             time = tip.find('span',{'class':'meta 
meta_time'}).text.encode('UTF-8')
             #title = "%s | %s %s" % (title,date,time)
-            desc = '%s %s - %s\n\n%s' % 
((translation(30009)).encode("utf-8"),date,time,desc)
+            desc = 'Sendung vom %s - %s\n%s' % (date,time,desc)
         else:
-            desc = (translation(30008)).encode("utf-8")
+            desc = "Keine Beschreibung"
             
         image = 
tip.find('img')['src'].replace("width=395","width=500").replace("height=209.07070707071","height=265").replace("height=77.753731343284","height=265").replace("width=138","width=500")
         link = tip.find('a')['href']
         addDirectory(title,image,desc,link,"openSeries")
-    else:
-      addDirectory((translation(30014)).encode("utf-8"),'',"","","")
     listCallback()
                
                
@@ -431,7 +419,7 @@ def searchTVHistory(link):
       searchurl = "%s/search?q=%s"%(base_url,keyboard_in.replace(" ","+"))
       getTableResults(searchurl)
     else:
-      addDirectory((translation(30014)).encode("utf-8"),'','',"","")
+      addDirectory("Keine Ergebnisse",defaultlogo,defaultbackdrop,"","")
     listCallback()
     
        
@@ -481,5 +469,6 @@ elif mode == 'searchNew':
         searchTVHistory(urllib.unquote(link));
     else:
         searchTV()
+       
 else:
     getMainMenu()

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

Summary of changes:
 plugin.video.orftvthek/addon.xml     |    2 +-
 plugin.video.orftvthek/changelog.txt |    3 +
 plugin.video.orftvthek/default.py    |  111 +++++++++++++++-------------------
 3 files changed, 54 insertions(+), 62 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