Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import urllib,urllib2,sys,re,xbmcplugin,xbmcgui,xbmcaddon,urlresolver
- #password=xbmcplugin.getSetting(int(sys.argv[1]), 'password')
- username=xbmcplugin.getSetting(int(sys.argv[1]), 'username')
- firstrun=xbmcplugin.getSetting(int(sys.argv[1]), 'firstrun')
- BASE = "http://mykodi.co.uk/xstream"
- ADDON = xbmcaddon.Addon(id='plugin.video.iptvname')
- event=urllib.urlopen('%s/ppvname.php'% (BASE)).read()
- eventdescription=urllib.urlopen('%s/ppvdescription.php'% (BASE)).read()
- eventon=urllib.urlopen('%s/ppvon.php'% (BASE)).read()
- eventurl=urllib.urlopen('%s/ppvurl.php'% (BASE)).read()
- def CATEGORIES():
- if firstrun=="true":
- dialog = xbmcgui.Dialog()
- dialog.ok("Welcome To XstreamSports", " To Get Started Please Enter Email ")
- email=Search('username')
- ADDON.setSetting('username',email)
- ADDON.setSetting('firstrun','false')
- addDir('%s [B][/B]'%(event),'PPV',5,'')
- addDir('Search','/browse.php?q=',1,'')
- addDir('Channels','/channelshow.php',1,'')
- addDir('On-Demand','/vodshow.php',11,'')
- addDir2('Settings','settings',3,'')
- addDir2('About','about',6,'')
- addDir2('Help','about',7,'')
- addDir2('Contact Us','about',12,'')
- # if firstrun=="false":
- # addDir2('Logout','login',9,'')
- # else:
- # addDir2('Login','login',4,'')
- def INDEX(url):
- if url=="/browse.php?q=":
- searchString = addSearch()
- url="/browse.php?q="+searchString
- after = url
- url = BASE + url
- req = urllib2.Request(url)
- 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')
- response = urllib2.urlopen(req)
- link=response.read()
- match=re.compile('<a href="(.+?)"><img class="thumbnail_image" src="(.+?)" alt="(.+?)"').findall(link)
- for url,thumbnail,name in match:
- req = urllib2.Request(url)
- 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')
- response = urllib2.urlopen(req)
- link=response.read()
- response.close()
- match=re.compile('file: "(.+?)",').findall(link)
- for url in match:
- addLink(name,url,thumbnail,"")
- match=re.compile('src="http://www.youtube.com/embed/(.+?)?rel=0').findall(link)
- for url in match:
- youtubeurl = 'plugin://plugin.video.youtube/?action=play_video&videoid=%s' % url
- addLink(name,youtubeurl,thumbnail,"")
- def vod(url):
- if url=="browse?q=":
- searchString = addSearch()
- url="browse?q="+searchString
- after = url
- url = BASE + url
- req = urllib2.Request(url)
- 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')
- response = urllib2.urlopen(req)
- link=response.read()
- match=re.compile('<a href="(.+?)"><img class="thumbnail_image" src="(.+?)" alt="(.+?)"').findall(link)
- for url,thumbnail,name in match:
- req = urllib2.Request(url)
- 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')
- response = urllib2.urlopen(req)
- link=response.read()
- response.close()
- match=re.compile('file: "(.+?)",').findall(link)
- for url in match:
- addDir2(name,url,8,thumbnail)
- #def SIGNIN():
- # dialog = xbmcgui.Dialog()
- # if dialog.yesno("IPTV MANGAER", 'Do you Wish To Sign In','', "",'Close','Sign In'):
- # email=Search('username')
- # ADDON.setSetting('username',email)
- # password=Search('Password')
- # ADDON.setSetting('password',password)
- # ADDON.setSetting('use_account','true')
- # dialog.ok("Thank You", " Thank You Please Exit And Re-enter Plugin ")
- # dialog.ok("Warning", " We Log Your Ip When Signing In So Dont Share Accounts ")
- # ADDON.setSetting('firstrun','false')
- #
- # else:
- # return
- def PPV():
- dialog = xbmcgui.Dialog()
- if eventon=="0":
- dialog.ok("Not Started", "Sorry The Event Has Not Started")
- else:
- if dialog.yesno("%s"%(event), '%s'%(eventdescription),'', "",'More Info','WATCH NOW'):
- addLink('[COLOR yellow][B]Play[/B][/COLOR]','%s'%(eventurl),'',"")
- else:
- return
- def about():
- showText('About Xstream Sports','ss')
- def help():
- showText('Help Infomation','ss')
- #def LOGOUT():
- # dialog = xbmcgui.Dialog()
- # if dialog.yesno("XstreamSports", 'Do you Wish To Logout','', "",'Close','Logout'):
- # ADDON.setSetting('username','')
- # ADDON.setSetting('password','')
- # ADDON.setSetting('firstrun','true')
- # dialog.ok("Logged Out", "You Are Now Logged Out")
- # ADDON.setSetting('firstrun','true')
- # else:
- # return
- def showText(heading, text):
- id = 10147
- xbmc.executebuiltin('ActivateWindow(%d)' % id)
- xbmc.sleep(100)
- win = xbmcgui.Window(id)
- retry = 50
- while (retry > 0):
- try:
- xbmc.sleep(10)
- retry -= 1
- win.getControl(1).setLabel(heading)
- win.getControl(5).setText(text)
- return
- except:
- pass
- def Search(name):
- search_entered = ''
- keyboard = xbmc.Keyboard(search_entered, 'Please Enter '+str(name))
- keyboard.doModal()
- if keyboard.isConfirmed():
- search_entered = keyboard.getText().replace(' ','%20')
- if search_entered == None:
- return False
- return search_entered
- def openSettings():
- ADDON.openSettings()
- def contact():
- dialog = xbmcgui.Dialog()
- ret = dialog.select('Choose a Department', ['Account Problems', 'Report Dead Link', 'Other Help'])
- message=Search('Message')
- if dialog.yesno("[B]Do You Want To Send[/B]", '[B]Message:[/B]%s'%(message).replace('%20',' '),'', "",'Scrap','Send'):
- sendurl=urllib.urlopen('%s/user.php?user=%s&dep=[%s]&message=[%s]'.replace(' ','%20')%(BASE,username,ret,message)).read()
- dialog.ok("Message Send", "Your Message Has Been Sent")
- else:
- return
- def report(url,name):
- dialog = xbmcgui.Dialog()
- if dialog.yesno("[B]Do You Want To Send[/B]", '[B]Message:[/B]%s'%(name).replace('%20',' '),'', "",'Scrap','Send'):
- sendurl=urllib.urlopen('%s/user.php?user=%s&dep=[broken]&message=[%s]'.replace(' ','%20')%(BASE,name,url)).read()
- dialog.ok("Message Send", "Your Message Has Been Sent")
- else:
- return
- def PlayStreamWithResolver(url):
- dp = xbmcgui.DialogProgress()
- dp.create('Open Stream','Opening %s'%(url))
- dp.update(10)
- play=xbmc.Player(GetPlayerCore()) ### xbmc.PLAYER_CORE_AUTO | xbmc.PLAYER_CORE_DVDPLAYER | xbmc.PLAYER_CORE_MPLAYER | xbmc.PLAYER_CORE_PAPLAYER
- url=urlresolver.HostedMediaFile(url).resolve()
- dp.update(50)
- try: ADDON.resolve_url(url)
- except: pass
- try: play.play(url)
- except: pass
- dp.update(100)
- def GetPlayerCore():
- try:
- PlayerMethod=getSet("core-player")
- if (PlayerMethod=='DVDPLAYER'): PlayerMeth=xbmc.PLAYER_CORE_DVDPLAYER
- elif (PlayerMethod=='MPLAYER'): PlayerMeth=xbmc.PLAYER_CORE_MPLAYER
- elif (PlayerMethod=='PAPLAYER'): PlayerMeth=xbmc.PLAYER_CORE_PAPLAYER
- else: PlayerMeth=xbmc.PLAYER_CORE_AUTO
- except: PlayerMeth=xbmc.PLAYER_CORE_AUTO
- return PlayerMeth
- def VIDEOLINKS(url,name):
- req = urllib2.Request(url)
- 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')
- response = urllib2.urlopen(req)
- link=response.read()
- response.close()
- match=re.compile('file: "(.+?)",').findall(link)
- for url in match:
- addLink(name,url,'',"")
- def notify(addonId, message, timeShown=5000):
- addon = xbmcaddon.Addon(addonId)
- xbmc.executebuiltin('Notification(<p class="rbm_timing">(.+?)</p></li>, %s, %d, %s)' % (addon.getAddonInfo('name'), message, timeShown, addon.getAddonInfo('icon')))
- def get_params():
- param=[]
- paramstring=sys.argv[2]
- if len(paramstring)>=2:
- params=sys.argv[2]
- cleanedparams=params.replace('?','')
- if (params[len(params)-1]=='/'):
- params=params[0:len(params)-2]
- pairsofparams=cleanedparams.split('&')
- param={}
- for i in range(len(pairsofparams)):
- splitparams={}
- splitparams=pairsofparams[i].split('=')
- if (len(splitparams))==2:
- param[splitparams[0]]=splitparams[1]
- return param
- def addLink(name,url,iconimage,urlType):
- ok=True
- liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=iconimage)
- liz.setInfo( type="Video", infoLabels={ "Title": name } )
- liz.setProperty('IsPlayable','true')
- menu=[]
- menu.append(('[COLOR red]Report Link[/COLOR]','XBMC.Container.Update(%s?mode=14&name=%s&url=%s)'% (sys.argv[0],name,url)))
- liz.addContextMenuItems(items=menu, replaceItems=False)
- ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=liz)
- return ok
- def addSearch():
- searchStr = ''
- keyboard = xbmc.Keyboard(searchStr, 'Search')
- keyboard.doModal()
- if (keyboard.isConfirmed()==False):
- return
- searchStr=keyboard.getText()
- if len(searchStr) == 0:
- return
- else:
- return searchStr
- def addDir(name,url,mode,iconimage):
- u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)
- ok=True
- liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png", thumbnailImage=iconimage)
- liz.setInfo( type="Video", infoLabels={ "Title": name } )
- ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
- return ok
- def addDir2(name,url,mode,iconimage):
- u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)
- ok=True
- liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png", thumbnailImage=iconimage)
- liz.setInfo( type="Video", infoLabels={ "Title": name } )
- ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=False)
- return ok
- params=get_params()
- url=None
- name=None
- mode=None
- try:
- url=urllib.unquote_plus(params["url"])
- except:
- pass
- try:
- name=urllib.unquote_plus(params["name"])
- except:
- pass
- try:
- mode=int(params["mode"])
- except:
- pass
- print "Mode: "+str(mode)
- print "URL: "+str(url)
- print "Name: "+str(name)
- if mode==None or url==None or len(url)<1:
- print ""
- CATEGORIES()
- elif mode==1:
- print ""+url
- INDEX(url)
- elif mode==2:
- print ""+url
- addSearch()
- elif mode==3:
- openSettings()
- #elif mode==4:
- # SIGNIN()
- elif mode==5:
- PPV()
- elif mode==6:
- about()
- elif mode==7:
- help()
- elif mode==8:
- PlayStreamWithResolver(url)
- #elif mode==9:
- # LOGOUT( )
- elif mode==11:
- vod(url)
- elif mode==12:
- contact()
- elif mode==13:
- sent()
- elif mode==14:
- report(url,name)
- xbmcplugin.endOfDirectory(int(sys.argv[1]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement