def get_navigation(params): plugintools.log("dandb.get_navigation "+repr(params)) itemlist = api.navigation_get_all(params.get("url"),0,1000) add_items_to_xbmc(params,itemlist) plugintools.set_view( plugintools.LIST )
def tvshows_az(params): plugintools.log("ruyaiptv.tvshows_az "+repr(params)) for letra in ['0-9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']: plugintools.add_item( action="tvshows_by_letter", title=letra, url=letra, fanart=os.path.join(THUMBNAIL_PATH,"fanart1.jpg") , folder=True ) plugintools.set_view( plugintools.LIST )
def peamenyy(params): plugintools.log(pnimi+vod_channels("TWFpbiBNZW51")+repr(params)) load_channels() if not lehekylg: plugintools.open_settings_dialog() if uuendused == "true": kontrolli_uuendusi() channels = kontroll() if channels == 1: plugintools.log(pnimi+vod_channels("TG9naW4gU3VjY2Vzcw==")) plugintools.add_item( action=vod_channels("ZXhlY3V0ZV9haW5mbw=="), title=vod_channels("TXkgQWNjb3VudA==") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("c2VjdXJpdHlfY2hlY2s="), title=vod_channels("TGl2ZSBUVg==") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("ZGV0ZWN0X21vZGlmaWNhdGlvbg=="), title=vod_channels("VmlkZW8gT24gRGVtYW5k") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("bGljZW5zZV9jaGVjaw=="), title=vod_channels("U2V0dGluZ3M=") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=") ), folder=False ) plugintools.set_view( plugintools.LIST ) else: plugintools.log(pnimi+vod_channels("TG9naW4gZmFpbGVk")) plugintools.message(vod_channels("TG9naW4gZmFpbGVk"), vod_channels("UG9zc2libGUgcmVhc29uczogV3JvbmcgaG9zdCxwb3J0LHVzZXJuYW1lIG9yIHBhc3MuICAgICAgICAgIFBsZWFzZSByZWNvbmZpZ3VyZSAlcyBwbHVnaW4gd2l0aCBjb3JyZWN0IGRldGFpbHMh")%(pnimi)) exit() if plugintools.get_setting("improve")=="true": tseaded = xbmc.translatePath(sync_data("c3BlY2lhbDovL3VzZXJkYXRhL2FkdmFuY2Vkc2V0dGluZ3MueG1s")) if not os.path.exists(tseaded): file = open( os.path.join(plugintools.get_runtime_path(),vod_channels("cmVzb3VyY2Vz"),sync_data("YWR2YW5jZWRzZXR0aW5ncy54bWw=")) ) data = file.read() file.close() file = open(tseaded,"w") file.write(data) file.close() plugintools.message(pnimi, get_live("TmV3IGFkdmFuY2VkIHN0cmVhbWluZyBzZXR0aW5ncyBhZGRlZC4="))
def livetv_epg(params): plugintools.log("ruyaiptv.livetv_epg "+repr(params)) plugintools.add_item( action="livetv_epg_channels", title="EPG by channel" , thumbnail = os.path.join(THUMBNAIL_PATH,"") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.add_item( action="livetv_epg_search", title="EPG search..." , thumbnail = os.path.join(THUMBNAIL_PATH,"") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.set_view( plugintools.LIST )
def peamenyy(params): plugintools.log(pnimi+vod_channels("TWFpbiBNZW51")+repr(params)) load_channels() if not lehekylg: plugintools.open_settings_dialog() if uuendused == "true": kontrolli_uuendusi() channels = kontroll() if channels == 1 and orig.mode != 5: plugintools.log(pnimi+vod_channels("TG9naW4gU3VjY2Vzcw==")) plugintools.add_item( action=vod_channels("ZXhlY3V0ZV9haW5mbw=="), title="My Account", thumbnail=os.path.join(LOAD_LIVE,vod_channels("bXlhY2MucG5n")) , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("c2VjdXJpdHlfY2hlY2s="), title="Live TV" , thumbnail=os.path.join(LOAD_LIVE,vod_channels("bGl2ZXR2LnBuZw==")) , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("ZGV0ZWN0X21vZGlmaWNhdGlvbg=="), title=vod_channels("Vk9E") , thumbnail=os.path.join(LOAD_LIVE,vod_channels("dm9kLnBuZw==")) , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) orig.AddDir('Clear Cache','Clear Cache',7,orig.Images + 'cache.png') plugintools.add_item( action=vod_channels("bGljZW5zZV9jaGVjaw=="), title="Settings" , thumbnail=os.path.join(LOAD_LIVE,vod_channels("c2V0dGluZ3MuanBn")) , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=") ), folder=False ) plugintools.set_view( plugintools.LIST ) elif orig.mode != 5: plugintools.add_item( action=vod_channels("bGljZW5zZV9jaGVjaw=="), title="Click to login" , thumbnail=os.path.join(LOAD_LIVE,vod_channels("ZGVmYXVsdGxvZ28ucG5n")) , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action=vod_channels("bGljZW5zZV9jaGVjaw=="), title="Settings" , thumbnail=os.path.join(LOAD_LIVE,vod_channels("c2V0dGluZ3MuanBn")) , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=") ), folder=False ) orig.AddDir('Clear Cache','Clear Cache',7,orig.Images + 'cache.png') if plugintools.get_setting("improve")=="true": tseaded = xbmc.translatePath(sync_data("c3BlY2lhbDovL3VzZXJkYXRhL2FkdmFuY2Vkc2V0dGluZ3MueG1s")) if not os.path.exists(tseaded): file = open( os.path.join(plugintools.get_runtime_path(),vod_channels("cmVzb3VyY2Vz"),sync_data("YWR2YW5jZWRzZXR0aW5ncy54bWw=")) ) data = file.read() file.close() file = open(tseaded,"w") file.write(data) file.close() plugintools.message(pnimi, get_live("TmV3IGFkdmFuY2VkIHN0cmVhbWluZyBzZXR0aW5ncyBhZGRlZC4="))
def peamenyy(params): plugintools.log(pnimi+vod_channels("TWFpbiBNZW51")+repr(params)) load_channels() if not lehekylg: plugintools.open_settings_dialog() channels = kontroll() if channels == 1 and Overlord.mode != 5 and Overlord.mode != 1: plugintools.set_view( plugintools.LIST ) plugintools.log(pnimi+vod_channels("TG9naW4gU3VjY2Vzcw==")) plugintools.add_item( action=vod_channels("ZXhlY3V0ZV9haW5mbw=="), title="Your Account Information", thumbnail=os.path.join(LOAD_LIVE,vod_channels("bXlhY2MucG5n")) , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("c2VjdXJpdHlfY2hlY2s="), title="Overlord TV" , thumbnail=os.path.join(LOAD_LIVE,vod_channels("bGl2ZXR2LnBuZw==")) , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("ZGV0ZWN0X21vZGlmaWNhdGlvbg=="), title=vod_channels("T24gRGVtYW5k") , thumbnail=os.path.join(LOAD_LIVE,vod_channels("dm9kLnBuZw==")), fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("bGljZW5zZV9jaGVjaw=="), title="Your Settings" , thumbnail=os.path.join(LOAD_LIVE,vod_channels("c2V0dGluZ3MuanBn")) , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=") ), folder=False ) #Overlord.AddDir('Extras','Extras',5,Overlord.Images + 'extras.png') elif channels != 1 and Overlord.mode != 1: plugintools.add_item( action=vod_channels("bGljZW5zZV9jaGVjaw=="), title="Step 1. Enter Login details here" , thumbnail=os.path.join(LOAD_LIVE,vod_channels("c2V0dGluZ3MuanBn")) , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=") ), folder=False ) plugintools.add_item( action=vod_channels("bGljZW5zZV9jaGVjazI="), title="Step 2. Click here" , thumbnail=os.path.join(LOAD_LIVE,vod_channels("c2V0dGluZ3MuanBn")) , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=") ), folder=False ) if plugintools.get_setting("improve")=="true": tseaded = xbmc.translatePath(sync_data("c3BlY2lhbDovL3VzZXJkYXRhL2FkdmFuY2Vkc2V0dGluZ3MueG1s")) if not os.path.exists(tseaded): file = open( os.path.join(plugintools.get_runtime_path(),vod_channels("cmVzb3VyY2Vz"),sync_data("YWR2YW5jZWRzZXR0aW5ncy54bWw=")) ) data = file.read() file.close() file = open(tseaded,"w") file.write(data) file.close() plugintools.message(pnimi, get_live("TmV3IGFkdmFuY2VkIHN0cmVhbWluZyBzZXR0aW5ncyBhZGRlZC4="))
def get_myaccount(params): plugintools.log(pnimi+get_live("Vk9EIGNoYW5uZWxzIG1lbnUg")+repr(params)) if vanemalukk == "true": pealkiri = params.get(sync_data("dGl0bGU=")) vanema_lukk(pealkiri) purl = params.get(get_live("dXJs")) request = urllib2.Request(purl, headers={"Accept" : "application/xml"}) u = urllib2.urlopen(request) tree = ElementTree.parse(u) rootElem = tree.getroot() for channel in tree.findall(sync_data("Y2hhbm5lbA==")): pealkiri = channel.find(get_live("dGl0bGU=")).text pealkiri = base64.b64decode(pealkiri) pealkiri = pealkiri.encode("utf-8") striimilink = channel.find(sync_data("c3RyZWFtX3VybA==")).text pilt = channel.find(sync_data("ZGVzY19pbWFnZQ==")).text kirjeldus = channel.find(vod_channels("ZGVzY3JpcHRpb24=")).text if kirjeldus: kirjeldus = base64.b64decode(kirjeldus) if pilt: plugintools.add_item( action="restart_service", title=pealkiri , url=striimilink, thumbnail=pilt, plot=kirjeldus, fanart=os.path.join(LOAD_LIVE,vod_channels("aG9tZXRoZWF0ZXIuanBn")) , extra="", isPlayable=True, folder=False ) else: plugintools.add_item( action="restart_service", title=pealkiri , url=striimilink, thumbnail=os.path.join(LOAD_LIVE,"noposter.jpg"), plot=kirjeldus, fanart=os.path.join(LOAD_LIVE,vod_channels("aG9tZXRoZWF0ZXIuanBn")) , extra="", isPlayable=True, folder=False ) plugintools.set_view( plugintools.EPISODES ) xbmc.executebuiltin('Container.SetViewMode(503)')
def mainlist(params,url,category): logger.info("channelselector.mainlist") # Verifica actualizaciones solo en el primer nivel if config.get_platform()!="boxee": try: from core import updater except ImportError: logger.info("channelselector.mainlist No disponible modulo actualizaciones") else: if config.get_setting("updatecheck2") == "true": logger.info("channelselector.mainlist Verificar actualizaciones activado") updater.checkforupdates() else: logger.info("channelselector.mainlist Verificar actualizaciones desactivado") itemlist = getmainlist("squares") for elemento in itemlist: logger.info("channelselector item="+elemento.tostring()) addfolder(elemento.title , elemento.channel , elemento.action , thumbnailname=elemento.thumbnail, folder=elemento.folder) if config.get_platform()=="kodi-krypton": import plugintools plugintools.set_view( plugintools.TV_SHOWS ) # Label (top-right)... import xbmcplugin #xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category="" ) #xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True ) if config.get_setting("forceview")=="true": # Confluence - Thumbnail import xbmc xbmc.executebuiltin("Container.SetViewMode(500)")
def listchannels(params,url,category): logger.info("channelselector.listchannels") lista = filterchannels(category) for channel in lista: if config.is_xbmc() and (channel.type=="xbmc" or channel.type=="generic"): addfolder(channel.title , channel.channel , "mainlist" , channel.channel) elif config.get_platform()=="boxee" and channel.extra!="rtmp": addfolder(channel.title , channel.channel , "mainlist" , channel.channel) if config.get_platform()=="kodi-krypton": import plugintools plugintools.set_view( plugintools.TV_SHOWS ) # Label (top-right)... import xbmcplugin xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category ) xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True ) if config.get_setting("forceview")=="true": # Confluence - Thumbnail import xbmc xbmc.executebuiltin("Container.SetViewMode(500)")
def peamenyy(params): xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_TITLE ) plugintools.add_item( action="News", title='News' , url='', thumbnail='', plot='', fanart=os.path.join(LOAD_LIVE,"dGhlYXRlci5qcGc=") , extra="", isPlayable=False, folder=True ) plugintools.add_item( action="Radio", title='Radio' , url='', thumbnail='', plot='', fanart=os.path.join(LOAD_LIVE,"dGhlYXRlci5qcGc=") , extra="", isPlayable=False, folder=True ) plugintools.add_item( action="TOOLS", title='Tools' , url='http://ovh.net/files/100Mio.dat', thumbnail='', plot='', fanart='' , extra="", isPlayable=False, folder=True ) plugintools.log(pnimi+vod_channels("TWFpbiBNZW51")+repr(params)) load_channels() if not lehekylg1: plugintools.open_settings_dialog() if uuendused == "true": updates(params) channels = kontroll() if channels == 1: plugintools.log(pnimi+vod_channels("TG9naW4gU3VjY2Vzcw==")) plugintools.add_item( action=vod_channels("ZXhlY3V0ZV9haW5mbw=="), title=vod_channels("TXkgQWNjb3VudA==") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("c2VjdXJpdHlfY2hlY2s="), title=vod_channels("TGl2ZSBUVg==") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("cnVubmVyMg=="), title=vod_channels("VmlkZW8gT24gRGVtYW5k") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action=vod_channels("bGljZW5zZV9jaGVjaw=="), title=vod_channels("U2V0dGluZ3M=") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=") ), folder=False ) plugintools.set_view( plugintools.LIST ) else: plugintools.log(pnimi+vod_channels("TG9naW4gZmFpbGVk")) plugintools.message(("Login failed"),("Possible reasons: Wrong host,port,username or pass. Please reconfigure %s plugin with correct details!")%(pnimi)) exit() if plugintools.get_setting("improve")=="true": tseaded = xbmc.translatePath(sync_data("c3BlY2lhbDovL3VzZXJkYXRhL2FkdmFuY2Vkc2V0dGluZ3MueG1s")) tseaded = xbmc.translatePath(sync_data("c3BlY2lhbDovL3VzZXJkYXRhL2FkdmFuY2Vkc2V0dGluZ3MueG1s")) if not os.path.exists(tseaded): file = open( os.path.join(plugintools.get_runtime_path(),"resources",sync_data("YWR2YW5jZWRzZXR0aW5ncy54bWw=")) ) data = file.read() file.close() file = open(tseaded,"w") file.write(data) file.close() plugintools.message(pnimi, "New advanced streaming settings added.")
def livetv_catchup(params): plugintools.log("ruyaiptv.livetv_catchup "+repr(params)) plugintools.add_item( action="livetv_catchup_countries", title="Recordings by channel" , thumbnail = os.path.join(THUMBNAIL_PATH,"") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.add_item( action="livetv_catchup_genres", title="Recordings by genre" , thumbnail = os.path.join(THUMBNAIL_PATH,"") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.add_item( action="livetv_catchup_search", title="Search..." , thumbnail = os.path.join(THUMBNAIL_PATH,"") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.set_view( plugintools.LIST )
def xxxmovies(params): plugintools.log("movie4k.xxxmovies "+repr(params)) plugintools.set_view(plugintools.THUMBNAIL) plugintools.add_item( action="xxx_movies_updates", title="Latest updates" , thumbnail = os.path.join(THUMBNAIL_PATH,"xxx.png") , fanart=FANART , folder=True , url=MAIN_URL+'xxx-updates.html' ) plugintools.add_item( action="letters", title="All movies" , thumbnail = os.path.join(THUMBNAIL_PATH,"xxx.png") , fanart=FANART , folder=True , extra="xxx-all", url=MAIN_URL+'xxx-all.html' ) plugintools.add_item( action="genres", title="Genres" , thumbnail = os.path.join(THUMBNAIL_PATH,"xxx.png") , fanart=FANART , folder=True , extra="xxx-genre", url=MAIN_URL+'genres-xxx.html' )
def livetv(params): plugintools.log("ruyaiptv.livetv "+repr(params)) plugintools.add_item( action="livetv_all", title="All channels" , thumbnail = os.path.join(THUMBNAIL_PATH,"hot.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.add_item( action="livetv_packages", title="Packages" , thumbnail = os.path.join(THUMBNAIL_PATH,"genres.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.add_item( action="livetv_genres", title="Categories" , thumbnail = os.path.join(THUMBNAIL_PATH,"genres.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.add_item( action="livetv_epg", title="EPG" , thumbnail = os.path.join(THUMBNAIL_PATH,"") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.set_view( plugintools.LIST )
def movies(params): plugintools.log("movie4k.movies "+repr(params)) plugintools.set_view(plugintools.THUMBNAIL) plugintools.add_item( action="movies_cinema", title="Cinema movies" , thumbnail = os.path.join(THUMBNAIL_PATH,"movies.png") , fanart=FANART, url=MAIN_URL+"index.php", folder=True ) plugintools.add_item( action="movies_updates", title="Latest updates" , thumbnail = os.path.join(THUMBNAIL_PATH,"movies.png") , fanart=FANART, url=MAIN_URL+"movies-updates.html", folder=True ) plugintools.add_item( action="letters", title="All movies" , thumbnail = os.path.join(THUMBNAIL_PATH,"movies.png") , fanart=FANART, extra="movies-all", url=MAIN_URL+"movies-all.html", folder=True ) plugintools.add_item( action="genres", title="Genres" , thumbnail = os.path.join(THUMBNAIL_PATH,"movies.png") , fanart=FANART, extra="movies-genre", url=MAIN_URL+"genres-movies.html", folder=True )
def tvshows(params): plugintools.log("movie4k.tvshows "+repr(params)) plugintools.set_view(plugintools.THUMBNAIL) plugintools.add_item( action="tvshows_featured", title="Featured" , thumbnail = os.path.join(THUMBNAIL_PATH,"tvshows.png") , fanart=FANART , folder=True , url=MAIN_URL+'tvshows_featured.php' ) plugintools.add_item( action="tvshow_episodes", title="Latest updates" , thumbnail = os.path.join(THUMBNAIL_PATH,"tvshows.png") , fanart=FANART , folder=True , url=MAIN_URL+'tvshows-updates.html' ) plugintools.add_item( action="letters", title="All TV shows" , thumbnail = os.path.join(THUMBNAIL_PATH,"tvshows.png") , fanart=FANART , folder=True , extra="tvshows-all", url = MAIN_URL+'tvshows-all.html' ) plugintools.add_item( action="genres", title="Genres" , thumbnail = os.path.join(THUMBNAIL_PATH,"tvshows.png") , fanart=FANART , folder=True , extra="tvshows-genre", url = MAIN_URL+'genres-tvshows.html' )
def movies(params): plugintools.log("ruyaiptv.movies "+repr(params)) plugintools.add_item( action="movies_latest_releases", title="Latest releases" , thumbnail = os.path.join(THUMBNAIL_PATH,"hot.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart0.jpg") , folder=True ) plugintools.add_item( action="movies_recent", title="Recent" , thumbnail = os.path.join(THUMBNAIL_PATH,"recent.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart0.jpg") , folder=True ) plugintools.add_item( action="movies_az", title="A-Z" , thumbnail = os.path.join(THUMBNAIL_PATH,"letter.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart0.jpg") , folder=True ) plugintools.add_item( action="movies_genres", title="Genres" , thumbnail = os.path.join(THUMBNAIL_PATH,"genres.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart0.jpg") , folder=True ) plugintools.add_item( action="movies_search", title="Search..." , thumbnail = os.path.join(THUMBNAIL_PATH,"genres.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart0.jpg") , folder=True ) plugintools.set_view( plugintools.LIST )
def tvshows(params): plugintools.log("ruyaiptv.tvshows "+repr(params)) plugintools.add_item( action="tvshows_recent_episodes", title="Latest episodes" , thumbnail = os.path.join(THUMBNAIL_PATH,"recent.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart1.jpg") , folder=True ) plugintools.add_item( action="tvshows_updated", title="Updated TV Shows" , thumbnail = os.path.join(THUMBNAIL_PATH,"updated.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart1.jpg") , folder=True ) plugintools.add_item( action="tvshows_az", title="A-Z" , thumbnail = os.path.join(THUMBNAIL_PATH,"letter.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart1.jpg") , folder=True ) plugintools.add_item( action="tvshows_genres", title="Genres" , thumbnail = os.path.join(THUMBNAIL_PATH,"genres.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart1.jpg") , folder=True ) plugintools.add_item( action="tvshows_search", title="Search..." , thumbnail = os.path.join(THUMBNAIL_PATH,"genres.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart1.jpg") , folder=True ) plugintools.set_view( plugintools.LIST )
def main_list(params): plugintools.log("movie4k.main_list "+repr(params)) plugintools.set_view(plugintools.THUMBNAIL) plugintools.add_item( action="movies", title="Movies" , thumbnail = os.path.join(THUMBNAIL_PATH,"movies.png") , fanart=FANART , folder=True ) plugintools.add_item( action="tvshows", title="TV Shows" , thumbnail = os.path.join(THUMBNAIL_PATH,"tvshows.png") , fanart=FANART , folder=True ) if plugintools.get_setting("show_adult")=="true": plugintools.add_item( action="xxxmovies", title="XXX Movies" , thumbnail = os.path.join(THUMBNAIL_PATH,"xxx.png") , fanart=FANART , folder=True ) plugintools.add_item( action="search", title="Search" , thumbnail = os.path.join(THUMBNAIL_PATH,"search.png") , fanart=FANART , folder=True ) plugintools.add_item( action="settings", title="Preferences" , thumbnail = os.path.join(THUMBNAIL_PATH,"settings.png") , fanart=FANART , folder=False )
def livetv_all(params): plugintools.log("ruyaiptv.livetv_all "+repr(params)) token = plugintools.get_setting("token") if token=="": return items = api.get_all_livetv_channels(token) for item in items: plugintools.add_item( action="play_livetv", title=format_title(item["title"]) , url=item["url"] , thumbnail=item["thumbnail"], plot=item["plot"], fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , extra=item["fanart"], isPlayable=True, folder=False ) plugintools.set_view( plugintools.EPISODES )
def livetv_genres(params): plugintools.log("ruyaiptv.livetv_genres "+repr(params)) token = plugintools.get_setting("token") if token=="": return items = api.get_livetv_genres(token) for item in items: plugintools.add_item( action="livetv_by_genre", title=item["title"] , url=item["title"], fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.set_view( plugintools.LIST )
def security_check(params): plugintools.log(pnimi+sync_data("TGl2ZSBNZW51")+repr(params)) request = urllib2.Request(televisioonilink, headers={"Accept" : "application/xml"}) u = urllib2.urlopen(request) tree = ElementTree.parse(u) rootElem = tree.getroot() for channel in tree.findall(sync_data("Y2hhbm5lbA==")): kanalinimi = channel.find(get_live("dGl0bGU=")).text kanalinimi = base64.b64decode(kanalinimi) kategoorialink = channel.find(vod_channels("cGxheWxpc3RfdXJs")).text plugintools.add_item( action=get_live("c3RyZWFtX3ZpZGVv"), title=kanalinimi , url=kategoorialink , thumbnail=os.path.join(LOAD_LIVE,sync_data("bG9nby5wbmc=")) , fanart="" , folder=True ) plugintools.set_view( plugintools.LIST )
def detect_modification(params): plugintools.log(pnimi+vod_channels("Vk9EIE1lbnUg")+repr(params)) request = urllib2.Request(filmilink, headers={"Accept" : "application/xml"}) u = urllib2.urlopen(request) tree = ElementTree.parse(u) rootElem = tree.getroot() for channel in tree.findall(sync_data("Y2hhbm5lbA==")): filminimi = channel.find(get_live("dGl0bGU=")).text filminimi = base64.b64decode(filminimi) kategoorialink = channel.find(vod_channels("cGxheWxpc3RfdXJs")).text plugintools.add_item( action=vod_channels("Z2V0X215YWNjb3VudA=="), title=filminimi , url=kategoorialink , thumbnail = "" , fanart=os.path.join(LOAD_LIVE,sync_data("dGhlYXRlci5qcGc=")) , folder=True ) plugintools.set_view( plugintools.LIST )
def tvshow_seasons(params): plugintools.log("ruyaiptv.tvshow_episodes "+repr(params)) token = plugintools.get_setting("token") if token=="": return items = api.get_tvshow_seasons(token,params.get("url")) for item in items: plugintools.add_item( action="tvshow_episodes", title=item["title"] , url=item["title"] , plot=item["plot"], thumbnail=item["thumbnail"], fanart=item["fanart"], extra=params.get("title"), folder=True ) plugintools.set_view( plugintools.SEASONS )
def livetv_packages(params): plugintools.log("ruyaiptv.livetv_packages "+repr(params)) token = plugintools.get_setting("token") if token=="": return items = api.get_livetv_packages(token) for item in items: plugintools.add_item( action="livetv_by_package", title=item["title"] , url=item["title"], thumbnail=api.get_base_url()+"img/package/"+item["title"]+".png", fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.set_view( plugintools.LIST )
def security_check(params): plugintools.log(pnimi+sync_data("TGl2ZSBNZW51")+repr(params)) request = urllib2.Request(televisioonilink, headers={"Accept" : "application/xml"}) u = urllib2.urlopen(request) tree = ElementTree.parse(u) rootElem = tree.getroot() for channel in tree.findall(sync_data("Y2hhbm5lbA==")): kanalinimi = channel.find(get_live("dGl0bGU=")).text kanalinimi = base64.b64decode(kanalinimi) kategoorialink = channel.find(vod_channels("cGxheWxpc3RfdXJs")).text if 'All' in kanalinimi: kanalinimi = '-- [COLOR deepskyblue][B]'+'ALL CHANNELS'+'[/B][/COLOR] --' plugintools.add_item( action=get_live("c3RyZWFtX3ZpZGVv"), title=kanalinimi , url=kategoorialink , thumbnail='' , fanart="" , folder=True ) plugintools.set_view( plugintools.LIST )
def tvshow_episodes(params): plugintools.log("ruyaiptv.tvshow_episodes "+repr(params)) token = plugintools.get_setting("token") if token=="": return tvshow = params.get("extra") season = params.get("url") items = api.get_tvshow_episodes(token,tvshow,season) for item in items: plugintools.add_item( action="play_episode", title=item["title"] , url=item["url"] , plot=item["plot"], thumbnail=item["thumbnail"], fanart=item["fanart"], isPlayable=True, folder=False ) plugintools.set_view( plugintools.EPISODES )
def stream_video(params): if get_live("WHRyZWFtLUNvZGVz") not in open(addonDir+"/"+sync_data("YWRkb24ueG1s")).read(): check_user(params) if vanemalukk == "true": pealkiri = params.get(sync_data("dGl0bGU=")) vanema_lukk(pealkiri) url = params.get(get_live("dXJs")) request = urllib2.Request(url, headers={"Accept" : "application/xml"}) u = urllib2.urlopen(request) tree = ElementTree.parse(u) rootElem = tree.getroot() for channel in tree.findall(sync_data("Y2hhbm5lbA==")): kanalinimi = channel.find(get_live("dGl0bGU=")).text kanalinimi = base64.b64decode(kanalinimi) kanalinimi = kanalinimi.partition("[") striimilink = channel.find(get_live("c3RyZWFtX3VybA==")).text pilt = channel.find(vod_channels("ZGVzY19pbWFnZQ==")).text kava = kanalinimi[1]+kanalinimi[2] kava = kava.partition("]") kava = kava[2] kava = kava.partition(" ") kava = kava[2] shou = get_live("W0NPTE9SIHdoaXRlXVtCXSVzWy9CXSBbL0NPTE9SXQ==")%(kanalinimi[0])+'[COLOR gold]'+kava+'[/COLOR]' extras = kava kirjeldus = channel.find(sync_data("ZGVzY3JpcHRpb24=")).text if kirjeldus: kirjeldus = base64.b64decode(kirjeldus) nyyd = kirjeldus.partition("(") kokku = kirjeldus else: kokku = "" try: xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_TITLE ) if pilt: if showmenu == 'true': plugintools.add_item( action=sync_data("cnVuX2Nyb25qb2I="), title=shou , url=striimilink.replace('\.ts','\.m3u8'), thumbnail=pilt, plot='[B]'+kokku+'[/B]', fanart='http://localhost:52307/getpvrthumb&title=%s'%(kava), extra=kava, isPlayable=False, folder=False ) else: plugintools.add_item( action=sync_data("cmVzdGFydF9zZXJ2aWNl"), title=shou , url=striimilink.replace('\.ts','\.m3u8'), thumbnail=pilt, plot='[B]'+kokku+'[/B]', fanart='http://localhost:52307/getpvrthumb&title=%s'%(kava), extra=kava, isPlayable=True, folder=False ) else: if showmenu == 'true': plugintools.add_item( action=sync_data("cnVuX2Nyb25qb2I="), title=shou , url=striimilink.replace('\.ts','\.m3u8'), thumbnail=os.path.join(LOAD_LIVE,sync_data("ZGVmYXVsdGxvZ28ucG5n")) , plot='[B]'+kokku+'[/B]', fanart='http://localhost:52307/getpvrthumb&title=%s'%(kava) , extra=kava, isPlayable=False, folder=False ) else: plugintools.add_item( action=sync_data("cmVzdGFydF9zZXJ2aWNl"), title=shou , url=striimilink.replace('\.ts','\.m3u8'), thumbnail=os.path.join(LOAD_LIVE,sync_data("ZGVmYXVsdGxvZ28ucG5n")) , plot='[B]'+kokku+'[/B]', fanart='http://localhost:52307/getpvrthumb&title=%s'%(kava) , extra=kava, isPlayable=True, folder=False ) except: pass plugintools.set_view( plugintools.EPISODES ) xbmc.executebuiltin(vod_channels("Q29udGFpbmVyLlNldFZpZXdNb2RlKDUwMyk="))
def livetv_catchup_genres(params): plugintools.log("ruyaiptv.livetv_catchup_genres "+repr(params)) token = plugintools.get_setting("token") if token=="": return current_page , next_page = get_current_and_next_page(params.get("page")) items = api.get_livetv_catchup_genres(num_page=current_page) for item in items: plugintools.add_item( action="livetv_catchup_by_genre", title=item["title"] , url=item["title"], fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) if len(items)>=MAX_ITEMS_PER_PAGE: plugintools.add_item( action="livetv_catchup_genres", title=">> Next page" , page=next_page, fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.set_view( plugintools.LIST )
def livetv_catchup_dates_by_channel(params): plugintools.log("ruyaiptv.livetv_catchup_dates_by_channel "+repr(params)) token = plugintools.get_setting("token") if token=="": return current_page , next_page = get_current_and_next_page(params.get("page")) channel = params.get("url") items = api.get_livetv_catchup_dates_by_channel(channel,num_page=current_page) for item in items: plugintools.log(repr(item)) plugintools.add_item( action="livetv_catchup_by_channel_and_date", title=item["title"] , url=item["url"] , thumbnail="", plot="", fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , isPlayable=True, folder=True ) plugintools.set_view( plugintools.EPISODES )
def execute_ainfo(params): plugintools.log(pnimi+get_live("TXkgYWNjb3VudCBNZW51IA==")+repr(params)) andmed = grab_epg() kasutajaAndmed = andmed[sync_data("dXNlcl9pbmZv")] seis = kasutajaAndmed[get_live("c3RhdHVz")] aegub = kasutajaAndmed[sync_data("ZXhwX2RhdGU=")] if aegub: aegub = datetime.datetime.fromtimestamp(int(aegub)).strftime('%d/%m/%Y %H:%M') else: aegub = vod_channels("TmV2ZXI=") leavemealone = kasutajaAndmed[get_live("bWF4X2Nvbm5lY3Rpb25z")] polarbears = kasutajaAndmed[sync_data("dXNlcm5hbWU=")] plugintools.add_item( action="", title=sync_data("W0NPTE9SID0gd2hpdGVdVXNlcjogWy9DT0xPUl0=")+polarbears , thumbnail="" , fanart=os.path.join(LOAD_LIVE,sync_data("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action="", title=sync_data("W0NPTE9SID0gd2hpdGVdU3RhdHVzOiBbL0NPTE9SXQ==")+seis , thumbnail="" , fanart=os.path.join(LOAD_LIVE,sync_data("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action="", title=get_live("W0NPTE9SID0gd2hpdGVdRXhwaXJlczogWy9DT0xPUl0=")+aegub , thumbnail="" , fanart=os.path.join(LOAD_LIVE,sync_data("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action="", title=vod_channels("W0NPTE9SID0gd2hpdGVdTWF4IGNvbm5lY3Rpb25zOiBbL0NPTE9SXQ==")+leavemealone , thumbnail="" , fanart=os.path.join(LOAD_LIVE,sync_data("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.set_view( plugintools.LIST )
def stream_video(params): plugintools.log(pnimi + sync_data("TGl2ZSBDaGFubmVscyBNZW51IA==") + repr(params)) if get_live("WHRyZWFtLUNvZGVz") not in open( addonDir + "/" + sync_data("YWRkb24ueG1s")).read(): check_user() if vanemalukk == "true": pealkiri = params.get(sync_data("dGl0bGU=")) vanema_lukk(pealkiri) url = params.get(get_live("dXJs")) request = urllib2.Request(url, headers={"Accept": "application/xml"}) u = urllib2.urlopen(request) tree = ElementTree.parse(u) rootElem = tree.getroot() for channel in tree.findall(sync_data("Y2hhbm5lbA==")): kanalinimi = channel.find(get_live("dGl0bGU=")).text kanalinimi = base64.b64decode(kanalinimi) kanalinimi = kanalinimi.partition("[") striimilink = channel.find(get_live("c3RyZWFtX3VybA==")).text pilt = channel.find(vod_channels("ZGVzY19pbWFnZQ==")).text kava = kanalinimi[1] + kanalinimi[2] kava = kava.partition("]") kava = kava[2] kava = kava.partition(" ") kava = kava[2] shou = get_live("W0NPTE9SIHdoaXRlXSVzIFsvQ09MT1Jd") % ( kanalinimi[0]) + kava kirjeldus = channel.find(sync_data("ZGVzY3JpcHRpb24=")).text if kirjeldus: kirjeldus = base64.b64decode(kirjeldus) nyyd = kirjeldus.partition("(") nyyd = sync_data("Tk9XOiA=") + nyyd[0] jargmine = kirjeldus.partition(")\n") jargmine = jargmine[2].partition("(") jargmine = sync_data("TkVYVDog") + jargmine[0] kokku = nyyd + jargmine else: kokku = "" if pilt: plugintools.add_item(action=sync_data("cnVuX2Nyb25qb2I="), title=shou, url=striimilink, thumbnail=pilt, plot=kokku, fanart=os.path.join( LOAD_LIVE, vod_channels("aG9tZXRoZWF0ZXIuanBn")), extra="", isPlayable=True, folder=False) else: plugintools.add_item( action=sync_data("cnVuX2Nyb25qb2I="), title=shou, url=striimilink, thumbnail=os.path.join(LOAD_LIVE, sync_data("ZGVmYXVsdGxvZ28ucG5n")), plot=kokku, fanart=os.path.join(LOAD_LIVE, sync_data("aG9tZXRoZWF0ZXIuanBn")), extra="", isPlayable=True, folder=False) plugintools.set_view(plugintools.EPISODES) xbmc.executebuiltin(vod_channels("Q29udGFpbmVyLlNldFZpZXdNb2RlKDUwMyk="))
def modo_vista(show): if show == "": plugintools.get_setting("music_id") if show == "0": show = "movies" elif show == "1": show = "thumbnail" elif show == "2": show = "list" elif show == "3": show = "fanart" elif show == "4": show = "seasons" elif show == "5": show = "episodes" elif show == "6": show = "tvshows" if show == "music": plugintools.set_view(TV_SHOWS) if show == "series": plugintools.set_view(EPISODES) if show == "tvshows": plugintools.set_view(TV_SHOWS) if show == "thumbnail": plugintools.set_view(THUMBNAIL) elif show == "movies": plugintools.set_view(MOVIES) elif show == "list": plugintools.set_view(LIST) elif show == "seasons": plugintools.set_view(SEASONS) elif show == "episodes": plugintools.set_view(EPISODES) elif show == "tvshows": plugintools.set_view(TV_SHOWS) else: plugintools.set_view(LIST) plugintools.log("Modo de vista fijado en Música: " + show)
except urllib2.HTTPError, e: print e.getcode() dialog.ok("[COLOR white]Expired Account[/COLOR]",'[COLOR white]You cannot use this service with an expired account[/COLOR]',' ','[COLOR white]Please check your account information[/COLOR]') sys.exit(1) xbmc.executebuiltin("Dialog.Close(busydialog)") tvaAPI = base64.b64decode("JXMvcGFuZWxfYXBpLnBocD91c2VybmFtZT0lcyZwYXNzd29yZD0lcw==")%(lehekylg,kasutajanimi,salasona) link=open_url(tvaAPI) archivecheck = re.compile('"num":.+?,"name":"(.+?)".+?"stream_id":"(.+?)","stream_icon":"(.+?)".+?"tv_archive":(.+?).+?"tv_archive_duration":(.+?)}').findall(link) for kanalinimi,streamid,streamicon,tvarchive,archdays in archivecheck: if tvarchive == '1': streamicon = streamicon.replace('\/','/') archdays = archdays.replace('"','') plugintools.add_item( action=sync_data("dHZhcmNoaXZl"), title=kanalinimi , thumbnail=streamicon, extra=streamid, page=archdays, fanart=os.path.join(LOAD_LIVE,sync_data("aG9tZXRoZWF0ZXIuanBn")), isPlayable=False, folder=True ) plugintools.set_view( plugintools.LIST ) def tvarchive(extra): plugintools.set_view( plugintools.EPISODES ) extra = str(extra) extra = extra.replace(',','') days = re.compile("'page': '(.+?)'").findall(extra) days = str(days) days = days.replace("['","").replace("']","") days = int(days) streamid = re.compile("'extra': '(.+?)'").findall(extra) streamicon = re.compile("'thumbnail': '(.+?)'").findall(extra) streamid = str(streamid) streamid = streamid.replace("['","").replace("']","") streamicon = str(streamicon) streamicon = streamicon.replace("['","").replace("']","")
def o0oOoO00o(params): plugintools.log(pnimi + I1IiI("TWFpbiBNZW51") + repr(params)) #IiI1i ( ) if not lehekylg: plugintools.open_settings_dialog() OOo0o0 = oOOo() ii11i1i1ii00ooo00o0o0o0o = (time.strftime("%d/%m/%Y")) #gksie0s011saew ( ) if OOo0o0 == 1: plugintools.log(pnimi + I1IiI("TG9naW4gU3VjY2Vzcw==")) plugintools.add_item( action="maintenance", title=I1IiI( "TWFpbnRlbmFuY2UgVG9vbHMgIChVbmRlciBEZXZlbG9wbWVudCk="), thumbnail=os.path.join(LOAD_LIVE, o0OOO("")), fanart=os.path.join(LOAD_LIVE, I1IiI("bWFpbnRlbmFuY2UucG5n")), folder=False) plugintools.add_item( action="O0ooo0O0oo0", title=I1IiI("TXkgQWNjb3VudA=="), thumbnail=os.path.join(LOAD_LIVE, o0OOO("YWNjb3VudF9pY29uLnBuZw==")), fanart=os.path.join(LOAD_LIVE, I1IiI("YmFja2dyb3VuZC5qcGc=")), folder=True) plugintools.add_item( action="OoOo", title=I1IiI("TGl2ZSBUVg=="), thumbnail=os.path.join(LOAD_LIVE, o0OOO("bGl2ZV9pY29uLnBuZw==")), fanart=os.path.join(LOAD_LIVE, I1IiI("YmFja2dyb3VuZC5qcGc=")), folder=True) plugintools.add_item(action="O0O00o0OOO0", title=I1IiI("VmlkZW8gT24gRGVtYW5k"), thumbnail=os.path.join(LOAD_LIVE, o0OOO("dm9kX2ljb24ucG5n")), fanart=os.path.join( LOAD_LIVE, I1IiI("YmFja2dyb3VuZC5qcGc=")), folder=True) plugintools.add_item(action="O0O00o0OOO02", title=I1IiI("VFYgU2VyaWVz"), thumbnail=os.path.join(LOAD_LIVE, o0OOO("dHZzLnBuZw==")), fanart=os.path.join( LOAD_LIVE, I1IiI("YmFja2dyb3VuZC5qcGc=")), folder=True) plugintools.add_item( action="oo00O00oO", title=I1IiI("TWFuaWEgSEQgQ2F0Y2h1cCA="), thumbnail=os.path.join(LOAD_LIVE, o0OOO("YXJjaGl2ZV9pY29uLnBuZw==")), fanart=os.path.join(LOAD_LIVE, I1IiI("YmFja2dyb3VuZC5qcGc=")), folder=True) plugintools.add_item( action="i1I111I", title=I1IiI("U2V0dGluZ3M="), thumbnail=os.path.join(LOAD_LIVE, o0OOO("c2V0dGluZ3NfaWNvbi5wbmc=")), fanart=os.path.join(LOAD_LIVE, I1IiI("YmFja2dyb3VuZC5qcGc=")), folder=False) plugintools.add_item(action="speedTest", title=I1IiI("SW50ZXJuZXQgU3BlZWQgVGVzdA=="), thumbnail=os.path.join( LOAD_LIVE, o0OOO("c3BlZWR0ZXN0LnBuZw==")), fanart=os.path.join(LOAD_LIVE, I1IiI("c3BlZWRiZy5wbmc=")), folder=False) plugintools.set_view(plugintools.LIST) else: plugintools.log(pnimi + I1IiI("TG9naW4gZmFpbGVk")) plugintools.message( I1IiI("TG9naW4gZmFpbGVk"), I1IiI( "UG9zc2libGUgcmVhc29uczogV3JvbmcgaG9zdCxwb3J0LHVzZXJuYW1lIG9yIHBhc3MuICAgICAgICAgIFBsZWFzZSByZWNvbmZpZ3VyZSAlcyBwbHVnaW4gd2l0aCBjb3JyZWN0IGRldGFpbHMh" ) % (pnimi)) plugintools.open_settings_dialog() #Oo = plugintools . get_setting ( O0O ( "a2FzdXRhamFuaW1p" ) ) #I1ii11iIi11i = plugintools . get_setting ( I1IiI ( "c2FsYXNvbmE=" ) ) I11i() if plugintools.get_setting("improve") == "true": O0OoOoo00o = xbmc.translatePath( o0OOO("c3BlY2lhbDovL3VzZXJkYXRhL2FkdmFuY2Vkc2V0dGluZ3MueG1s")) if not os.path.exists(O0OoOoo00o): file = open( os.path.join(plugintools.get_runtime_path(), I1IiI("cmVzb3VyY2Vz"), o0OOO("YWR2YW5jZWRzZXR0aW5ncy54bWw="))) iiiI11 = file.read() file.close() file = open(O0OoOoo00o, "w") file.write(iiiI11) file.close() plugintools.message( pnimi, O0O("TmV3IGFkdmFuY2VkIHN0cmVhbWluZyBzZXR0aW5ncyBhZGRlZC4=")) if 91 - 91: oOOOO / i1iiIII111ii + iiIIi1IiIi11.i1Ii if 25 - 25: OO00O0O0O00Oo + OOoooooO / Oo0ooO0oo0oO.oOOOO % Oo0oO0ooo.Ooo0
def perro2(params): plugintools.set_view(THUMBNAIL) url = params.get("url") data = plugintools.read(url) SongLists = plugintools.find_multiple_matches(data, '<channel>(.*?)</channel>') for entry in SongLists: ima = plugintools.find_single_match( entry, '<desc_image>([^"]+)</desc_image>') ima = ima.replace("<![CDATA[", "") ima = ima.replace("]]>", "") playstation = plugintools.find_single_match( entry, '<playlist_url>([^"]+)</playlist_url>') playstation = playstation.replace("<![CDATA[", "") playstation = playstation.replace("]]>", "") titulo = plugintools.find_single_match(entry, '<title>([^"]+)</title>') titulo = base64.b64decode(titulo) titulo = titulo.upper() if titulo.find("LATINOS HD") >= 0: plugintools.add_item(action="perro", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True) if titulo.find("LATINOS HQ") >= 0: plugintools.add_item(action="perro", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True) if titulo.find("LATINOS SD") >= 0: plugintools.add_item(action="perro", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True) if titulo.find("CHILE") >= 0: plugintools.add_item(action="perro", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True) if titulo.find("PERU") >= 0: plugintools.add_item(action="perro", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True) if titulo.find("ESPANA") >= 0: plugintools.add_item(action="perro", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True) if titulo.find("ARGENTINA") >= 0: plugintools.add_item(action="perro", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True) if titulo.find("COLOMBIA") >= 0: plugintools.add_item(action="perro", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True) if titulo.find("DEPORTES") >= 0: plugintools.add_item(action="perro", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True) if titulo.find("AMERICANOS") >= 0: plugintools.add_item(action="perro", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True) if titulo.find("INTERNACIONALES") >= 0: plugintools.add_item(action="perro", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True) if titulo.find("USA HD") >= 0: plugintools.add_item(action="americanos", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True) if titulo.find("HONDURAS") >= 0: plugintools.add_item(action="perro", title=titulo, url=playstation, thumbnail=tv, fanart=estati, folder=True)
def get_myaccount(params): if vanemalukk == "true": pealkiri = params.get("title") vanema_lukk(pealkiri) purl = params.get("url") request = urllib2.Request( purl, headers={ "Accept": "application/xml", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36" }) u = urllib2.urlopen(request) tree = ElementTree.parse(u) rootElem = tree.getroot() for channel in tree.findall("channel"): try: pealkiri = channel.find("title").text pealkiri = base64.b64decode(pealkiri) pealkiri = pealkiri.encode("utf-8") striimilink = channel.find("stream_url").text pilt = channel.find("desc_image").text kirjeldus = channel.find("description").text if kirjeldus: kirjeldus = base64.b64decode(kirjeldus) if pilt: plugintools.add_item(action="restart_service", title=pealkiri, url=striimilink, thumbnail=pilt, plot=kirjeldus, fanart=os.path.join( LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), extra="", isPlayable=True, folder=False) else: plugintools.add_item(action="restart_service", title=pealkiri, url=striimilink, thumbnail=os.path.join("dm9kLnBuZw=="), plot=kirjeldus, fanart=os.path.join( LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), extra="", isPlayable=True, folder=False) except: kanalinimi = channel.find("title").text kanalinimi = base64.b64decode(kanalinimi) kategoorialink = channel.find("playlist_url").text CatID = channel.find("category_id").text plugintools.add_item( action=get_live("Z2V0X215YWNjb3VudA=="), title=kanalinimi, url=kategoorialink, thumbnail=os.path.join(LOAD_LIVE, sync_data("dm9kLnBuZw==")), fanart=os.path.join(LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), info_labels=kanalinimi, folder=True) plugintools.set_view(plugintools.EPISODES)
def play2(params): plugintools.set_view(THUMBNAIL) url = params.get("url") plugintools.play_resolved_url(url)
def peamenyy(params): plugintools.log(pnimi + vod_channels("TWFpbiBNZW51") + repr(params)) load_channels() if not lehekylg: plugintools.open_settings_dialog() if uuendused == "true": kontrolli_uuendusi() channels = kontroll() if channels == 1: plugintools.log(pnimi + vod_channels("TG9naW4gU3VjY2Vzcw==")) plugintools.add_item(action=vod_channels("ZXhlY3V0ZV9haW5mbw=="), title=vod_channels("TXkgQWNjb3VudA=="), thumbnail="", fanart=os.path.join( LOAD_LIVE, vod_channels("YmFja2dyb3VuZC5wbmc=")), folder=True) plugintools.add_item(action=vod_channels("c2VjdXJpdHlfY2hlY2s="), title=vod_channels("TGl2ZSBUVg=="), thumbnail="", fanart=os.path.join( LOAD_LIVE, vod_channels("YmFja2dyb3VuZC5wbmc=")), folder=True) plugintools.add_item( action=vod_channels("ZGV0ZWN0X21vZGlmaWNhdGlvbg=="), title=vod_channels("VmlkZW8gT24gRGVtYW5k"), thumbnail="", fanart=os.path.join(LOAD_LIVE, vod_channels("YmFja2dyb3VuZC5wbmc=")), folder=True) plugintools.add_item(action=vod_channels("bGlzdF9zZXJpZXM="), title=vod_channels("U2VyaWVz"), thumbnail="", fanart=os.path.join( LOAD_LIVE, vod_channels("YmFja2dyb3VuZC5wbmc=")), folder=True) plugintools.add_item(action=vod_channels("bGljZW5zZV9jaGVjaw=="), title=vod_channels("U2V0dGluZ3M="), thumbnail="", fanart=os.path.join( LOAD_LIVE, vod_channels("YmFja2dyb3VuZC5wbmc=")), folder=False) plugintools.set_view(plugintools.LIST) else: plugintools.log(pnimi + vod_channels("TG9naW4gZmFpbGVk")) plugintools.message( vod_channels("TG9naW4gZmFpbGVk"), vod_channels( "UG9zc2libGUgcmVhc29uczogV3JvbmcgaG9zdCxwb3J0LHVzZXJuYW1lIG9yIHBhc3MuICAgICAgICAgIFBsZWFzZSByZWNvbmZpZ3VyZSAlcyBwbHVnaW4gd2l0aCBjb3JyZWN0IGRldGFpbHMh" ) % (pnimi)) exit() if plugintools.get_setting("improve") == "true": tseaded = xbmc.translatePath( sync_data("c3BlY2lhbDovL3VzZXJkYXRhL2FkdmFuY2Vkc2V0dGluZ3MueG1s")) if not os.path.exists(tseaded): file = open( os.path.join(plugintools.get_runtime_path(), vod_channels("cmVzb3VyY2Vz"), sync_data("YWR2YW5jZWRzZXR0aW5ncy54bWw="))) data = file.read() file.close() file = open(tseaded, "w") file.write(data) file.close() plugintools.message( pnimi, get_live( "TmV3IGFkdmFuY2VkIHN0cmVhbWluZyBzZXR0aW5ncyBhZGRlZC4="))
def tvarchive(extra): plugintools.set_view(plugintools.EPISODES) extra = str(extra) extra = extra.replace(',', '') days = re.compile("'page': '(.+?)'").findall(extra) days = str(days) days = days.replace("['", "").replace("']", "") days = int(days) streamid = re.compile("'extra': '(.+?)'").findall(extra) streamicon = re.compile("'thumbnail': '(.+?)'").findall(extra) streamid = str(streamid) streamid = streamid.replace("['", "").replace("']", "") streamicon = str(streamicon) streamicon = streamicon.replace("['", "").replace("']", "") now = str(datetime.datetime.now()).replace('-', '').replace(':', '').replace( ' ', '') date3 = datetime.datetime.now() - datetime.timedelta(days) date = str(date3) date = str(date).replace('-', '').replace(':', '').replace(' ', '') APIv2 = base64.b64decode( "JXM6JXMvcGxheWVyX2FwaS5waHA/dXNlcm5hbWU9JXMmcGFzc3dvcmQ9JXMmYWN0aW9uPWdldF9zaW1wbGVfZGF0YV90YWJsZSZzdHJlYW1faWQ9JXM=" ) % (lehekylg, pordinumber, kasutajanimi, salasona, streamid) link = open_url(APIv2) match = re.compile( '"title":"(.+?)".+?"start":"(.+?)","end":"(.+?)","description":"(.+?)"' ).findall(link) for ShowTitle, start, end, DesC in match: ShowTitle = base64.b64decode(ShowTitle) DesC = base64.b64decode(DesC) format = '%Y-%m-%d %H:%M:%S' try: modend = dtdeep.strptime(end, format) modstart = dtdeep.strptime(start, format) except: modend = datetime.datetime(*(time.strptime(end, format)[0:6])) modstart = datetime.datetime(*(time.strptime(start, format)[0:6])) StreamDuration = modend - modstart modend_ts = time.mktime(modend.timetuple()) modstart_ts = time.mktime(modstart.timetuple()) Duration = plugintools.get_setting("FinalDuration") if not Duration == 'Off': FinalDuration = Duration else: FinalDuration = int(modend_ts - modstart_ts) / 60 strstart = start Realstart = str(strstart).replace('-', '').replace(':', '').replace(' ', '') start2 = start[:-3] editstart = start2 start2 = str(start2).replace(' ', ' - ') t = float(modstart_ts) Prefix = time.strftime("%a %d %H:%M", time.gmtime(t)) start = str(editstart).replace(' ', ':') Editstart = start[:13] + '-' + start[13:] Finalstart = Editstart.replace('-:', '-') if Realstart > date: if Realstart < now: catchupURL = base64.b64decode( "JXM6JXMvc3RyZWFtaW5nL3RpbWVzaGlmdC5waHA/dXNlcm5hbWU9JXMmcGFzc3dvcmQ9JXMmc3RyZWFtPSVzJnN0YXJ0PQ==" ) % (lehekylg, pordinumber, kasutajanimi, salasona, streamid) ResultURL = catchupURL + str( Finalstart) + "&duration=%s" % (FinalDuration) kanalinimi = str( '[COLOR white]' + Prefix + '[/COLOR]' ) + " - " + '[COLOR gold]' + ShowTitle + '[/COLOR]' plugintools.add_item(action=sync_data("cnVuX2Nyb25qb2I="), title=kanalinimi, url=ResultURL, thumbnail=streamicon, plot=DesC, fanart=os.path.join( LOAD_LIVE, sync_data("aG9tZXRoZWF0ZXIuanBn")), extra="", isPlayable=True, folder=False)
def stream_video(params): EPGColour = plugintools.get_setting("EPGColour") kasutajanimi = plugintools.get_setting("Username") salasona = plugintools.get_setting("Password") CatID = params.get(get_live("dXJs")) #description url = get_live( "JXM6JXMvZW5pZ21hMi5waHA/dXNlcm5hbWU9JXMmcGFzc3dvcmQ9JXMmdHlwZT1nZXRfbGl2ZV9zdHJlYW1zJmNhdF9pZD0lcw==" ) % (lehekylg, pordinumber, kasutajanimi, salasona, CatID) request = urllib2.Request( url, headers={ "Accept": "application/xml", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36" }) u = urllib2.urlopen(request) tree = ElementTree.parse(u) rootElem = tree.getroot() for channel in tree.findall(sync_data("Y2hhbm5lbA==")): #channel kanalinimi = channel.find(get_live("dGl0bGU=")).text #title kanalinimi = base64.b64decode(kanalinimi) kanalinimi = kanalinimi.partition("[") striimilink = channel.find( get_live("c3RyZWFtX3VybA==")).text #stream_url pony = striimilink if ("%s:%s/enigma2.php") % (lehekylg, pordinumber) in striimilink: pony = striimilink.split(kasutajanimi, 1)[1] pony = pony.split(salasona, 1)[1] pony = pony.split("/", 1)[1] pilt = channel.find(vod_channels("ZGVzY19pbWFnZQ==")).text #desc_image kava = kanalinimi[1] + kanalinimi[2] kava = kava.partition("]") kava = kava[2] kava = kava.partition(" ") kava = kava[2] shou = get_live( "W0NPTE9SIHdoaXRlXSVzWy9DT0xPUl0gW0NPTE9SICVzXSVzIFsvQ09MT1Jd") % ( kanalinimi[0], EPGColour, kava) kirjeldus = channel.find( sync_data("ZGVzY3JpcHRpb24=")).text #description if kirjeldus: kirjeldus = base64.b64decode(kirjeldus) nyyd = kirjeldus.partition("(") nyyd = sync_data("Tm93OiA=") + nyyd[0] jargmine = kirjeldus.partition(")\n") jargmine = jargmine[2].partition("(") jargmine = sync_data("TmV4dDog") + jargmine[0] #shou kokku = nyyd + jargmine else: kokku = "" if pilt: plugintools.add_item(action=sync_data("cnVuX2Nyb25qb2I="), title=shou, url=pony, thumbnail=pilt, plot=kokku, fanart=os.path.join( LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), extra="", isPlayable=True, folder=False) else: plugintools.add_item( action=sync_data("cnVuX2Nyb25qb2I="), title=shou, url=pony, thumbnail=os.path.join(LOAD_LIVE, vod_channels("YWxsY2hhbm5lbHMucG5n")), plot=kokku, fanart=os.path.join(LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), extra="", isPlayable=True, folder=False) plugintools.set_view(plugintools.EPISODES)
def RecentlyAdded(params): plugintools.set_view(plugintools.MOVIES) Recent = base64.b64decode( b'JXM6JXMvcGxheWVyX2FwaS5waHA/dXNlcm5hbWU9JXMmcGFzc3dvcmQ9JXMmYWN0aW9uPWdldF92b2Rfc3RyZWFtcw==' ) % (lehekylg, pordinumber, kasutajanimi, salasona) Load = json.load(urllib2.urlopen(Recent)) now = datetime.datetime.now() diff = datetime.timedelta(days=7) future = now - diff Past = future.strftime("%Y-%m-%d %H:%M:%S") for x in Load: DateAdded = x['added'] pealkiri = x['name'] Icon = x['stream_icon'] StreamID = x['stream_id'] Ext = x['container_extension'] Normal = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(float(DateAdded))) if Normal > Past: if StreamID: striimilink = vod_channels('JXM6JXMvbW92aWUvJXMvJXMvJXMuJXM=' ) % (lehekylg, pordinumber, kasutajanimi, salasona, StreamID, Ext) URL = vod_channels( 'JXM6JXMvcGxheWVyX2FwaS5waHA/dXNlcm5hbWU9JXMmcGFzc3dvcmQ9JXMmYWN0aW9uPWdldF92b2RfaW5mbyZ2b2RfaWQ9JXM=' ) % (lehekylg, pordinumber, kasutajanimi, salasona, StreamID) Meta = json.load(urllib2.urlopen(URL)) try: Plot = Meta['info']['plot'] except: Plot = 'No plot Available' try: Genre = Meta['info']['genre'] except: Genre = 'Unknown Genre' try: Director = Meta['info']['director'] except: Director = 'No Director Specified' try: ReleaseDate = Meta['info']['releasedate'] except: ReleaseDate = 'Release Date Not Found' try: Duration = Meta['info']['duration'] except: Duration = 'Duration Not Found' kirjeldus = Duration + '\n' + Plot.encode( "utf-8") + '\n' + Director.encode( "utf-8") + '\n' + Genre.encode( "utf-8") + '\n' + ReleaseDate if Icon: plugintools.add_item(action="restart_service", title=pealkiri.encode("utf-8"), url=striimilink, thumbnail=Icon, plot=kirjeldus.encode("utf-8"), fanart=os.path.join( LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), extra="", isPlayable=True, folder=False) else: plugintools.add_item( action="restart_service", title=pealkiri.encode("utf-8"), url=striimilink, thumbnail=os.path.join(LOAD_LIVE, sync_data("dm9kLnBuZw==")), plot=kirjeldus.encode("utf-8"), fanart=os.path.join(LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), extra="", isPlayable=True, folder=False)
def I11II1i(params): plugintools.log(pnimi + o0OOO("TGl2ZSBDaGFubmVscyBNZW51IA==") + repr(params)) if O0O("TWFuaWEgSEQ=") not in open(ii + "/" + o0OOO("YWRkb24ueG1s")).read(): Iii1ii1II11i() if vanemalukk == "true": IIIII = params.get(o0OOO("dGl0bGU=")) ooooooO0oo(IIIII) IIiiiiiiIi1I1 = params.get(O0O("dXJs")) IiIiIi = urllib2.Request(IIiiiiiiIi1I1, headers={"Accept": "application/xml"}) II = urllib2.urlopen(IiIiIi) iI = ElementTree.parse(II) iI11iiiI1II = iI.getroot() for O0oooo0Oo00 in iI.findall(o0OOO("Y2hhbm5lbA==")): Ii11iii11I = O0oooo0Oo00.find(O0O("dGl0bGU=")).text Ii11iii11I = base64.b64decode(Ii11iii11I) Ii11iii11I = Ii11iii11I.partition("[") I1IIIii = O0oooo0Oo00.find(O0O("c3RyZWFtX3VybA==")).text oOoOooOo0o0 = O0oooo0Oo00.find(I1IiI("ZGVzY19pbWFnZQ==")).text OOOO = Ii11iii11I[1] + Ii11iii11I[2] OOOO = OOOO.partition("]") OOOO = OOOO[2] OOOO = OOOO.partition("min") plugintools.log(OOOO[0] + " " + OOOO[1] + " " + OOOO[2]) OOOO = OOOO[2] OOO00 = O0O("W0NPTE9SIGdyZXldJXMgWy9DT0xPUl0=") % ( Ii11iii11I[0]) + OOOO iiiiiIIii = O0oooo0Oo00.find(o0OOO("ZGVzY3JpcHRpb24=")).text if iiiiiIIii: iiiiiIIii = base64.b64decode(iiiiiIIii) O000OO0 = iiiiiIIii.partition("(") O000OO0 = o0OOO("Tk9XOiA=") + O000OO0[0] I11iii1Ii = iiiiiIIii.partition(")\n") I11iii1Ii = I11iii1Ii[2].partition("(") I11iii1Ii = o0OOO("TkVYVDog") + I11iii1Ii[0] I1IIiiIiii = O000OO0 + I11iii1Ii else: I1IIiiIiii = "" if striimiv2ljund == "true": I1IIIii = I1IIIii.replace(".ts", ".m3u8") if oOoOooOo0o0: oOoOooOo0o0 = oOoOooOo0o0.strip() plugintools.add_item(action=o0OOO("T09PME9Pbw=="), title=OOO00, url=I1IIIii, thumbnail=oOoOooOo0o0, plot=I1IIiiIiii, fanart=os.path.join( LOAD_LIVE, I1IiI("aG9tZXRoZWF0ZXIuanBn")), extra="", isPlayable=True, folder=False) else: plugintools.add_item( action=o0OOO("T09PME9Pbw=="), title=OOO00, url=I1IIIii, thumbnail=os.path.join(LOAD_LIVE, o0OOO("ZGVmYXVsdGxvZ28ucG5n")), plot=I1IIiiIiii, fanart=os.path.join(LOAD_LIVE, o0OOO("aG9tZXRoZWF0ZXIuanBn")), extra="", isPlayable=True, folder=False) plugintools.set_view(plugintools.EPISODES) #xbmc . executebuiltin ( I1IiI ( "Q29udGFpbmVyLlNldFZpZXdNb2RlKDU1KQ==" ) ) if 97 - 97: OOoooooO - I1I1i1 * I1iII1iiII / ooO0Oooo00 % OO00O0O0O00Oo - o0OO0
def security_check(params): plugintools.add_item( action=vod_channels("VFZzZWFyY2g="), title="[COLOR red][B]Search Shows on Now[/B][/COLOR]", thumbnail=os.path.join(LOAD_LIVE, vod_channels("U2VhcmNoLWljb24ucG5n")), fanart=os.path.join(LOAD_LIVE, vod_channels("YmFja2dyb3VuZC5wbmc=")), folder=True) plugintools.log(pnimi + sync_data("TGl2ZSBNZW51") + repr(params)) request = urllib2.Request( televisioonilink, headers={ "Accept": "application/xml", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36" }) u = urllib2.urlopen(request) tree = ElementTree.parse(u) rootElem = tree.getroot() for channel in tree.findall(sync_data("Y2hhbm5lbA==")): kanalinimi = channel.find(get_live("dGl0bGU=")).text kanalinimi = base64.b64decode(kanalinimi) kategoorialink = channel.find(vod_channels("cGxheWxpc3RfdXJs")).text CatID = channel.find(get_live("Y2F0ZWdvcnlfaWQ=")).text ICON = os.path.join(LOAD_LIVE, sync_data("aWNvbi5wbmc=")) if 'NHL' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("TkhMLnBuZw==")) if 'MLB' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("TUxCLnBuZw==")) if 'SPORTS' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("c3BvcnRzLnBuZw==")) if 'USA' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("VVNBLnBuZw==")) if 'RADIO' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("VGhlX0xpdmVfUmFkaW9fTG9nby5wbmc=")) if 'CANADIAN' in kanalinimi.upper(): ICON = os.path.join( LOAD_LIVE, sync_data( "RmxhZ19NYXBfb2ZfdGhlX1VuaXRlZF9TdGF0ZXNfKENhbmFkYSkucG5n") ) if 'LATINO' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("c3BhbmlzaC5wbmc=")) if 'PAY PER VIEW' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("UFBWLUxvZ28tRmluYWwucG5n")) if '24/7' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("MjQ3LnBuZw==")) if 'LOCAL NEWS' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("TkVXUy5wbmc=")) if 'ALL' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("YWxsY2hhbm5lbHMucG5n")) if 'MUSIC' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("TXVzaWMtaWNvbi5wbmc=")) if 'NFL' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("TkZMVVMucG5n")) if 'NBA' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("TkJBVFYucG5n")) if 'ADULT' in kanalinimi.upper(): ICON = os.path.join(LOAD_LIVE, sync_data("UE9STi5wbmc=")) plugintools.add_item(action=get_live("c3RyZWFtX3ZpZGVv"), title=kanalinimi, url=CatID, thumbnail=ICON, fanart=os.path.join( LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), info_labels=kanalinimi, folder=True) plugintools.set_view(plugintools.LIST)
def stream_video(params): alreadyinput = False plugintools.log(pnimi + "Live Channels Menu " + repr(params)) url = params.get("url") request = urllib2.Request(url, headers={ 'User-Agent': 'Mozilla/5.0', "Accept": "application/xml" }) u = urllib2.urlopen(request) tree = ElementTree.parse(u) rootElem = tree.getroot() for channel in tree.findall("channel"): kanalinimi = channel.find("title").text kanalinimi = base64.b64decode(kanalinimi) kanalinimi = kanalinimi.partition("[") striimilink = channel.find("stream_url").text pilt = channel.find("desc_image").text kava = kanalinimi[1] + kanalinimi[2] kava = kava.partition("]") kava = kava[2] kava = kava.partition(" ") kava = kava[2] shou = get_live("JXM=") % (kanalinimi[0] + kanalinimi[1] + kanalinimi[2]) kirjeldus = channel.find("description").text if kirjeldus: kirjeldus = base64.b64decode(kirjeldus) nyyd = kirjeldus.partition("(") nyyd = "NOW: " + nyyd[0] jargmine = kirjeldus.partition(")\n") jargmine = jargmine[2].partition("(") jargmine = "NEXT: " + jargmine[0] kokku = nyyd + jargmine else: kokku = "" a = '' if vanemalukk == "true": if alreadyinput != True: if any(s in shou for s in a): xbmc.executebuiltin(( u'XBMC.Notification("Parental-Lock Enabled!", "Channels may contain adult content", 2000)' )) dialog = xbmcgui.Dialog() text = dialog.input( "Parental-Lock: Please enter your Parental Code", type=xbmcgui.INPUT_NUMERIC, option=xbmcgui.ALPHANUM_HIDE_INPUT) if text != plugintools.get_setting("vanemakood"): xbmc.executebuiltin(( u'XBMC.Notification("Parental-Lock Error!", "Incorrect code!", 3000)' )) return else: alreadyinput = True if pilt: plugintools.add_item(action="run_cronjob", title=shou, url=striimilink, thumbnail=pilt, plot=kokku, fanart=os.path.join(LOAD_LIVE, "hometheater.jpg"), extra="", isPlayable=True, folder=False) else: plugintools.add_item(action="run_cronjob", title=shou, url=striimilink, thumbnail=os.path.join(LOAD_LIVE, "logo.png"), plot=kokku, fanart=os.path.join(LOAD_LIVE, "hometheater.jpg"), extra="", isPlayable=True, folder=False) if "cat_id=3" in url: plugintools.set_view(plugintools.MOVIES) else: plugintools.set_view(plugintools.LIST) xbmcplugin.addSortMethod(handle=int(sys.argv[1]), sortMethod=xbmcplugin.SORT_METHOD_TITLE)
def multilink(params): plugintools.log('[%s %s].multilink %s' % (addonName, addonVersion, repr(params))) show = params.get("page") plugintools.set_view(show) dialog = xbmcgui.Dialog() filename = params.get("extra") plugintools.log("filename= " + filename) file = open(playlists + filename, "r") file.seek(0) title = params.get("title") #title = parser_title(params.get("title")) title_parsed = parser_title(params.get("title")) plugintools.log("title= " + title) if title.find(" ") >= 0: title = title.split(" ") title = title[0].strip() title = "@" + title # En la lista aparecerá el título precedido por el símbolo @ encuentra = '#EXTINF:-1,' + title.replace( " [COLOR lightyellow][Multilink][/COLOR]", "").replace( "[COLOR white]", "") if encuentra.startswith("#EXTINF:-1,@") == True: title_epg = title.replace("[COLOR white]", "").split("[COLOR orange") if len(title_epg) >= 1: title_epg = title_epg[0] encuentra = '#EXTINF:-1,' + title_epg encuentra = encuentra.strip() plugintools.log("*** Texto a buscar= " + encuentra) i = 0 data = file.readline() if data.startswith("#EXTINF:-1,@") == True: epg_no = plugintools.get_setting("epg_no") plugintools.log("epg_no= " + epg_no) if epg_no == "0": # No desactivado EPG pass else: data = data.replace("@", "") encuentra = encuentra.replace("@", "") print data while i <= 8: # Control para EOF if data == "": i = i + 1 data = file.readline().strip() if data.startswith("#EXTINF:-1,@") == True: data = data.replace("@", "") continue else: i = 0 plugintools.log("encuentra= " + encuentra) plugintools.log("data= " + data) if data.startswith(encuentra) == True or data.startswith( '#EXTINF:-1,@' + title.replace(" [COLOR lightyellow][Multilink][/COLOR]", "")) == True: print 'correcto' data = file.readline().strip() if data == "#multilink": #Leemos número de enlaces i = 1 # Variable contador desde 1 porque nos servirá para nombrar los títulos # Recopilamos enlaces en una lista linea_url = file.readline().strip() if linea_url.startswith("desc") == True: linea_url = file.readline().strip() title_options = [] url_options = [] while linea_url != "#multilink": linea_url = linea_url.strip().split(",") url_option = linea_url[1] title_option = linea_url[0] if title_option.startswith("@") == True: title_option = title_option.replace("@", "") # Ejecutamos EPG... epg_channel = [] epg_channel = epg_now(title_option) if epg_now(title_option) == False: print "No hay EPG" else: try: print epg_channel ejemplo = epg_channel[0] print epg_channel[0] title_option = title_option + " [COLOR orange][I][B] " + epg_channel[ 0] + "[/B] " + epg_channel[ 1] + "[/I][/COLOR] " except: pass title_option = str(i) + ': ' + title_option title_fixed = multiparse_title(title_option, url_option, show) title_option = title_fixed plugintools.log("title= " + title_option) i = i + 1 title_options.append(title_option) url_options.append(url_option) linea_url = file.readline() linea_url = linea_url.strip() print title_options print url_options num_items = i - 1 plugintools.log("Núm. items= " + str(num_items)) if title.startswith( "@" ) == True: # Para evitar que en el título del cuadro de diálogo aparezca el nombre del canal precedido por el símbolo arroba (@) title = title.replace("@", "") try: selector = plugintools.selector(title_options, title) print selector if selector >= 0: url_analyzer(url_options[selector]) except KeyboardInterrupt: pass except IndexError: raise else: data = file.readline().strip() plugintools.modo_vista(show)
def execute_ainfo(params): try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("8.8.8.8", 80)) localip = s.getsockname()[0] except: localip = None try: f = urllib.urlopen("http://ip.42.pl/raw") html_doc = f.read() f.close() except: html_doc = None try: h = urllib.urlopen("https://myhostname.net") host_doc = h.read() h.close() hostname = re.compile( 'span id="curHostname" class="notranslate">(.+?)</span>').findall( host_doc) for i in hostname: host = i except: host = None data = json.load(urllib2.urlopen(PlayerAPI)) today = datetime.date.today() x = data['user_info'] Username = x['username'] Status = x['status'] Creation = x['created_at'] Created = datetime.datetime.fromtimestamp( int(Creation)).strftime('%H:%M %d/%m/%Y') Current = x['active_cons'] Max = x['max_connections'] Expiry = x['exp_date'] if Expiry == None: Expired = 'Never' else: Expired = datetime.datetime.fromtimestamp( int(Expiry)).strftime('%H:%M %d/%m/%Y') plugintools.add_item(action="", title="[COLOR white][B]User: "******"[/B][/COLOR]", thumbnail=os.path.join(LOAD_LIVE, vod_channels("bXlhY2MucG5n")), fanart=os.path.join(LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), folder=False) plugintools.add_item(action="", title="[COLOR white][B]Status: " + Status + "[/B][/COLOR]", thumbnail=os.path.join(LOAD_LIVE, vod_channels("bXlhY2MucG5n")), fanart=os.path.join(LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), folder=False) plugintools.add_item(action="", title="[COLOR white][B]Created: " + Created + "[/B][/COLOR]", thumbnail=os.path.join(LOAD_LIVE, vod_channels("bXlhY2MucG5n")), fanart=os.path.join(LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), folder=False) plugintools.add_item(action="", title="[COLOR white][B]Expires: " + Expired + "[/B][/COLOR]", thumbnail=os.path.join(LOAD_LIVE, vod_channels("bXlhY2MucG5n")), fanart=os.path.join(LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), folder=False) plugintools.add_item(action="", title="[COLOR white][B]Max connections: " + Max + "[/B][/COLOR]", thumbnail=os.path.join(LOAD_LIVE, vod_channels("bXlhY2MucG5n")), fanart=os.path.join(LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), folder=False) plugintools.add_item(action="", title="[COLOR white][B]Active connections: " + Current + "[/B][/COLOR]", thumbnail=os.path.join(LOAD_LIVE, vod_channels("bXlhY2MucG5n")), fanart=os.path.join(LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), folder=False) if localip: plugintools.add_item( action="", title="[COLOR white]Local IP: " + localip + "[/COLOR]", thumbnail=os.path.join(LOAD_LIVE, vod_channels("bXlhY2MucG5n")), fanart=os.path.join(LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), folder=False) if html_doc: plugintools.add_item( action="", title="[COLOR white]External IP: " + html_doc + "[/COLOR]", thumbnail=os.path.join(LOAD_LIVE, vod_channels("bXlhY2MucG5n")), fanart=os.path.join(LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), folder=False) if host: plugintools.add_item( action="", title="[COLOR white]Hostname: " + host + "[/COLOR]", thumbnail=os.path.join(LOAD_LIVE, vod_channels("bXlhY2MucG5n")), fanart=os.path.join(LOAD_LIVE, sync_data("dGhlYXRlci5qcGc=")), folder=False) plugintools.set_view(plugintools.LIST)
def kosmipop_linker(params): lista = params.get("url") r = requests.get(lista) data = r.content titu_lista = plugintools.find_single_match(data, 'titu_lista=(.*?)</Line>') logo_lista = plugintools.find_single_match(data, 'logo_lista=(.*?)</Line>') autor = plugintools.find_single_match(data, 'autor=(.*?)</Line>') fondo_lista = plugintools.find_single_match(data, 'fondo_lista=(.*?)</Line>') thumbnail = logo_lista fanart = fondo_lista plugintools.add_item(action="", url="", title="[COLOR skyblue][B] " + titu_lista + "[/B] [I][COLOR yellow] **** " + autor + " ****[/I][/COLOR]", thumbnail=logo_lista, fanart=fondo_lista, folder=False, isPlayable=False) plugintools.add_item(action="", url="", title="", thumbnail=logo_lista, fanart=fondo_lista, folder=False, isPlayable=False) if "<Coment" in data: comentarios = plugintools.find_multiple_matches( data, '<Coment(.*?)/Coment>') for item in comentarios: comentario = plugintools.find_single_match( item, '>(.*?)<').strip().title() if len(comentario) > 0: plugintools.add_item(action="", url="", title="[COLOR yellow]" + comentario + "[/COLOR]", thumbnail=logo_lista, fanart=fondo_lista, folder=False, isPlayable=False) listas = plugintools.find_multiple_matches(data, '<Line>(.*?)</Line>') #Las ordeno y pongo identificativo de cambio de letra #para que no exista desorden entre mayusculas y minusculas... pongo titulo en formato Title() listas_orden = [] for item in listas: titu = plugintools.find_single_match(item, 'titu=(.*?)url=').strip() if len(titu) <> 0: listas_orden.append(item.replace(titu, titu.title())) listas_orden.sort() letra = "" HaySinopsis = False for item in listas_orden: titu = plugintools.find_single_match(item, 'titu=(.*?)url=').strip() url = plugintools.find_single_match(item, 'url=(.*?)logo=').strip() logo = plugintools.find_single_match(item, 'logo=(.*?)fondo=').strip() fondo = plugintools.find_single_match(item, 'fondo=(.*?)sinop=').strip() sinop = plugintools.find_single_match(item, 'sinop=(.*)').strip() if len(logo) == 0: logo = thumbnail if len(fondo) == 0: fondo = fanart if len(sinop) <> 0: HaySinopsis = True if titu[:1] <> letra: letra = titu[:1] plugintools.add_item(action="", url=url, title="[COLOR blue][I]**" + letra + "**[/I][/COLOR]", thumbnail=logo_lista, fanart=fondo_lista, extra=sinop, folder=False, isPlayable=False) datamovie = {} datamovie["Plot"] = sinop if url.startswith("http://copiapop.com/") == True: accion = "abrekosmipop_lista" titu = titu + " [COLOR skyblue][I][CopiaPop][/I]" elif url.startswith("http://diskokosmiko.mx/") == True: accion = "abrekosmipop_lista" titu = titu + " [COLOR yellow][I][DiskoKosmiko][/I]" elif url.startswith("http://www.dailymotion.com/") == True: accion = "abredaily_lista" titu = titu + " [COLOR orange][I][DailyMotion][/I]" elif url.startswith("https://vimeo.com/") == True: accion = "abrevimeo_lista" titu = titu + " [COLOR green][I][Vimeo][/I]" elif url.startswith("https://www.youtube.") == True: accion = "abretube_lista" titu = titu + " [COLOR red][I][YouTube][/I]" plugintools.add_item(action=accion, url=url, title='[COLOR white]' + titu + '[/COLOR]', thumbnail=logo, fanart=fondo, info_labels=datamovie, folder=True, isPlayable=False) if HaySinopsis: plugintools.set_view(plugintools.TV_SHOWS) else: plugintools.set_view(plugintools.LIST)
def play(params): plugintools.set_view(TV_SHOWS) url = params.get("url") plugintools.play_resolved_url(url)