/[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 1799 by torben, Sun May 6 16:21:11 2012 UTC revision 2440 by torben, Mon Mar 9 20:43:53 2015 UTC
# Line 3  Line 3 
3    
4  '''  '''
5      Todic plugin for XBMC      Todic plugin for XBMC
6      Version 0.0.2      Version 0.0.10
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 100  def rootMenu(): Line 106  def rootMenu():
106          u = sys.argv[0] + "?mode=10&name="          u = sys.argv[0] + "?mode=10&name="
107          ok = xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url = u, listitem = listitem, isFolder = True)          ok = xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url = u, listitem = listitem, isFolder = True)
108    
109            #add search series
110            listitem = xbmcgui.ListItem(label = "Søg Serier ...", iconImage = 'DefaultFolder.png', thumbnailImage = 'DefaultFolder.png')
111            listitem.setProperty('Fanart_Image', fanartImage)
112    
113            u = sys.argv[0] + "?mode=11&name="
114            ok = xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url = u, listitem = listitem, isFolder = True)
115    
116          xbmcplugin.endOfDirectory(int(sys.argv[1]))          xbmcplugin.endOfDirectory(int(sys.argv[1]))
117    
118    
119  def buildList(url,title, endlist=True):  def buildList(url,title, endlist=True):
120          print '[TODIC]:'+str(url)                  print '[TODIC]:'+str(url)
121    
122          link = open_url(url)          link = open_url(url)
123          doc = parseString(link)          doc = parseString(link)
# Line 118  def buildList(url,title, endlist=True): Line 131  def buildList(url,title, endlist=True):
131                  mode = '1'                  mode = '1'
132                  folder = True                  folder = True
133    
134    
135          entries = doc.getElementsByTagName("entry")          entries = doc.getElementsByTagName("entry")
136          l=len(entries)          l=len(entries)
137          description = ''          description = ''
# Line 126  def buildList(url,title, endlist=True): Line 140  def buildList(url,title, endlist=True):
140                  url =  getText( entry.getElementsByTagName("url") )                  url =  getText( entry.getElementsByTagName("url") )
141                  thumb = getText( entry.getElementsByTagName("cover") )                  thumb = getText( entry.getElementsByTagName("cover") )
142                  description = getText( entry.getElementsByTagName("description") )                  description = getText( entry.getElementsByTagName("description") )
143                    playcount = getText( entry.getElementsByTagName("playcount") )
144    
145                    if playcount == '':
146                            playcount = '0'
147                    playcount = int(playcount)
148    
                 name = name.encode('latin-1')  
                 description = description.encode('latin-1')  
149    
150  ##              print "name:" + name  ##              print "name:" + name
151  #               print "url:" + url  #               print "url:" + url
# Line 141  def buildList(url,title, endlist=True): Line 158  def buildList(url,title, endlist=True):
158                  if mode == '50':                  if mode == '50':
159                          infoLabels = {}                          infoLabels = {}
160                          infoLabels['title'] = name                          infoLabels['title'] = name
161                          infoLabels['plot'] = description                                  infoLabels['plot'] = description
162                            infoLabels['playcount'] = playcount
163                          listitem.setInfo('video', infoLabels)                          listitem.setInfo('video', infoLabels)
164    
165                    name = name.encode('UTF-8')
166                    description = description.encode('UTF-8')
167    
168    
169                  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)
170                  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)
171    
# Line 155  def buildList(url,title, endlist=True): Line 177  def buildList(url,title, endlist=True):
177    
178  def play_video(url, name):  def play_video(url, name):
179          xml = open_url(url)          xml = open_url(url)
180            print 'TODIC url: ' + str(url)
181            print 'TODIC xml: '+ xml
182    
183          doc = parseString(xml)          doc = parseString(xml)
184          url = getText( doc.getElementsByTagName("url") )          url = getText( doc.getElementsByTagName("url") )
185    
186          print '[TODIC]:'+str(url)          subtitleurl = getText( doc.getElementsByTagName("subtitles") )
187            subtitlesfile = os.path.join(datapath,'temp.srt')
188    
189            #if old srt file exists delete it first
190            if os.path.isfile(subtitlesfile):
191                    os.unlink(subtitlesfile)
192    
193            print '[TODIC] subs: '+str(subtitleurl)
194            if len(subtitleurl) > 0:
195                    subtitles = open_url(subtitleurl)
196                    SaveFile(subtitlesfile, subtitles)
197                    print 'TODIC downloaded subtitles'
198    
199    
200    
201          image = xbmc.getInfoImage( 'ListItem.Thumb' )          image = xbmc.getInfoImage( 'ListItem.Thumb' )
202          listitem = xbmcgui.ListItem(label = name , iconImage = 'DefaultVideo.png', thumbnailImage = image)          listitem = xbmcgui.ListItem(label = name , iconImage = 'DefaultVideo.png', thumbnailImage = image)
203          listitem.setInfo( type = "Video", infoLabels={ "Title": name } )          listitem.setInfo( type = "Video", infoLabels={ "Title": name } )
204    
205          player = TodicPlayer(xbmc.PLAYER_CORE_AUTO)          player = TodicPlayer(xbmc.PLAYER_CORE_AUTO)
206          player.play(str(url), listitem)          player.play(str(url), listitem)
207    
208            #kan ikke loade subtitles hvis foerend playeren koerer
209            count = 0
210            while not xbmc.Player().isPlaying():
211                    xbmc.sleep(500)
212                    count += 1
213                    if count > 10:
214                            break
215    
216    
217            if xbmc.Player().isPlaying():
218                    if os.path.isfile(subtitlesfile):
219                            player.setSubtitles(subtitlesfile)
220                            print 'TODIC started subtitles'
221                    else:
222                            player.disableSubtitles()
223    
224  #       player.callbackLoop()  #       player.callbackLoop()
225    
226    
# Line 181  def search(): Line 236  def search():
236    
237                  buildList(url, "søgning")                  buildList(url, "søgning")
238    
239    def searchSeries():
240            search = getUserInput("Todic Serie Søgning")
241    
242            if (search != None and search != ""):
243                    url = __backend__ + "&action=searchseries&search=" + urllib.quote_plus(search)
244    
245                    #print "[TODIC] Search start: " + search
246                    #print "[TODIC] Search url: " + url
247    
248                    buildList(url, "serie søgning")
249    
250                    
251    
252    
# Line 246  try: Line 312  try:
312  except:  except:
313          pass          pass
314    
315    try:
316            open_url("http://todic.dk")
317    except:
318            showMessage("Fejl", "Kunne ikke forbinde til todic.dk")
319            exit()
320                            
321    
322    if url == 'refresh':
323            #xbmc.output("[tvserver] Container.Refresh") #20130418 xbmc.output virker ikke med XBMC12
324            xbmc.executebuiltin("Container.Refresh")
325            
326    
327  if mode == None:  elif mode == None:
328          #build main menu          #build main menu
329          rootMenu()          rootMenu()
330                
# Line 257  elif mode == 1: Line 334  elif mode == 1:
334    
335  elif mode == 10:  elif mode == 10:
336          search()          search()
337    
338    elif mode == 11:
339            searchSeries()
340                    
341    
342  elif mode == 50:  elif mode == 50:

Legend:
Removed from v.1799  
changed lines
  Added in v.2440

  ViewVC Help
Powered by ViewVC 1.1.20