Advertisement
Guest User

Untitled

a guest
Nov 5th, 2010
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.89 KB | None | 0 0
  1. import urllib,urllib2,re,xbmcplugin,xbmcgui,xbmcaddon
  2.  
  3. __settings__ = xbmcaddon.Addon(id='plugin.video.twit')
  4. __language__ = __settings__.getLocalizedString
  5.  
  6.  
  7. def CATEGORIES():
  8. addLink(__language__(30017),'http://bglive-a.bitgravity.com/twit/live/high','http://twit.tv/sites/all/themes/twit/img/logo.gif')
  9. addDir(__language__(30000),'http://twit.tv/twit',1,'http://static.mediafly.com/publisher/images/ba85558acd844c7384921f9f96989a37/icon-600x600.png')
  10. addDir(__language__(30001),'http://twit.tv/tnt',1,'http://static.mediafly.com/publisher/images/9ff0322cc0444e599a010cdb9005d90a/icon-600x600.png')
  11. addDir(__language__(30002),'http://twit.tv/fc',1,'http://static.mediafly.com/publisher/images/f7f40bcf20c742cfb55cbccb56c2c68c/icon-600x600.png')
  12. addDir(__language__(30003),'http://twit.tv/ipad',1,'http://static.mediafly.com/publisher/images/201bc64beb6b4956971650fd1462a704/icon-600x600.png')
  13. addDir(__language__(30004),'http://twit.tv/gtt',1,'http://static.mediafly.com/publisher/images/0cc717b3cc94406a885e5df42cac2b13/icon-600x600.png')
  14. addDir(__language__(30005),'http://twit.tv/twig',1,'http://static.mediafly.com/publisher/images/8248233e64fc4c68b722be0ec75d637d/icon-600x600.png')
  15. addDir(__language__(30006),'http://twit.tv/ww',1,'http://static.mediafly.com/publisher/images/ad659facf4cb4fe795b595d9b4275daf/icon-600x600.png')
  16. addDir(__language__(30007),'http://twit.tv/mbw',1,'http://static.mediafly.com/publisher/images/a24b7b336fb14a2ba3f1e31223f622ac/icon-600x600.png')
  17. addDir(__language__(30008),'http://twit.tv/ttg',1,'http://static.mediafly.com/publisher/images/d51aaf03dcfe4502a49e885d4201c278/icon-600x600.png')
  18. addDir(__language__(30009),'http://twit.tv/sn',1,'http://static.mediafly.com/publisher/images/1ac666ad22d940239754fe953207fb42/icon-600x600.png')
  19. addDir(__language__(30010),'http://twit.tv/natn',1,'http://static.mediafly.com/publisher/images/7f7185fe4b564de7a6c79f8f57bb59eb/icon-600x600.png')
  20. addDir(__language__(30011),'http://twit.tv/dgw',1,'http://static.mediafly.com/publisher/images/72acf86f350b40c5b5fd132dcacc78be/icon-600x600.png')
  21. addDir(__language__(30012),'http://twit.tv/nsfw',1,'http://static.mediafly.com/publisher/images/54f4a471ae6c418d89647968a2ea9c91/icon-600x600.png')
  22. addDir(__language__(30013),'http://twit.tv/dksh',1,'http://static.mediafly.com/publisher/images/c9ed18a67b134406a4d5fd357db8b0c9/icon-600x600.png')
  23. addDir(__language__(30014),'http://twit.tv/floss',1,'http://static.mediafly.com/publisher/images/06cecab60c784f9d9866f5dcb73227c3/icon-600x600.png')
  24. addDir(__language__(30015),'http://twit.tv/twil',1,'http://static.mediafly.com/publisher/images/b2911bcc34174461ba970d2e38507340/icon-600x600.png')
  25. addDir(__language__(30016),'http://twit.tv/specials',1,'http://static.mediafly.com/publisher/images/eed22d09b9524474ac49bc022b556b2b/icon-600x600.png')
  26.  
  27.  
  28.  
  29. def INDEX(url):
  30. req = urllib2.Request(url)
  31. req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3')
  32. response = urllib2.urlopen(req)
  33. link=response.read()
  34. response.close()
  35. match=re.compile('<h3 class="podcast-date">.+?</h3>\n <h2><a href="(.+?)" title="(.+?)" alt=".+?">.+?</a></h2>\n <p>.+?</p>\n').findall(link)
  36. for url,name in match:
  37. addDir(name,url,2,'',)
  38.  
  39. def VIDEOLINKS(url,name):
  40. req = urllib2.Request('http://twit.tv'+url)
  41. req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3')
  42. response = urllib2.urlopen(req)
  43. link=response.read()
  44. response.close()
  45. match=re.compile('<div class="download"><a href="(.+?)">Download Video \(\High\)\</a>').findall(link)
  46. for url in match:
  47. addLink(name,url,'')
  48.  
  49. def get_params():
  50. param=[]
  51. paramstring=sys.argv[2]
  52. if len(paramstring)>=2:
  53. params=sys.argv[2]
  54. cleanedparams=params.replace('?','')
  55. if (params[len(params)-1]=='/'):
  56. params=params[0:len(params)-2]
  57. pairsofparams=cleanedparams.split('&')
  58. param={}
  59. for i in range(len(pairsofparams)):
  60. splitparams={}
  61. splitparams=pairsofparams[i].split('=')
  62. if (len(splitparams))==2:
  63. param[splitparams[0]]=splitparams[1]
  64.  
  65. return param
  66.  
  67.  
  68.  
  69.  
  70. def addLink(name,url,iconimage):
  71. ok=True
  72. liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=iconimage)
  73. liz.setInfo( type="Video", infoLabels={ "Title":name } )
  74. ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=liz)
  75. return ok
  76.  
  77.  
  78. def addDir(name,url,mode,iconimage):
  79. u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)
  80. ok=True
  81. liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png", thumbnailImage=iconimage)
  82. liz.setInfo( type="Video", infoLabels={ "Title": name } )
  83. ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
  84. return ok
  85.  
  86.  
  87. params=get_params()
  88. url=None
  89. name=None
  90. mode=None
  91.  
  92. try:
  93. url=urllib.unquote_plus(params["url"])
  94. except:
  95. pass
  96. try:
  97. name=urllib.unquote_plus(params["name"])
  98. except:
  99. pass
  100. try:
  101. mode=int(params["mode"])
  102. except:
  103. pass
  104.  
  105. print "Mode: "+str(mode)
  106. print "URL: "+str(url)
  107. print "Name: "+str(name)
  108.  
  109. if mode==None or url==None or len(url)<1:
  110. print ""
  111. CATEGORIES()
  112.  
  113. elif mode==1:
  114. print ""+url
  115. INDEX(url)
  116.  
  117. elif mode==2:
  118. print ""+url
  119. VIDEOLINKS(url,name)
  120.  
  121. xbmcplugin.endOfDirectory(int(sys.argv[1]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement