Advertisement
Guest User

Untitled

a guest
Jun 6th, 2015
470
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.48 KB | None | 0 0
  1. import urllib,urllib2,sys,re,xbmcplugin,xbmcgui,xbmcaddon,urlresolver
  2. #password=xbmcplugin.getSetting(int(sys.argv[1]), 'password')
  3. username=xbmcplugin.getSetting(int(sys.argv[1]), 'username')
  4. firstrun=xbmcplugin.getSetting(int(sys.argv[1]), 'firstrun')
  5. BASE = "http://mykodi.co.uk/xstream"
  6. ADDON = xbmcaddon.Addon(id='plugin.video.iptvname')
  7. event=urllib.urlopen('%s/ppvname.php'% (BASE)).read()
  8. eventdescription=urllib.urlopen('%s/ppvdescription.php'% (BASE)).read()
  9. eventon=urllib.urlopen('%s/ppvon.php'% (BASE)).read()
  10. eventurl=urllib.urlopen('%s/ppvurl.php'% (BASE)).read()
  11.  
  12. def CATEGORIES():
  13. if firstrun=="true":
  14. dialog = xbmcgui.Dialog()
  15. dialog.ok("Welcome To XstreamSports", " To Get Started Please Enter Email ")
  16. email=Search('username')
  17. ADDON.setSetting('username',email)
  18. ADDON.setSetting('firstrun','false')
  19. addDir('%s [B][/B]'%(event),'PPV',5,'')
  20. addDir('Search','/browse.php?q=',1,'')
  21. addDir('Channels','/channelshow.php',1,'')
  22. addDir('On-Demand','/vodshow.php',11,'')
  23. addDir2('Settings','settings',3,'')
  24. addDir2('About','about',6,'')
  25. addDir2('Help','about',7,'')
  26. addDir2('Contact Us','about',12,'')
  27. # if firstrun=="false":
  28. # addDir2('Logout','login',9,'')
  29. # else:
  30. # addDir2('Login','login',4,'')
  31.  
  32.  
  33.  
  34. def INDEX(url):
  35. if url=="/browse.php?q=":
  36. searchString = addSearch()
  37. url="/browse.php?q="+searchString
  38. after = url
  39. url = BASE + url
  40. req = urllib2.Request(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. match=re.compile('<a href="(.+?)"><img class="thumbnail_image" src="(.+?)" alt="(.+?)"').findall(link)
  45. for url,thumbnail,name in match:
  46. req = urllib2.Request(url)
  47. 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')
  48. response = urllib2.urlopen(req)
  49. link=response.read()
  50. response.close()
  51. match=re.compile('file: "(.+?)",').findall(link)
  52. for url in match:
  53. addLink(name,url,thumbnail,"")
  54. match=re.compile('src="http://www.youtube.com/embed/(.+?)?rel=0').findall(link)
  55. for url in match:
  56. youtubeurl = 'plugin://plugin.video.youtube/?action=play_video&videoid=%s' % url
  57. addLink(name,youtubeurl,thumbnail,"")
  58. def vod(url):
  59. if url=="browse?q=":
  60. searchString = addSearch()
  61. url="browse?q="+searchString
  62. after = url
  63. url = BASE + url
  64. req = urllib2.Request(url)
  65. 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')
  66. response = urllib2.urlopen(req)
  67. link=response.read()
  68. match=re.compile('<a href="(.+?)"><img class="thumbnail_image" src="(.+?)" alt="(.+?)"').findall(link)
  69. for url,thumbnail,name in match:
  70. req = urllib2.Request(url)
  71. 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')
  72. response = urllib2.urlopen(req)
  73. link=response.read()
  74. response.close()
  75. match=re.compile('file: "(.+?)",').findall(link)
  76. for url in match:
  77. addDir2(name,url,8,thumbnail)
  78. #def SIGNIN():
  79. # dialog = xbmcgui.Dialog()
  80. # if dialog.yesno("IPTV MANGAER", 'Do you Wish To Sign In','', "",'Close','Sign In'):
  81. # email=Search('username')
  82. # ADDON.setSetting('username',email)
  83. # password=Search('Password')
  84. # ADDON.setSetting('password',password)
  85. # ADDON.setSetting('use_account','true')
  86. # dialog.ok("Thank You", " Thank You Please Exit And Re-enter Plugin ")
  87. # dialog.ok("Warning", " We Log Your Ip When Signing In So Dont Share Accounts ")
  88. # ADDON.setSetting('firstrun','false')
  89. #
  90. # else:
  91. # return
  92. def PPV():
  93. dialog = xbmcgui.Dialog()
  94. if eventon=="0":
  95. dialog.ok("Not Started", "Sorry The Event Has Not Started")
  96. else:
  97. if dialog.yesno("%s"%(event), '%s'%(eventdescription),'', "",'More Info','WATCH NOW'):
  98. addLink('[COLOR yellow][B]Play[/B][/COLOR]','%s'%(eventurl),'',"")
  99.  
  100. else:
  101. return
  102. def about():
  103. showText('About Xstream Sports','ss')
  104. def help():
  105. showText('Help Infomation','ss')
  106. #def LOGOUT():
  107. # dialog = xbmcgui.Dialog()
  108. # if dialog.yesno("XstreamSports", 'Do you Wish To Logout','', "",'Close','Logout'):
  109. # ADDON.setSetting('username','')
  110. # ADDON.setSetting('password','')
  111. # ADDON.setSetting('firstrun','true')
  112. # dialog.ok("Logged Out", "You Are Now Logged Out")
  113. # ADDON.setSetting('firstrun','true')
  114. # else:
  115. # return
  116. def showText(heading, text):
  117. id = 10147
  118. xbmc.executebuiltin('ActivateWindow(%d)' % id)
  119. xbmc.sleep(100)
  120. win = xbmcgui.Window(id)
  121. retry = 50
  122. while (retry > 0):
  123. try:
  124. xbmc.sleep(10)
  125. retry -= 1
  126. win.getControl(1).setLabel(heading)
  127. win.getControl(5).setText(text)
  128. return
  129. except:
  130. pass
  131.  
  132. def Search(name):
  133. search_entered = ''
  134. keyboard = xbmc.Keyboard(search_entered, 'Please Enter '+str(name))
  135. keyboard.doModal()
  136. if keyboard.isConfirmed():
  137. search_entered = keyboard.getText().replace(' ','%20')
  138. if search_entered == None:
  139. return False
  140. return search_entered
  141. def openSettings():
  142. ADDON.openSettings()
  143. def contact():
  144. dialog = xbmcgui.Dialog()
  145. ret = dialog.select('Choose a Department', ['Account Problems', 'Report Dead Link', 'Other Help'])
  146. message=Search('Message')
  147. if dialog.yesno("[B]Do You Want To Send[/B]", '[B]Message:[/B]%s'%(message).replace('%20',' '),'', "",'Scrap','Send'):
  148. sendurl=urllib.urlopen('%s/user.php?user=%s&dep=[%s]&message=[%s]'.replace(' ','%20')%(BASE,username,ret,message)).read()
  149. dialog.ok("Message Send", "Your Message Has Been Sent")
  150. else:
  151. return
  152.  
  153. def report(url,name):
  154. dialog = xbmcgui.Dialog()
  155. if dialog.yesno("[B]Do You Want To Send[/B]", '[B]Message:[/B]%s'%(name).replace('%20',' '),'', "",'Scrap','Send'):
  156. sendurl=urllib.urlopen('%s/user.php?user=%s&dep=[broken]&message=[%s]'.replace(' ','%20')%(BASE,name,url)).read()
  157. dialog.ok("Message Send", "Your Message Has Been Sent")
  158. else:
  159. return
  160.  
  161. def PlayStreamWithResolver(url):
  162. dp = xbmcgui.DialogProgress()
  163. dp.create('Open Stream','Opening %s'%(url))
  164. dp.update(10)
  165. play=xbmc.Player(GetPlayerCore()) ### xbmc.PLAYER_CORE_AUTO | xbmc.PLAYER_CORE_DVDPLAYER | xbmc.PLAYER_CORE_MPLAYER | xbmc.PLAYER_CORE_PAPLAYER
  166. url=urlresolver.HostedMediaFile(url).resolve()
  167. dp.update(50)
  168. try: ADDON.resolve_url(url)
  169. except: pass
  170. try: play.play(url)
  171. except: pass
  172. dp.update(100)
  173. def GetPlayerCore():
  174. try:
  175. PlayerMethod=getSet("core-player")
  176. if (PlayerMethod=='DVDPLAYER'): PlayerMeth=xbmc.PLAYER_CORE_DVDPLAYER
  177. elif (PlayerMethod=='MPLAYER'): PlayerMeth=xbmc.PLAYER_CORE_MPLAYER
  178. elif (PlayerMethod=='PAPLAYER'): PlayerMeth=xbmc.PLAYER_CORE_PAPLAYER
  179. else: PlayerMeth=xbmc.PLAYER_CORE_AUTO
  180. except: PlayerMeth=xbmc.PLAYER_CORE_AUTO
  181. return PlayerMeth
  182.  
  183. def VIDEOLINKS(url,name):
  184. req = urllib2.Request(url)
  185. 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')
  186. response = urllib2.urlopen(req)
  187. link=response.read()
  188. response.close()
  189. match=re.compile('file: "(.+?)",').findall(link)
  190. for url in match:
  191. addLink(name,url,'',"")
  192.  
  193. def notify(addonId, message, timeShown=5000):
  194. addon = xbmcaddon.Addon(addonId)
  195. xbmc.executebuiltin('Notification(<p class="rbm_timing">(.+?)</p></li>, %s, %d, %s)' % (addon.getAddonInfo('name'), message, timeShown, addon.getAddonInfo('icon')))
  196. def get_params():
  197. param=[]
  198. paramstring=sys.argv[2]
  199. if len(paramstring)>=2:
  200. params=sys.argv[2]
  201. cleanedparams=params.replace('?','')
  202. if (params[len(params)-1]=='/'):
  203. params=params[0:len(params)-2]
  204. pairsofparams=cleanedparams.split('&')
  205. param={}
  206. for i in range(len(pairsofparams)):
  207. splitparams={}
  208. splitparams=pairsofparams[i].split('=')
  209. if (len(splitparams))==2:
  210. param[splitparams[0]]=splitparams[1]
  211.  
  212. return param
  213.  
  214. def addLink(name,url,iconimage,urlType):
  215. ok=True
  216. liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=iconimage)
  217. liz.setInfo( type="Video", infoLabels={ "Title": name } )
  218. liz.setProperty('IsPlayable','true')
  219. menu=[]
  220. menu.append(('[COLOR red]Report Link[/COLOR]','XBMC.Container.Update(%s?mode=14&name=%s&url=%s)'% (sys.argv[0],name,url)))
  221. liz.addContextMenuItems(items=menu, replaceItems=False)
  222. ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=liz)
  223. return ok
  224.  
  225.  
  226. def addSearch():
  227. searchStr = ''
  228. keyboard = xbmc.Keyboard(searchStr, 'Search')
  229. keyboard.doModal()
  230. if (keyboard.isConfirmed()==False):
  231. return
  232. searchStr=keyboard.getText()
  233. if len(searchStr) == 0:
  234. return
  235. else:
  236. return searchStr
  237.  
  238. def addDir(name,url,mode,iconimage):
  239. u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)
  240. ok=True
  241. liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png", thumbnailImage=iconimage)
  242. liz.setInfo( type="Video", infoLabels={ "Title": name } )
  243. ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
  244. return ok
  245. def addDir2(name,url,mode,iconimage):
  246. u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)
  247. ok=True
  248. liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png", thumbnailImage=iconimage)
  249. liz.setInfo( type="Video", infoLabels={ "Title": name } )
  250. ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=False)
  251. return ok
  252.  
  253.  
  254. params=get_params()
  255. url=None
  256. name=None
  257. mode=None
  258.  
  259. try:
  260. url=urllib.unquote_plus(params["url"])
  261. except:
  262. pass
  263. try:
  264. name=urllib.unquote_plus(params["name"])
  265. except:
  266. pass
  267. try:
  268. mode=int(params["mode"])
  269. except:
  270. pass
  271.  
  272. print "Mode: "+str(mode)
  273. print "URL: "+str(url)
  274. print "Name: "+str(name)
  275.  
  276. if mode==None or url==None or len(url)<1:
  277. print ""
  278. CATEGORIES()
  279. elif mode==1:
  280. print ""+url
  281. INDEX(url)
  282. elif mode==2:
  283. print ""+url
  284. addSearch()
  285. elif mode==3:
  286. openSettings()
  287. #elif mode==4:
  288. # SIGNIN()
  289. elif mode==5:
  290. PPV()
  291. elif mode==6:
  292. about()
  293. elif mode==7:
  294. help()
  295. elif mode==8:
  296. PlayStreamWithResolver(url)
  297. #elif mode==9:
  298. # LOGOUT( )
  299. elif mode==11:
  300. vod(url)
  301. elif mode==12:
  302. contact()
  303. elif mode==13:
  304. sent()
  305. elif mode==14:
  306. report(url,name)
  307.  
  308.  
  309.  
  310.  
  311.  
  312. xbmcplugin.endOfDirectory(int(sys.argv[1]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement