/[projects]/misc/xbmc/plugin.video.todic/default.py
ViewVC logotype

Diff of /misc/xbmc/plugin.video.todic/default.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1829 by torben, Sun Aug 19 17:22:41 2012 UTC revision 1972 by torben, Thu Apr 18 16:18:22 2013 UTC
# Line 3  Line 3 
3    
4  '''  '''
5      Todic plugin for XBMC      Todic plugin for XBMC
6      Version 0.0.2      Version 0.0.9
7  '''  '''
8    
9  import sys  import sys
# Line 24  __addon__ = xbmcaddon.Addon(id='plugin.v Line 24  __addon__ = xbmcaddon.Addon(id='plugin.v
24  __key__ = __addon__.getSetting('xbmckey').lower()  __key__ = __addon__.getSetting('xbmckey').lower()
25  __backend__ = "http://todic.dk/xbmc.php?xbmckey=" + __key__  __backend__ = "http://todic.dk/xbmc.php?xbmckey=" + __key__
26  fanartImage = os.path.join(__addon__.getAddonInfo('path'), 'fanart.jpg')  fanartImage = os.path.join(__addon__.getAddonInfo('path'), 'fanart.jpg')
27    datapath = xbmc.translatePath('special://profile/addon_data/plugin.video.todic/')
28    
29    
30  class TodicPlayer(xbmc.Player):  class TodicPlayer(xbmc.Player):
# Line 74  def getText(nodelist): Line 75  def getText(nodelist):
75                  else:                  else:
76                          return nodelist[0].childNodes[0].nodeValue                          return nodelist[0].childNodes[0].nodeValue
77    
78    def SaveFile(path, data):
79            file = open(path,'w')
80            file.write(data)
81            file.close()
82    
83    
84  def open_url(url):  def open_url(url):
85          req = urllib2.Request(url)          req = urllib2.Request(url)
# Line 104  def rootMenu(): Line 110  def rootMenu():
110    
111    
112  def buildList(url,title, endlist=True):  def buildList(url,title, endlist=True):
113          print '[TODIC]:'+str(url)                  print '[TODIC]:'+str(url)
114    
115          link = open_url(url)          link = open_url(url)
116          doc = parseString(link)          doc = parseString(link)
# Line 127  def buildList(url,title, endlist=True): Line 133  def buildList(url,title, endlist=True):
133                  url =  getText( entry.getElementsByTagName("url") )                  url =  getText( entry.getElementsByTagName("url") )
134                  thumb = getText( entry.getElementsByTagName("cover") )                  thumb = getText( entry.getElementsByTagName("cover") )
135                  description = getText( entry.getElementsByTagName("description") )                  description = getText( entry.getElementsByTagName("description") )
136                  playcount = getText( entry.getElementsByTagName("playcount") )                  playcount = getText( entry.getElementsByTagName("playcount") )
137    
138                    if playcount == '':
139                            playcount = '0'
140                    playcount = int(playcount)
141    
                 name = name.encode('latin-1')  
                 description = description.encode('latin-1')  
142    
143  ##              print "name:" + name  ##              print "name:" + name
144  #               print "url:" + url  #               print "url:" + url
# Line 147  def buildList(url,title, endlist=True): Line 155  def buildList(url,title, endlist=True):
155                          infoLabels['playcount'] = playcount                          infoLabels['playcount'] = playcount
156                          listitem.setInfo('video', infoLabels)                          listitem.setInfo('video', infoLabels)
157    
158                    name = name.encode('UTF-8')
159                    description = description.encode('UTF-8')
160    
161    
162                  u = sys.argv[0] + "?mode=" + urllib.quote(mode) + "&name=" + urllib.quote(name) + "&url=" + urllib.quote(url)                  u = sys.argv[0] + "?mode=" + urllib.quote(mode) + "&name=" + urllib.quote(name) + "&url=" + urllib.quote(url)
163                  ok = xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url = u, listitem = listitem, isFolder = folder, totalItems = l)                  ok = xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url = u, listitem = listitem, isFolder = folder, totalItems = l)
164    
# Line 158  def buildList(url,title, endlist=True): Line 170  def buildList(url,title, endlist=True):
170    
171  def play_video(url, name):  def play_video(url, name):
172          xml = open_url(url)          xml = open_url(url)
173            print 'TODIC url: ' + str(url)
174            print 'TODIC xml: '+ xml
175    
176          doc = parseString(xml)          doc = parseString(xml)
177          url = getText( doc.getElementsByTagName("url") )          url = getText( doc.getElementsByTagName("url") )
178    
179          print '[TODIC]:'+str(url)          subtitleurl = getText( doc.getElementsByTagName("subtitles") )
180            subtitlesfile = os.path.join(datapath,'temp.srt')
181    
182            #if old srt file exists delete it first
183            if os.path.isfile(subtitlesfile):
184                    os.unlink(subtitlesfile)
185    
186            print '[TODIC] subs: '+str(subtitleurl)
187            if len(subtitleurl) > 0:
188                    subtitles = open_url(subtitleurl)
189                    SaveFile(subtitlesfile, subtitles)
190                    print 'TODIC downloaded subtitles'
191    
192    
193    
194          image = xbmc.getInfoImage( 'ListItem.Thumb' )          image = xbmc.getInfoImage( 'ListItem.Thumb' )
195          listitem = xbmcgui.ListItem(label = name , iconImage = 'DefaultVideo.png', thumbnailImage = image)          listitem = xbmcgui.ListItem(label = name , iconImage = 'DefaultVideo.png', thumbnailImage = image)
196          listitem.setInfo( type = "Video", infoLabels={ "Title": name } )          listitem.setInfo( type = "Video", infoLabels={ "Title": name } )
197    
198          player = TodicPlayer(xbmc.PLAYER_CORE_AUTO)          player = TodicPlayer(xbmc.PLAYER_CORE_AUTO)
199          player.play(str(url), listitem)          player.play(str(url), listitem)
200    
201            #kan ikke loade subtitles hvis foerend playeren koerer
202            count = 0
203            while not xbmc.Player().isPlaying():
204                    xbmc.sleep(500)
205                    count += 1
206                    if count > 10:
207                            break
208    
209    
210            if xbmc.Player().isPlaying():
211                    if os.path.isfile(subtitlesfile):
212                            player.setSubtitles(subtitlesfile)
213                            print 'TODIC started subtitles'
214                    else:
215                            player.disableSubtitles()
216    
217  #       player.callbackLoop()  #       player.callbackLoop()
218    
219    
# Line 250  except: Line 295  except:
295          pass          pass
296    
297  if url == 'refresh':  if url == 'refresh':
298          xbmc.output("[tvserver] Container.Refresh")          #xbmc.output("[tvserver] Container.Refresh") #20130418 xbmc.output virker ikke med XBMC12
299          xbmc.executebuiltin("Container.Refresh")          xbmc.executebuiltin("Container.Refresh")
300                    
301    

Legend:
Removed from v.1829  
changed lines
  Added in v.1972

  ViewVC Help
Powered by ViewVC 1.1.20