def set_android_port(): ports = ['8621','8622','8623'] ports_pickle = ['http://p2p-strm.googlecode.com/svn/trunk/Modules/Android/sessconf/8621/sessconfig.pickle','http://p2p-strm.googlecode.com/svn/trunk/Modules/Android/sessconf/8622/sessconfig.pickle','http://p2p-strm.googlecode.com/svn/trunk/Modules/Android/sessconf/8623/sessconfig.pickle'] choose=xbmcgui.Dialog().select(translate(600015),ports) if choose > -1: escolha = ports_pickle[choose] session_pickle_android = os.path.join('/sdcard','.ACEStream','sessconfig.pickle') download_tools().Downloader(escolha,session_pickle_android,'',translate(40000)) settings.setSetting('android_port',ports[choose]) xbmc.executebuiltin("Notification(%s,%s,%i,%s)" % (translate(40000), translate(600026), 1,addonpath+"/icon.png")) xbmc.executebuiltin("Container.Refresh")
def set_android_port(): ports = ['8621', '8622', '8623'] ports_pickle = [ 'http://p2p-strm.googlecode.com/svn/trunk/Modules/Android/sessconf/8621/sessconfig.pickle', 'http://p2p-strm.googlecode.com/svn/trunk/Modules/Android/sessconf/8622/sessconfig.pickle', 'http://p2p-strm.googlecode.com/svn/trunk/Modules/Android/sessconf/8623/sessconfig.pickle' ] choose = xbmcgui.Dialog().select(translate(600015), ports) if choose > -1: escolha = ports_pickle[choose] session_pickle_android = os.path.join('/sdcard', '.ACEStream', 'sessconfig.pickle') download_tools().Downloader(escolha, session_pickle_android, '', translate(40000)) settings.setSetting('android_port', ports[choose]) xbmc.executebuiltin( "Notification(%s,%s,%i,%s)" % (translate(40000), translate(600026), 1, addonpath + "/icon.png")) xbmc.executebuiltin("Container.Refresh")
def import_advancedxml(): userdatapath = xbmc.translatePath(os.path.join('special://home/userdata'.decode('utf-8'),''.decode('utf-8'))) advancedsettings_var = os.path.join(userdatapath,'advancedsettings.xml') advancedsettingsbackup_var = os.path.join(userdatapath,'advancedsettingsbackup.xml') if xbmcvfs.exists(advancedsettings_var): print("An advanced settings XML file already exists") if xbmcvfs.exists(advancedsettingsbackup_var): print("An advanced settings backup already exists") xbmcvfs.delete(advancedsettingsbackup_var) xbmcvfs.rename(advancedsettings_var,advancedsettingsbackup_var) advancedname = ["Cachemembuffer=252420","freememorycachepercent=5"] advancedurl = ["http://p2p-strm.googlecode.com/svn/trunk/Advancedsettings/advancedsettings.xml","http://p2p-strm.googlecode.com/svn/trunk/Advancedsettings/advancedsettingstonicillo.xml"] index = xbmcgui.Dialog().select(translate(40185), advancedname) if index > -1: download_tools().Downloader(advancedurl[index],advancedsettings_var,translate(40059),translate(40000)) mensagemok(translate(40000),translate(40060)) else: xbmcvfs.rename(advancedsettings_var,advancedsettingsbackup_var) advancedname = ["Cachemembuffer=252420","freememorycachepercent=5"] advancedurl = ["http://p2p-strm.googlecode.com/svn/trunk/Advancedsettings/advancedsettings.xml","http://p2p-strm.googlecode.com/svn/trunk/Advancedsettings/advancedsettingstonicillo.xml"] index = xbmcgui.Dialog().select(translate(40185), advancedname) if index > -1: download_tools().Downloader(advancedurl[index],advancedsettings_var,translate(40059),translate(40000)) mensagemok(translate(40000),translate(40060)) else: print("No advancedsettings.xml in the system yet") advancedname = ["Cachemembuffer=252420","freememorycachepercent=5"] advancedurl = ["http://p2p-strm.googlecode.com/svn/trunk/Advancedsettings/advancedsettings.xml","http://p2p-strm.googlecode.com/svn/trunk/Advancedsettings/advancedsettingstonicillo.xml"] index = xbmcgui.Dialog().select(translate(40185), advancedname) if index > -1: download_tools().Downloader(advancedurl[index],advancedsettings_var,translate(40059),translate(40000)) mensagemok(translate(40000),translate(40060)) xbmc.executebuiltin("Container.Refresh")
def import_advancedxml(): userdatapath = xbmc.translatePath( os.path.join('special://home/userdata'.decode('utf-8'), ''.decode('utf-8'))) advancedsettings_var = os.path.join(userdatapath, 'advancedsettings.xml') advancedsettingsbackup_var = os.path.join(userdatapath, 'advancedsettingsbackup.xml') if xbmcvfs.exists(advancedsettings_var): print("An advanced settings XML file already exists") if xbmcvfs.exists(advancedsettingsbackup_var): print("An advanced settings backup already exists") xbmcvfs.delete(advancedsettingsbackup_var) xbmcvfs.rename(advancedsettings_var, advancedsettingsbackup_var) advancedname = [ "Cachemembuffer=252420", "freememorycachepercent=5" ] advancedurl = [ "http://p2p-strm.googlecode.com/svn/trunk/Advancedsettings/advancedsettings.xml", "http://p2p-strm.googlecode.com/svn/trunk/Advancedsettings/advancedsettingstonicillo.xml" ] index = xbmcgui.Dialog().select(translate(40185), advancedname) if index > -1: download_tools().Downloader(advancedurl[index], advancedsettings_var, translate(40059), translate(40000)) mensagemok(translate(40000), translate(40060)) else: xbmcvfs.rename(advancedsettings_var, advancedsettingsbackup_var) advancedname = [ "Cachemembuffer=252420", "freememorycachepercent=5" ] advancedurl = [ "http://p2p-strm.googlecode.com/svn/trunk/Advancedsettings/advancedsettings.xml", "http://p2p-strm.googlecode.com/svn/trunk/Advancedsettings/advancedsettingstonicillo.xml" ] index = xbmcgui.Dialog().select(translate(40185), advancedname) if index > -1: download_tools().Downloader(advancedurl[index], advancedsettings_var, translate(40059), translate(40000)) mensagemok(translate(40000), translate(40060)) else: print("No advancedsettings.xml in the system yet") advancedname = ["Cachemembuffer=252420", "freememorycachepercent=5"] advancedurl = [ "http://p2p-strm.googlecode.com/svn/trunk/Advancedsettings/advancedsettings.xml", "http://p2p-strm.googlecode.com/svn/trunk/Advancedsettings/advancedsettingstonicillo.xml" ] index = xbmcgui.Dialog().select(translate(40185), advancedname) if index > -1: download_tools().Downloader(advancedurl[index], advancedsettings_var, translate(40059), translate(40000)) mensagemok(translate(40000), translate(40060)) xbmc.executebuiltin("Container.Refresh")
def advanced_menu(): addLink('[COLOR orange]XBMC Advancedsettings.xml:[/COLOR]', '', addonpath + art + 'settings_menu.png') lock_file = xbmc.translatePath('special://temp/' + 'ts.lock') if xbmcvfs.exists(lock_file): addDir(translate(40068), MainURL, 306, '', 2, False) userdatapath = xbmc.translatePath( os.path.join('special://home/userdata'.decode('utf-8'), ''.decode('utf-8'))) advancedsettings_var = os.path.join(userdatapath, 'advancedsettings.xml') advancedsettingsbackup_var = os.path.join(userdatapath, 'advancedsettingsbackup.xml') addDir(translate(40058), MainURL, 301, 'p2p', 2, False) if xbmcvfs.exists(advancedsettings_var): addDir(translate(40063), MainURL, 303, 'p2p', 2, False) addDir(translate(40065), MainURL, 304, 'p2p', 2, False) if xbmcvfs.exists(advancedsettingsbackup_var): addDir(translate(40061), MainURL, 302, 'p2p', 2, False) addLink('', '', 'p2p') if xbmcvfs.exists(advancedsettings_var): content = readfile(advancedsettings_var) match = re.compile( '<cachemembuffersize>(.+?)</cachemembuffersize>').findall(content) if match: if match[0] != '252420': valuebuff = '[COLOR red]' + match[0] + '[/COLOR]' else: valuebuff = '[COLOR green]' + match[0] + '[/COLOR]' addLink(translate(40067) + valuebuff + ']', '', 'p2p') addLink('', '', 'p2p') #Apply shutdown hooks addLink('[COLOR orange]' + translate(70025) + '[/COLOR]', '', addonpath + art + 'settings_menu.png') addDir(translate(70026), MainURL, 310, 'p2p', 2, False) #Change engine settings from xbmc menus eligible = False if xbmc.getCondVisibility('system.platform.linux') and settings.getSetting( 'force_android') != "true": if os.uname()[4] == "armv6l" or os.uname()[4] == "armv7l": eligible = True elif xbmc.getCondVisibility('system.platform.OSX'): eligible = False elif settings.getSetting('openeleci386') == "true": eligible = False elif settings.getSetting('force_android') == "true": eligible = False else: eligible = False if eligible and os.path.exists( os.path.join(pastaperfil, 'acestream', 'ace', 'ACEStream', 'values')): addLink('[COLOR orange]Acestream engine settings:[/COLOR]', '', addonpath + art + 'settings_menu.png') acestream_cachefolder = os.path.join(os.getenv("HOME"), '.ACEStream', 'cache') acestream_cache_size = str( int(getDirectorySize(acestream_cachefolder)) / (1024 * 1024)) addDir( translate(70003) + '[COLOR orange] [' + acestream_cache_size + ' MB][/COLOR]', acestream_cachefolder, 307, 'p2p', 1, False) try: porta = readfile( os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "port.txt")) except: porta = "N/A" try: acestream_settings_file = os.path.join(os.getenv("HOME"), '.ACEStream', 'sessconfig.pickle') sessconfig = readfile(acestream_settings_file) portvector = re.compile("S'minport'\np(\d+)\nI(\d+)\n").findall( sessconfig) maxport = re.compile("S'maxport'\np(\d+)\nI(\d+)\n").findall( sessconfig) except: portvector = [] maxport = [] addDir( translate(600015) + "[COLOR orange][ " + str(int(porta)) + " ][/COLOR]", os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "port.txt") + '|' + str(portvector) + '|' + str(maxport), 305, 'p2p', 2, False) try: vodbuffer = readfile( os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "vodbuffer.txt")) except: vodbuffer = "N/A" addDir( translate(600016) + "[COLOR orange][ " + str(int(vodbuffer)) + " ][/COLOR]", os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "vodbuffer.txt"), 305, 'p2p', 2, False) try: livebuffer = readfile( os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "livebuffer.txt")) except: livebuffer = "N/A" addDir( translate(600017) + "[COLOR orange][ " + str(int(livebuffer)) + " ][/COLOR]", os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "livebuffer.txt"), 305, 'p2p', 2, False) try: downloadlimit = readfile( os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "downloadlimit.txt")) except: downloadlimit = "N/A" addDir( translate(600018) + "[COLOR orange][ " + str(int(downloadlimit)) + " ][/COLOR]", os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "downloadlimit.txt"), 305, 'p2p', 2, False) try: uploadlimit = readfile( os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "uploadlimit.txt")) except: uploadlimit = "N/A" addDir( translate(600019) + "[COLOR orange][ " + str(int(uploadlimit)) + " ][/COLOR]", os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "uploadlimit.txt"), 305, 'p2p', 2, False) try: maxconnections = readfile( os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "maxconnections.txt")) except: maxconnections = "N/A" addDir( translate(600020) + "[COLOR orange][ " + str(int(maxconnections)) + " ][/COLOR]", os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "maxconnections.txt"), 305, 'p2p', 2, False) try: maxconnectionsstream = readfile( os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "maxconnectionsstream.txt")) except: maxconnectionsstream = "N/A" addDir( translate(600021) + "[COLOR orange][ " + str(int(maxconnectionsstream)) + " ][/COLOR]", os.path.join(pastaperfil, "acestream", "ace", "ACEStream", "values", "maxconnectionsstream.txt"), 305, '', 2, False) elif eligible and not os.path.exists( os.path.join(pastaperfil, 'acestream', 'ace', 'ACEStream', 'values')): addLink("[COLOR red][B]" + translate(600027) + "[/COLOR][/B]", "", addonpath + art + 'processwarning.png') else: pass if (not eligible and xbmc.getCondVisibility('system.platform.linux') and settings.getSetting('ace_cmd') == "0") or ( not eligible and xbmc.getCondVisibility('system.platform.windows')) or ( not eligible and xbmc.getCondVisibility('system.platform.Android') and settings.getSetting('engine_app') == "0") or (settings.getSetting('force_android') == "true" and settings.getSetting('engine_app') == "0"): if xbmc.getCondVisibility( 'system.platform.linux' ) and not xbmc.getCondVisibility('system.platform.Android'): default_acefolder = os.path.join(os.getenv("HOME"), '.ACEStream') default_cachefolder = os.path.join(os.getenv("HOME"), '.ACEStream', 'cache', '.acestream_cache') pickle_repo = 'http://p2p-strm.googlecode.com/svn/trunk/Modules/Linux/playerconf.pickle' if settings.getSetting('acestream_cachefolder') == '': acestream_cachefolder = os.path.join(os.getenv("HOME"), '.ACEStream', 'cache', '.acestream_cache') else: acestream_cachefolder = settings.getSetting( 'acestream_cachefolder') acestream_settings_file = os.path.join(os.getenv("HOME"), '.ACEStream', 'playerconf.pickle') elif xbmc.getCondVisibility('system.platform.Android'): default_acefolder = os.path.join('/sdcard', '.ACEStream') default_cachefolder = os.path.join('/sdcard', '.ACEStream', '.acestream_cache') pickle_repo = 'http://p2p-strm.googlecode.com/svn/trunk/Modules/Android/playerconf.pickle' if settings.getSetting('acestream_cachefolder') == '': acestream_cachefolder = os.path.join('/sdcard', '.ACEStream', '.acestream_cache') else: acestream_cachefolder = os.path.join( settings.getSetting('acestream_cachefolder'), '.acestream_cache') if not os.path.exists(acestream_cachefolder): xbmcvfs.mkdir(acestream_cachefolder) acestream_settings_file = os.path.join('/sdcard', '.ACEStream', 'playerconf.pickle') elif xbmc.getCondVisibility('system.platform.windows'): default_acefolder = os.path.join(os.getenv("APPDATA"), ".ACEStream") pickle_repo = 'http://p2p-strm.googlecode.com/svn/trunk/Modules/Windows/playerconf.pickle' default_cachefolder = os.path.join(os.getenv("SystemDrive"), '\_acestream_cache_') acestream_cachefolder = default_cachefolder acestream_settings_file = os.path.join(os.getenv("APPDATA"), ".ACEStream", "playerconf.pickle") #workaround to keep settings file in place if they get deleted if not os.path.exists(default_acefolder): xbmcvfs.mkdir(default_acefolder) if not os.path.exists(default_cachefolder): xbmcvfs.mkdir(default_cachefolder) if not os.path.exists(acestream_settings_file): local_file = os.path.join(default_acefolder, pickle_repo.split("/")[-1]) download_tools().Downloader(pickle_repo, local_file, '', translate(40000)) xbmc.sleep(200) if xbmcvfs.exists(acestream_settings_file): settings_text = readfile(acestream_settings_file) save( acestream_settings_file, settings_text.replace('my_cache_folder', default_cachefolder)) if xbmcvfs.exists(acestream_settings_file) and os.path.exists( acestream_cachefolder): addLink('[COLOR orange]Acestream engine settings:[/COLOR]', '', addonpath + art + 'settings_menu.png') xbmc.sleep(200) #Change default port for Android if xbmc.getCondVisibility('system.platform.Android'): android_port = settings.getSetting('android_port') addDir( translate(600015) + "[COLOR orange] [ " + android_port + " ][/COLOR]", 'p2p', 311, 'p2p', 2, False) # acestream_cache_size = str( int(getDirectorySize(acestream_cachefolder)) / (1024 * 1024)) addDir( translate(70003) + '[COLOR orange] [' + acestream_cache_size + ' MB][/COLOR]', acestream_cachefolder, 307, 'p2p', 1, False) settings_content = readfile(acestream_settings_file) number_of_settings = re.compile('p(\d+)\n').findall( settings_content) cachefoldersetting = re.compile( "'download_dir'\np\d+\n.+?/(.+?)\n").findall(settings_content) if not cachefoldersetting: if xbmc.getCondVisibility( 'system.platform.linux' ) and not xbmc.getCondVisibility('system.platform.Android'): if not 'arm' in os.uname()[4]: cachefoldersetting = os.path.join( os.getenv("HOME"), '.ACEStream', 'cache', '.acestream_cache') settings.setSetting('acestream_cachefolder', cachefoldersetting) else: cachefoldersetting = os.path.join( '/sdcard', '.ACEStream', 'cache') settings.setSetting('acestream_cachefolder', cachefoldersetting) elif xbmc.getCondVisibility('system.platform.windows'): cachefoldersetting = os.path.join(os.getenv("SystemDrive"), '_acestream_cache_') settings.setSetting('acestream_cachefolder', cachefoldersetting) else: cachefoldersetting = os.path.join('/sdcard', '.ACEStream', 'cache') settings.setSetting('acestream_cachefolder', cachefoldersetting) else: if xbmc.getCondVisibility( 'system.platform.linux' ) and not xbmc.getCondVisibility('system.platform.Android'): if not 'arm' in os.uname()[4]: cachefoldersetting = os.path.join( '/', cachefoldersetting[0].replace("'", ""), '.acestream_cache') settings.setSetting('acestream_cachefolder', cachefoldersetting) else: cachefoldersetting = cachefoldersetting[0] if cachefoldersetting: addDir( translate(70013) + "[COLOR orange][ " + cachefoldersetting + " ][/COLOR]", str(cachefoldersetting), 309, 'p2p', 2, False) else: addDir( translate(70013) + "[COLOR orange][" + cachefoldersetting + "][/COLOR]", cachefoldersetting, 309, 'p2p', 2, False) buffer_type = re.compile( "S'live_cache_type'\np(\d+)\nS(.*)").findall(settings_content) if xbmc.getCondVisibility('system.platform.Android'): if buffer_type: if 'memory' in buffer_type[0][1]: addDir( translate(70041) + "[COLOR orange] [ Memory ][/COLOR]", 'p2p', 312, 'p2p', 2, False) elif 'disk' in buffer_type[0][1]: addDir( translate(70041) + "[COLOR orange] [ Disk ][/COLOR]", 'p2p', 312, 'p2p', 2, False) else: pass livebuffervalue = re.compile("S'live_buffer_time'\np(\d+)\nI(\d+)" ).findall(settings_content) if livebuffervalue: addDir( translate(600017) + "[COLOR orange][ " + livebuffervalue[0][1] + " ][/COLOR]", 'live_buffer_time|' + str(livebuffervalue) + '|' + str(len(number_of_settings)), 308, 'p2p', 2, False) else: addDir( translate(600017) + "[COLOR orange][3][/COLOR]", 'live_buffer_time|' + str(len(number_of_settings)), 308, 'p2p', 2, False) vodbuffervalue = re.compile("S'player_buffer_time'\np(\d+)\nI(\d+)" ).findall(settings_content) if vodbuffervalue: addDir( translate(600016) + "[COLOR orange][ " + vodbuffervalue[0][1] + " ][/COLOR]", 'player_buffer_time|' + str(vodbuffervalue) + '|' + str(len(number_of_settings)), 308, 'p2p', 2, False) else: addDir( translate(600016) + "[COLOR orange][10][/COLOR]", 'player_buffer_time|' + str(len(number_of_settings)), 308, 'p2p', 2, False) downloadlimit = re.compile( "S'total_max_download_rate'\np(\d+)\nI(\d+)").findall( settings_content) if downloadlimit: addDir( translate(600018) + "[COLOR orange][ " + downloadlimit[0][1] + " ][/COLOR]", 'total_max_download_rate|' + str(downloadlimit) + '|' + str(len(number_of_settings)), 308, 'p2p', 2, False) else: addDir( translate(600018) + "[COLOR orange][0][/COLOR]", 'total_max_download_rate|' + str(len(number_of_settings)), 308, 'p2p', 2, False) uploadlimit = re.compile("S'total_max_upload_rate'\np(\d+)\nI(\d+)" ).findall(settings_content) if uploadlimit: addDir( translate(600019) + "[COLOR orange][ " + uploadlimit[0][1] + " ][/COLOR]", 'total_max_upload_rate|' + str(uploadlimit) + '|' + str(len(number_of_settings)), 308, 'p2p', 2, False) else: addDir( translate(600019) + "[COLOR orange][0][/COLOR]", 'total_max_upload_rate|' + str(len(number_of_settings)), 308, 'p2p', 2, False) maxconnection_per_stream = re.compile( "S'max_peers'\np(\d+)\nI(\d+)").findall(settings_content) if maxconnection_per_stream: addDir( translate(600021) + "[COLOR orange][ " + maxconnection_per_stream[0][1] + " ][/COLOR]", 'max_peers|' + str(maxconnection_per_stream) + '|' + str(len(number_of_settings)), 308, 'p2p', 2, False) else: addDir( translate(600021) + "[COLOR orange][50][/COLOR]", 'max_peers|' + str(len(number_of_settings)), 308, 'p2p', 2, False)
def configure_acestream(latest_version): #Configuration for LINUX if xbmc.getCondVisibility('system.platform.linux') and not xbmc.getCondVisibility('system.platform.Android') and not settings.getSetting('force_android') == "true": print("Detected OS: Linux") #Linux Armv6 if os.uname()[4] == "armv6l": print("Detected linux armv6 - possible Raspberry PI") if settings.getSetting('openelecarm6') == "true": acestream_rpi = acestream_openelec_raspberry else: acestream_rpi = acestream_generic_raspberry ACE_KIT = os.path.join(addonpath,acestream_rpi.split("/")[-1]) download_tools().Downloader(acestream_rpi,ACE_KIT,translate(40026),translate(40000)) import tarfile if tarfile.is_tarfile(ACE_KIT): path_libraries = os.path.join(pastaperfil,"acestream") download_tools().extract(ACE_KIT,path_libraries) xbmc.sleep(500) download_tools().remove(ACE_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return #Linux Armv7 elif os.uname()[4] == "armv7l": if settings.getSetting('openelecarm7') == "true": acestream_package = acestream_armv7_openelec elif settings.getSetting('xbianarm7') == "true": acestream_package = acestream_armv7_xbian elif settings.getSetting('mxlinuxarm7') == "true" or settings.getSetting('jynxbox_arm7') == "true": acestream_package = acestream_mxlinux ACE_KIT = os.path.join(addonpath,acestream_package.split("/")[-1]) download_tools().Downloader(acestream_package,ACE_KIT,translate(40026),translate(40000)) import tarfile if tarfile.is_tarfile(ACE_KIT): path_libraries = os.path.join(pastaperfil,"acestream") download_tools().extract(ACE_KIT,path_libraries) xbmc.sleep(500) download_tools().remove(ACE_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return elif os.uname()[4] == "x86_64": if settings.getSetting('openelecx86_64') == "true": print("OpenELEC x86_64 Acestream configuration") ACE_KIT = os.path.join(addonpath,openeelcx86_64_acestream.split("/")[-1]) download_tools().Downloader(openeelcx86_64_acestream ,ACE_KIT,translate(40026),translate(40000)) import tarfile if tarfile.is_tarfile(ACE_KIT): download_tools().extract(ACE_KIT,pastaperfil) xbmc.sleep(500) download_tools().remove(ACE_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return else: print("64 bit Linux Disto Acestream Configuration") ACE_KIT = os.path.join(addonpath,acestream_linux_x64_generic.split("/")[-1]) download_tools().Downloader(acestream_linux_x64_generic,ACE_KIT,translate(40026),translate(40000)) import tarfile if tarfile.is_tarfile(ACE_KIT): download_tools().extract(ACE_KIT,pastaperfil) xbmc.sleep(500) download_tools().remove(ACE_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return elif os.uname()[4] == "i386" or os.uname()[4] == "i686": if settings.getSetting('openeleci386') == "true": print("32 bit Openelec Acestream Configuration") ACE_KIT = os.path.join(addonpath,openeelcxi386_acestream.split("/")[-1]) download_tools().Downloader(openeelcxi386_acestream,ACE_KIT,translate(40026),translate(40000)) import tarfile if tarfile.is_tarfile(ACE_KIT): download_tools().extract(ACE_KIT,pastaperfil) xbmc.sleep(500) download_tools().remove(ACE_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return else: print("32 bit Linux general distro Acestream Configuration") ACE_KIT = os.path.join(addonpath,acestream_linux_i386_generic.split("/")[-1]) download_tools().Downloader(acestream_linux_i386_generic,ACE_KIT,translate(40026),translate(40000)) import tarfile if tarfile.is_tarfile(ACE_KIT): download_tools().extract(ACE_KIT,pastaperfil) xbmc.sleep(500) download_tools().remove(ACE_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return elif xbmc.getCondVisibility('system.platform.windows'): print("Detected OS: Windows") if not os.path.exists(pastaperfil): xbmcvfs.mkdir(pastaperfil) #Ace SPSC_KIT = os.path.join(addonpath,acestream_windows.split("/")[-1]) download_tools().Downloader(acestream_windows,SPSC_KIT,translate(40026),translate(40000)) import shutil if os.path.exists(os.path.join(pastaperfil,"acestream")): shutil.rmtree(os.path.join(pastaperfil,"acestream")) if os.path.exists(os.path.join(pastaperfil,"player")): shutil.rmtree(os.path.join(pastaperfil,"player")) import tarfile if tarfile.is_tarfile(SPSC_KIT): path_libraries = os.path.join(pastaperfil) download_tools().extract(SPSC_KIT,path_libraries) download_tools().remove(SPSC_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return elif xbmc.getCondVisibility('System.Platform.OSX'): print("Detected OS: Mac OSX") available = False if os.uname()[-1] == "x86_64": mac_package = osx_x64_acestream available = True elif os.uname()[-1] == "i386": mac_package = osx_i386_acestream available = True else: available = False if available == True: MAC_KIT = os.path.join('/Applications',mac_package.split("/")[-1]) if not xbmcvfs.exists(os.path.join('/Applications','Ace Stream.app')): download_tools().Downloader(mac_package,MAC_KIT,translate(40026),translate(40000)) if xbmcvfs.exists(MAC_KIT): xbmc.sleep(1000) cmd = 'unzip /Applications/AceStreamWineOSX.zip' zipa = subprocess.Popen(cmd,shell=True) cmd = 'chmod -R 755 /Applications/Ace\ Stream.app' print cmd chmod = subprocess.Popen(cmd,shell=True) try: os.remove(MAC_KIT) except: pass if latest_version: settings.setSetting('acestream_version',value=latest_version) return else: mensagemok(translate(40000),translate(600014)) return elif xbmc.getCondVisibility('System.Platform.Android') or settings.getSetting('force_android') == "true": print("Detected OS: Android") print("Starting Acestream Configuration") #acestream config for android if not os.path.exists(pastaperfil): xbmcvfs.mkdir(pastaperfil) #Hack to get xbmc app id xbmcfolder=xbmc.translatePath(addonpath).split("/") i = 0 found = False sopcast_installed = False for folder in xbmcfolder: if folder.count('.') >= 2 and folder != addon_id : found = True break else: i+=1 if found == True: uid = os.getuid() app_id = xbmcfolder[i] settings.setSetting('app_id',app_id) #Acestreamconfiguration for android starts here if "arm" in os.uname()[4]: acebundle = os.path.join(pastaperfil,android_aceengine_arm.split("/")[-1]) download_tools().Downloader(android_aceengine_arm,acebundle,translate(70014),translate(40000)) else: acebundle = os.path.join(pastaperfil,android_aceengine_x86.split("/")[-1]) download_tools().Downloader(android_aceengine_x86,acebundle,translate(70014),translate(40000)) import tarfile if tarfile.is_tarfile(acebundle): download_tools().extract(acebundle,pastaperfil) download_tools().remove(acebundle) orgacestreamenginefolder = os.path.join(pastaperfil,"org.acestream.engine") xbmc_data_path = os.path.join("/data", "data", app_id) if os.path.exists(xbmc_data_path) and uid == os.stat(xbmc_data_path).st_uid: android_binary_dir = os.path.join(xbmc_data_path, "files", "plugin.video.p2p-streams") if not os.path.exists(android_binary_dir): os.makedirs(android_binary_dir) android_acestream_folder = os.path.join(android_binary_dir,"org.acestream.engine") if not os.path.exists(android_acestream_folder): os.makedirs(android_acestream_folder) else: #clean install for android - delete old folder print android_acestream_folder try: os.system("chmod -R 777 "+android_acestream_folder+"/*") os.system("rm -r '"+android_acestream_folder+"'") except: pass try: os.makedirs(android_acestream_folder) except: pass xbmc.sleep(200) #clean install in android - remove /sdcard/.ACEStream folder if it exists (to be enabled between versions if we need to remove older settings #if os.path.exists(os.path.join('/sdcard','.ACEStream')): # try: # hidden_ace = os.path.join('/sdcard','.ACEStream') # os.system("chmod -R 777 "+hidden_ace+"/*") # os.system("rm -r '"+hidden_ace+"'") # except: pass recursive_overwrite(orgacestreamenginefolder, android_acestream_folder, ignore=None) pythonbin = os.path.join(android_acestream_folder,"files","python","bin","python") st = os.stat(pythonbin) import stat os.chmod(pythonbin, st.st_mode | stat.S_IEXEC) if os.path.exists(orgacestreamenginefolder): try: os.system("chmod -R 777 "+orgacestreamenginefolder+"/*") os.system("rm -r '"+orgacestreamenginefolder+"'") except: pass try: xbmcvfs.mkdir(os.path.join('/sdcard','org.acestream.engine')) except: pass opcao= xbmcgui.Dialog().yesno(translate(40000), translate(70015),translate(70016)) if not opcao: settings.setSetting('engine_app','0') else: mensagemok(translate(40000),translate(50018),translate(50019),translate(50020)) if os.path.exists(os.path.join("sdcard","Download")): pasta = os.path.join("sdcard","Download") if "arm" in os.uname()[4]: acefile = os.path.join("sdcard","Download",acestreamengine_apk_arm.split("/")[-1]) else: acefile = os.path.join("sdcard","Download",acestreamengine_apk_x86.split("/")[-1]) else: dialog = xbmcgui.Dialog() pasta = dialog.browse(int(0), translate(40190), 'myprograms') if "arm" in os.uname()[4]: acefile = os.path.join(pasta,acestreamengine_apk_arm.split("/")[-1]) else: acefile = os.path.join(pasta,acestreamengine_apk_x86.split("/")[-1]) if "arm" in os.uname()[4]: download_tools().Downloader(acestreamengine_apk_arm,acefile,translate(40072),translate(40000)) else: download_tools().Downloader(acestreamengine_apk_x86,acefile,translate(40072),translate(40000)) import tarfile if tarfile.is_tarfile(acefile): download_tools().extract(acefile,pasta) download_tools().remove(acefile) xbmc.sleep(2000) mensagemok(translate(40000),translate(50021),pasta,translate(50016)) mensagemok(translate(40000),translate(50023),translate(50024),translate(50025)) settings.setSetting('engine_app','1') opcao= xbmcgui.Dialog().yesno(translate(40000), translate(70017),translate(70018)) if opcao: if os.path.exists(os.path.join("sdcard","Download")): pasta = os.path.join("sdcard","Download") if "arm" in os.uname()[4]: acefile = os.path.join("sdcard","Download",android_aceplayer_arm.split("/")[-1]) else: os.path.join("sdcard","Download",android_aceplayer_x86.split("/")[-1]) else: dialog = xbmcgui.Dialog() pasta = dialog.browse(int(0), translate(40190), 'myprograms') if "arm" in os.uname()[4]: acefile = os.path.join(pasta,acestreamengine_apk_arm.split("/")[-1]) else: acefile = os.path.join(pasta,acestreamengine_apk_x86.split("/")[-1]) if "arm" in os.uname()[4]: download_tools().Downloader(android_aceplayer_arm,acefile,translate(70019),translate(40000)) else: download_tools().Downloader(android_aceplayer_x86,acefile,translate(70019),translate(40000)) import tarfile if tarfile.is_tarfile(acefile): download_tools().extract(acefile,pasta) download_tools().remove(acefile) xbmc.sleep(2000) mensagemok(translate(40000),translate(70020),pasta,translate(50016)) opcao= xbmcgui.Dialog().yesno(translate(40000), translate(70021)) if opcao: settings.setSetting('engine_app','2') if latest_version: settings.setSetting('acestream_version',value=latest_version) mensagemok(translate(40000),translate(50022)) return else: mensagemok(translate(40000),translate(50017)) return
def configure_sopcast(latest_version): #Configuration for LINUX if xbmc.getCondVisibility('system.platform.linux') and not xbmc.getCondVisibility('system.platform.Android') and not settings.getSetting('force_android') == "true": print("Detected OS: Linux") #Linux Armv6 if os.uname()[4] == "armv6l": print("Detected linux armv6 - possible Raspberry PI") #Sop SPSC_KIT = os.path.join(addonpath,sopcast_raspberry.split("/")[-1]) download_tools().Downloader(sopcast_raspberry,SPSC_KIT,translate(40025),translate(40000)) import tarfile if tarfile.is_tarfile(SPSC_KIT): path_libraries = os.path.join(pastaperfil,"sopcast") download_tools().extract(SPSC_KIT,path_libraries) xbmc.sleep(500) download_tools().remove(SPSC_KIT) if latest_version: settings.setSetting('sopcast_version',value=latest_version) return elif os.uname()[4] == "armv7l": if settings.getSetting('jynxbox_arm7') == "true": SPSC_KIT = os.path.join(addonpath,sopcast_jynxbox.split("/")[-1]) download_tools().Downloader(sopcast_jynxbox,SPSC_KIT,translate(40025),translate(40000)) import tarfile if tarfile.is_tarfile(SPSC_KIT): path_libraries = os.path.join(pastaperfil) download_tools().extract(SPSC_KIT,path_libraries) xbmc.sleep(500) download_tools().remove(SPSC_KIT) if latest_version: settings.setSetting('sopcast_version',value=latest_version) return else: SPSC_KIT = os.path.join(addonpath,sopcast_raspberry.split("/")[-1]) download_tools().Downloader(sopcast_raspberry,SPSC_KIT,translate(40025),translate(40000)) import tarfile if tarfile.is_tarfile(SPSC_KIT): path_libraries = os.path.join(pastaperfil,"sopcast") download_tools().extract(SPSC_KIT,path_libraries) xbmc.sleep(500) download_tools().remove(SPSC_KIT) if latest_version: settings.setSetting('sopcast_version',value=latest_version) return elif os.uname()[4] == "x86_64": generic = False if settings.getSetting('openelecx86_64') == "true": print("Detected OpenELEC x86_64") SPSC_KIT = os.path.join(addonpath,openelecx86_64_sopcast.split("/")[-1]) download_tools().Downloader(openelecx86_64_sopcast,SPSC_KIT,translate(40025),translate(40000)) import tarfile if tarfile.is_tarfile(SPSC_KIT): download_tools().extract(SPSC_KIT,pastaperfil) xbmc.sleep(500) download_tools().remove(SPSC_KIT) if latest_version: settings.setSetting('sopcast_version',value=latest_version) return else: generic = True elif os.uname()[4] == "i386" or os.uname()[4] == "i686": generic = False if settings.getSetting('openeleci386') == "true": SPSC_KIT = os.path.join(addonpath,openelecxi386_sopcast.split("/")[-1]) download_tools().Downloader(openelecxi386_sopcast,SPSC_KIT,translate(40025),translate(40000)) import tarfile if tarfile.is_tarfile(SPSC_KIT): download_tools().extract(SPSC_KIT,pastaperfil) xbmc.sleep(500) download_tools().remove(SPSC_KIT) if latest_version: settings.setSetting('sopcast_version',value=latest_version) return else: generic = True if generic == True: SPSC_KIT = os.path.join(addonpath,sopcast_linux_generico.split("/")[-1]) download_tools().Downloader(sopcast_linux_generico,SPSC_KIT,translate(40025),translate(40000)) import tarfile if tarfile.is_tarfile(SPSC_KIT): path_libraries = os.path.join(pastaperfil,"sopcast") download_tools().extract(SPSC_KIT,path_libraries) xbmc.sleep(500) download_tools().remove(SPSC_KIT) #set every single file from the bundle as executable path_libraries = os.path.join(pastaperfil,"sopcast") dirs, files = xbmcvfs.listdir(path_libraries) for ficheiro in files: binary_path = os.path.join(path_libraries,ficheiro) st = os.stat(binary_path) import stat os.chmod(binary_path, st.st_mode | stat.S_IEXEC) path_libraries = os.path.join(path_libraries,"lib") dirs, files = xbmcvfs.listdir(path_libraries) for ficheiro in files: binary_path = os.path.join(path_libraries,ficheiro) st = os.stat(binary_path) import stat os.chmod(binary_path, st.st_mode | stat.S_IEXEC) if latest_version: settings.setSetting('sopcast_version',value=latest_version) return elif xbmc.getCondVisibility('system.platform.windows'): print("Detected OS: Windows") if not xbmcvfs.exists(pastaperfil): xbmcvfs.mkdir(pastaperfil) #Sop import ctypes is_admin=ctypes.windll.shell32.IsUserAnAdmin() != 0 if is_admin == False: mensagemok(translate(40000),translate(40158),translate(40159)) else: import subprocess cmd = ['sc','delete','sopcastp2p'] proc = subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True) for line in proc.stdout: print("cmd out: " + line.rstrip()) xbmc.sleep(1000) ret = mensagemprogresso.create(translate(40000),translate(40000)) mensagemprogresso.update(0,translate(40160)," ") xbmc.sleep(1000) import _winreg aReg = _winreg.ConnectRegistry(None,_winreg.HKEY_LOCAL_MACHINE) try: aKey = _winreg.OpenKey(aReg, r'SOFTWARE\SopCast\Player\InstallPath',0, _winreg.KEY_READ) name, value, type = _winreg.EnumValue(aKey, 0) sopcast_executable = value print("Installation executable of sopcast was found: " + sopcast_executable) _winreg.CloseKey(aKey) mensagemprogresso.update(10,translate(40160),translate(40161)) except: sopcast_executable = "" mensagemok(translate(40000),translate(40162),translate(40163)) if not sopcast_executable: pass else: xbmc.sleep(1000) mensagemprogresso.update(20,translate(40164)," ") xbmc.sleep(1000) print ("Getting windows users IDS") aReg = _winreg.ConnectRegistry(None,_winreg.HKEY_LOCAL_MACHINE) aKey = _winreg.OpenKey(aReg, r'SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList') users = [] for i in range(1024): try: asubkey=_winreg.EnumKey(aKey,i) print(asubkey) aKeydois = _winreg.OpenKey(aReg, os.path.join('SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList',asubkey)) val=_winreg.QueryValueEx(aKeydois, "ProfileImagePath") try: print(val[0]) except: print("Notice: User with strange characters, print cmd ignored.") if "Windows" in val[0] or "%systemroot%" in val[0]: pass else: users.append(asubkey) except: pass if not users: mensagemok(translate(40000),translate(40165)) else: mensagemprogresso.update(30,translate(40164),translate(40161)) xbmc.sleep(200) mensagemprogresso.update(30,translate(40166)," ") xbmc.sleep(1000) print("System Users", users) srvany_final_location = os.path.join(sopcast_executable.replace("SopCast.exe",""),"srvany.exe") srvany_download_location = os.path.join(addonpath,"srvany.exe") srvanytgz_download_location = os.path.join(addonpath,"srvany.tar.gz") download_tools().Downloader(srvany_executable,srvanytgz_download_location,translate(40167),translate(40000)) xbmc.sleep(1000) import tarfile if tarfile.is_tarfile(srvanytgz_download_location): path_libraries = addonpath download_tools().extract(srvanytgz_download_location,path_libraries) xbmcvfs.copy(srvany_download_location,srvany_final_location) download_tools().remove(srvanytgz_download_location) download_tools().remove(srvany_download_location) xbmc.sleep(1000) ret = mensagemprogresso.create(translate(40000),translate(40000)) xbmc.sleep(200) mensagemprogresso.update(35,translate(40168)," ") xbmc.sleep(1000) import subprocess cmd = ['sc','create','sopcastp2p','binpath=',os.path.join(os.path.join(sopcast_executable.replace("SopCast.exe","")),'srvany.exe')] proc = subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True) servicecreator = False for line in proc.stdout: print ("cmd out: " + line.rstrip()) servicecreator = True if servicecreator == False: mensagemok(translate(40000),translate(40169)) else: mensagemprogresso.update(40,translate(40168),translate(40161)) xbmc.sleep(1000) mensagemprogresso.update(45,translate(40170)," ") xbmc.sleep(1000) print("Trying to modify regedit....") try: aReg = _winreg.ConnectRegistry(None,_winreg.HKEY_LOCAL_MACHINE) key = _winreg.CreateKey(aReg, r'SYSTEM\CurrentControlSet\Services\sopcastp2p\Parameters') _winreg.SetValueEx(key, 'AppDirectory', 0, _winreg.REG_SZ, os.path.join(sopcast_executable.replace("SopCast.exe",""))) _winreg.SetValueEx(key, 'Application', 0, _winreg.REG_SZ, os.path.join(os.path.join(sopcast_executable.replace("SopCast.exe","")),"SopCast.exe")) _winreg.SetValueEx(key, 'AppParameters', 0, _winreg.REG_SZ, "sop://") mensagemprogresso.update(50,translate(40170), translate(40161)) regedit = True except: mensagemok(translate(40000),translate(40171)) regedit = False if regedit == False: pass else: xbmc.sleep(1000) mensagemprogresso.update(50,translate(40172), " ") cmd = ['sc','sdshow','sopcastp2p'] proc = subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True) lines = [] for line in proc.stdout: print(line.rstrip()) if line.rstrip() != "" and "(" in line.rstrip(): lines.append(line.rstrip()) else: pass if len(lines) != 1: mensagemok(translate(40000),translate(40173)) else: linha_arr = [] for user in users: linha_arr.append('(A;;RPWPCR;;;' + user + ')') linha_add = '' for linha in linha_arr: linha_add += linha print("line peace to add: " + linha_add) linha_final = lines[0].replace("S:(",linha_add + "S:(") print("Final line: " + linha_final) permissions = False xbmc.sleep(500) mensagemprogresso.update(60,translate(40172), translate(40161)) xbmc.sleep(500) mensagemprogresso.update(60,translate(40174), " ") cmd = ['sc','sdset','sopcastp2p',linha_final] proc = subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True) for line in proc.stdout: print(line.rstrip()) permissions = True if permissions == False: mensagemok(translate(40000),translate(40175)) else: mensagemprogresso.update(70,translate(40174), translate(40161)) xbmc.sleep(1000) mensagemprogresso.update(70,translate(40176), " ") print("Trying to set sopcastp2p service regedit permissions...") download_tools().Downloader(srvany_permissions,os.path.join(pastaperfil,"sopcastp2p-permissions.txt"),translate(40177),translate(40000)) xbmc.sleep(500) ret = mensagemprogresso.create(translate(40000),translate(40000)) xbmc.sleep(500) mensagemprogresso.update(80,translate(40178), " ") xbmc.sleep(1000) cmd = ['regini',os.path.join(pastaperfil,"sopcastp2p-permissions.txt")] proc = subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True) for line in proc.stdout: print(line.rstrip()) mensagemprogresso.update(90,translate(40178), translate(40178)) mensagemprogresso.update(100,translate(40179), " ") xbmc.sleep(2000) mensagemprogresso.close() if latest_version: settings.setSetting('sopcast_version',value=latest_version) return elif xbmc.getCondVisibility('System.Platform.OSX'): print("Detected OS: Mac OSX") available = False if os.uname()[-1] == "x86_64": mac_package = osx_x64_sopcast available = True elif os.uname()[-1] == "i386": mac_package = osx_i386_sopcast available = True else: available = False if available == True: if not os.path.exists(pastaperfil): xbmcvfs.mkdir(pastaperfil) MAC_KIT = os.path.join(addonpath,mac_package.split("/")[-1]) download_tools().Downloader(mac_package,MAC_KIT,translate(40025),translate(40000)) import tarfile if tarfile.is_tarfile(MAC_KIT): path_libraries = os.path.join(pastaperfil) download_tools().extract(MAC_KIT,pastaperfil) download_tools().remove(MAC_KIT) sp_sc_auth = os.path.join(pastaperfil,"sopcast","sp-sc-auth") st = os.stat(sp_sc_auth) import stat os.chmod(sp_sc_auth, st.st_mode | stat.S_IEXEC) if latest_version: settings.setSetting('sopcast_version',value=latest_version) return else: mensagemok(translate(40000),translate(600014)) return elif xbmc.getCondVisibility('System.Platform.Android') or settings.getSetting('force_android') == "true": print("Detected OS: Android") #Sopcast configuration print("Starting SopCast Configuration") #Moving sopclient to ext4 hack - tks steeve from xbmctorrent sopclient_builtin_location = os.path.join(addonpath,"resources","binaries","sopclient") #Hack to get current xbmc app id xbmcfolder=xbmc.translatePath(addonpath).split("/") i = 0 found = False sopcast_installed = False for folder in xbmcfolder: if folder.count('.') >= 2 and folder != addon_id : found = True break else: i+=1 if found == True: uid = os.getuid() app_id = xbmcfolder[i] xbmc_data_path = os.path.join("/data", "data", app_id) if os.path.exists(xbmc_data_path) and uid == os.stat(xbmc_data_path).st_uid: android_binary_dir = os.path.join(xbmc_data_path, "files", "plugin.video.p2p-streams") if not os.path.exists(android_binary_dir): os.makedirs(android_binary_dir) android_binary_path = os.path.join(android_binary_dir, "sopclient") if not os.path.exists(android_binary_path) or os.path.getsize(android_binary_path) != os.path.getsize(sopclient_builtin_location): import shutil shutil.copy2(sopclient_builtin_location, android_binary_path) binary_path = android_binary_path st = os.stat(binary_path) import stat os.chmod(binary_path, st.st_mode | stat.S_IEXEC) settings.setSetting('android_sopclient',value=binary_path) opcao= xbmcgui.Dialog().yesno(translate(40000), translate(50011),translate(50012)) if not opcao: settings.setSetting('external-sopcast',value='1') settings.setSetting('force_android',value='true') sopcast_installed = True mensagemok(translate(40000),translate(50014)) else: mensagemok(translate(40000),translate(50013)) if os.path.exists(os.path.join("sdcard","Download")): pasta = os.path.join("sdcard","Download") sopfile = os.path.join("sdcard","Download",sopcast_apk.split("/")[-1]) else: dialog = xbmcgui.Dialog() pasta = dialog.browse(int(0), translate(40190), 'myprograms') sopfile = os.path.join(pasta,sopcast_apk.split("/")[-1]) download_tools().Downloader(sopcast_apk,sopfile,translate(40073),translate(40000)) import tarfile if tarfile.is_tarfile(sopfile): download_tools().extract(sopfile,pasta) download_tools().remove(sopfile) mensagemok(translate(40000),translate(50015),pasta,translate(50016)) sopcast_installed = True settings.setSetting('external-sopcast',value='0') mensagemok(translate(40000),translate(50014)) if latest_version: settings.setSetting('sopcast_version',value=latest_version) return else: mensagemok(translate(40000),translate(50017)) return
def configure_acestream(latest_version): #Configuration for LINUX if xbmc.getCondVisibility('system.platform.linux') and not xbmc.getCondVisibility('system.platform.Android') and not settings.getSetting('force_android') == "true": print("Detected OS: Linux") #Linux Armv6 if os.uname()[4] == "armv6l": print("Detected linux armv6 - possible Raspberry PI") if settings.getSetting('openelecarm6') == "true": acestream_rpi = acestream_openelec_raspberry else: acestream_rpi = acestream_generic_raspberry ACE_KIT = os.path.join(addonpath,acestream_rpi.split("/")[-1]) download_tools().Downloader(acestream_rpi,ACE_KIT,translate(40026),translate(40000)) import tarfile if tarfile.is_tarfile(ACE_KIT): path_libraries = os.path.join(pastaperfil,"acestream") download_tools().extract(ACE_KIT,path_libraries) xbmc.sleep(500) download_tools().remove(ACE_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return #Linux Armv7 elif os.uname()[4] == "armv7l": if settings.getSetting('openelecarm7') == "true": acestream_package = acestream_armv7_openelec elif settings.getSetting('xbianarm7') == "true": acestream_package = acestream_armv7_xbian elif settings.getSetting('mxlinuxarm7') == "true" or settings.getSetting('jynxbox_arm7') == "true": acestream_package = acestream_mxlinux ACE_KIT = os.path.join(addonpath,acestream_package.split("/")[-1]) download_tools().Downloader(acestream_package,ACE_KIT,translate(40026),translate(40000)) import tarfile if tarfile.is_tarfile(ACE_KIT): path_libraries = os.path.join(pastaperfil,"acestream") download_tools().extract(ACE_KIT,path_libraries) xbmc.sleep(500) download_tools().remove(ACE_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return elif os.uname()[4] == "x86_64": if settings.getSetting('openelecx86_64') == "true": print("OpenELEC x86_64 Acestream configuration") ACE_KIT = os.path.join(addonpath,openeelcx86_64_acestream.split("/")[-1]) download_tools().Downloader(openeelcx86_64_acestream ,ACE_KIT,translate(40026),translate(40000)) import tarfile if tarfile.is_tarfile(ACE_KIT): download_tools().extract(ACE_KIT,pastaperfil) xbmc.sleep(500) download_tools().remove(ACE_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return else: print("64 bit Linux Disto Acestream Configuration") ACE_KIT = os.path.join(addonpath,acestream_linux_x64_generic.split("/")[-1]) download_tools().Downloader(acestream_linux_x64_generic,ACE_KIT,translate(40026),translate(40000)) import tarfile if tarfile.is_tarfile(ACE_KIT): download_tools().extract(ACE_KIT,pastaperfil) xbmc.sleep(500) download_tools().remove(ACE_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return elif os.uname()[4] == "i386" or os.uname()[4] == "i686": if settings.getSetting('openeleci386') == "true": print("32 bit Openelec Acestream Configuration") ACE_KIT = os.path.join(addonpath,openeelcxi386_acestream.split("/")[-1]) download_tools().Downloader(openeelcxi386_acestream,ACE_KIT,translate(40026),translate(40000)) import tarfile if tarfile.is_tarfile(ACE_KIT): download_tools().extract(ACE_KIT,pastaperfil) xbmc.sleep(500) download_tools().remove(ACE_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return else: print("32 bit Linux general distro Acestream Configuration") ACE_KIT = os.path.join(addonpath,acestream_linux_i386_generic.split("/")[-1]) download_tools().Downloader(acestream_linux_i386_generic,ACE_KIT,translate(40026),translate(40000)) import tarfile if tarfile.is_tarfile(ACE_KIT): download_tools().extract(ACE_KIT,pastaperfil) xbmc.sleep(500) download_tools().remove(ACE_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return elif xbmc.getCondVisibility('system.platform.windows'): print("Detected OS: Windows") if not os.path.exists(pastaperfil): xbmcvfs.mkdir(pastaperfil) #Ace SPSC_KIT = os.path.join(addonpath,acestream_windows.split("/")[-1]) download_tools().Downloader(acestream_windows,SPSC_KIT,translate(40026),translate(40000)) import shutil if os.path.exists(os.path.join(pastaperfil,"acestream")): shutil.rmtree(os.path.join(pastaperfil,"acestream")) if os.path.exists(os.path.join(pastaperfil,"player")): shutil.rmtree(os.path.join(pastaperfil,"player")) import tarfile if tarfile.is_tarfile(SPSC_KIT): path_libraries = os.path.join(pastaperfil) download_tools().extract(SPSC_KIT,path_libraries) download_tools().remove(SPSC_KIT) if latest_version: settings.setSetting('acestream_version',value=latest_version) return elif xbmc.getCondVisibility('System.Platform.OSX'): print("Detected OS: Mac OSX") available = False if os.uname()[-1] == "x86_64": mac_package = osx_x64_acestream available = True elif os.uname()[-1] == "i386": mac_package = osx_i386_acestream available = True else: available = False if available == True: MAC_KIT = os.path.join('/Applications',mac_package.split("/")[-1]) if not xbmcvfs.exists(os.path.join('/Applications','Ace Stream.app')): download_tools().Downloader(mac_package,MAC_KIT,translate(40026),translate(40000)) if xbmcvfs.exists(MAC_KIT): xbmc.sleep(1000) cmd = 'unzip /Applications/AceStreamWineOSX.zip' zipa = subprocess.Popen(cmd,shell=True) cmd = 'chmod -R 755 /Applications/Ace\ Stream.app' print cmd chmod = subprocess.Popen(cmd,shell=True) try: os.remove(MAC_KIT) except: pass if latest_version: settings.setSetting('acestream_version',value=latest_version) return else: mensagemok(translate(40000),translate(600014)) return elif xbmc.getCondVisibility('System.Platform.Android') or settings.getSetting('force_android') == "true": print("Detected OS: Android") print("Starting Acestream Configuration") #acestream config for android if not os.path.exists(pastaperfil): xbmcvfs.mkdir(pastaperfil) #Hack to get xbmc app id xbmcfolder=xbmc.translatePath(addonpath).split("/") i = 0 found = False sopcast_installed = False for folder in xbmcfolder: if folder.count('.') >= 2 and folder != addon_id : found = True break else: i+=1 if found == True: uid = os.getuid() app_id = xbmcfolder[i] settings.setSetting('app_id',app_id) #Acestreamconfiguration for android starts here if "arm" in os.uname()[4]: acebundle = os.path.join(pastaperfil,android_aceengine_arm.split("/")[-1]) download_tools().Downloader(android_aceengine_arm,acebundle,translate(70014),translate(40000)) else: acebundle = os.path.join(pastaperfil,android_aceengine_x86.split("/")[-1]) download_tools().Downloader(android_aceengine_x86,acebundle,translate(70014),translate(40000)) import tarfile if tarfile.is_tarfile(acebundle): download_tools().extract(acebundle,pastaperfil) download_tools().remove(acebundle) orgacestreamenginefolder = os.path.join(pastaperfil,"org.acestream.engine") xbmc_data_path = os.path.join("/data", "data", app_id) if os.path.exists(xbmc_data_path) and uid == os.stat(xbmc_data_path).st_uid: android_binary_dir = os.path.join(xbmc_data_path, "files", "plugin.video.p2p-streams") if not os.path.exists(android_binary_dir): os.makedirs(android_binary_dir) android_acestream_folder = os.path.join(android_binary_dir,"org.acestream.engine") if not os.path.exists(android_acestream_folder): os.makedirs(android_acestream_folder) else: #clean install for android - delete old folder print android_acestream_folder try: os.system("chmod -R 777 "+android_acestream_folder+"/*") os.system("rm -r '"+android_acestream_folder+"'") except: pass try: os.makedirs(android_acestream_folder) except: pass xbmc.sleep(200) #clean install in android - remove /sdcard/.ACEStream folder if it exists if os.path.exists(os.path.join('/sdcard','.ACEStream')): try: hidden_ace = os.path.join('/sdcard','.ACEStream') os.system("chmod -R 777 "+hidden_ace+"/*") os.system("rm -r '"+hidden_ace+"'") except: pass recursive_overwrite(orgacestreamenginefolder, android_acestream_folder, ignore=None) pythonbin = os.path.join(android_acestream_folder,"files","python","bin","python") st = os.stat(pythonbin) import stat os.chmod(pythonbin, st.st_mode | stat.S_IEXEC) if os.path.exists(orgacestreamenginefolder): try: os.system("chmod -R 777 "+orgacestreamenginefolder+"/*") os.system("rm -r '"+orgacestreamenginefolder+"'") except: pass try: xbmcvfs.mkdir(os.path.join('/sdcard','org.acestream.engine')) except: pass opcao= xbmcgui.Dialog().yesno(translate(40000), translate(70015),translate(70016)) if not opcao: settings.setSetting('engine_app','0') else: mensagemok(translate(40000),translate(50018),translate(50019),translate(50020)) if os.path.exists(os.path.join("sdcard","Download")): pasta = os.path.join("sdcard","Download") if "arm" in os.uname()[4]: acefile = os.path.join("sdcard","Download",acestreamengine_apk_arm.split("/")[-1]) else: acefile = os.path.join("sdcard","Download",acestreamengine_apk_x86.split("/")[-1]) else: dialog = xbmcgui.Dialog() pasta = dialog.browse(int(0), translate(40190), 'myprograms') if "arm" in os.uname()[4]: acefile = os.path.join(pasta,acestreamengine_apk_arm.split("/")[-1]) else: acefile = os.path.join(pasta,acestreamengine_apk_x86.split("/")[-1]) if "arm" in os.uname()[4]: download_tools().Downloader(acestreamengine_apk_arm,acefile,translate(40072),translate(40000)) else: download_tools().Downloader(acestreamengine_apk_x86,acefile,translate(40072),translate(40000)) import tarfile if tarfile.is_tarfile(acefile): download_tools().extract(acefile,pasta) download_tools().remove(acefile) xbmc.sleep(2000) mensagemok(translate(40000),translate(50021),pasta,translate(50016)) mensagemok(translate(40000),translate(50023),translate(50024),translate(50025)) settings.setSetting('engine_app','1') opcao= xbmcgui.Dialog().yesno(translate(40000), translate(70017),translate(70018)) if opcao: if os.path.exists(os.path.join("sdcard","Download")): pasta = os.path.join("sdcard","Download") if "arm" in os.uname()[4]: acefile = os.path.join("sdcard","Download",android_aceplayer_arm.split("/")[-1]) else: os.path.join("sdcard","Download",android_aceplayer_x86.split("/")[-1]) else: dialog = xbmcgui.Dialog() pasta = dialog.browse(int(0), translate(40190), 'myprograms') if "arm" in os.uname()[4]: acefile = os.path.join(pasta,acestreamengine_apk_arm.split("/")[-1]) else: acefile = os.path.join(pasta,acestreamengine_apk_x86.split("/")[-1]) if "arm" in os.uname()[4]: download_tools().Downloader(android_aceplayer_arm,acefile,translate(70019),translate(40000)) else: download_tools().Downloader(android_aceplayer_x86,acefile,translate(70019),translate(40000)) import tarfile if tarfile.is_tarfile(acefile): download_tools().extract(acefile,pasta) download_tools().remove(acefile) xbmc.sleep(2000) mensagemok(translate(40000),translate(70020),pasta,translate(50016)) opcao= xbmcgui.Dialog().yesno(translate(40000), translate(70021)) if opcao: settings.setSetting('engine_app','2') if latest_version: settings.setSetting('acestream_version',value=latest_version) mensagemok(translate(40000),translate(50022)) return else: mensagemok(translate(40000),translate(50017)) return
def advanced_menu(): addLink('[COLOR orange]XBMC Advancedsettings.xml:[/COLOR]','',addonpath + art + 'settings_menu.png') lock_file = xbmc.translatePath('special://temp/'+ 'ts.lock') if xbmcvfs.exists(lock_file): addDir(translate(40068),MainURL,306,'',2,False) userdatapath = xbmc.translatePath(os.path.join('special://home/userdata'.decode('utf-8'),''.decode('utf-8'))) advancedsettings_var = os.path.join(userdatapath,'advancedsettings.xml') advancedsettingsbackup_var = os.path.join(userdatapath,'advancedsettingsbackup.xml') addDir(translate(40058),MainURL,301,'p2p',2,False) if xbmcvfs.exists(advancedsettings_var): addDir(translate(40063),MainURL,303,'p2p',2,False) addDir(translate(40065),MainURL,304,'p2p',2,False) if xbmcvfs.exists(advancedsettingsbackup_var): addDir(translate(40061),MainURL,302,'p2p',2,False) addLink('','','p2p') if xbmcvfs.exists(advancedsettings_var): content = readfile(advancedsettings_var) match = re.compile('<cachemembuffersize>(.+?)</cachemembuffersize>').findall(content) if match: if match[0] != '252420': valuebuff = '[COLOR red]' + match[0] + '[/COLOR]' else : valuebuff = '[COLOR green]' + match[0] + '[/COLOR]' addLink(translate(40067) +valuebuff+']','','p2p') addLink('','','p2p') #Apply shutdown hooks addLink('[COLOR orange]'+translate(70025)+'[/COLOR]','',addonpath + art + 'settings_menu.png') addDir(translate(70026),MainURL,310,'p2p',2,False) #Change engine settings from xbmc menus eligible = False if xbmc.getCondVisibility('system.platform.linux') and settings.getSetting('force_android') != "true": if os.uname()[4] == "armv6l" or os.uname()[4] == "armv7l": eligible = True elif xbmc.getCondVisibility('system.platform.OSX'): eligible = False elif settings.getSetting('openeleci386') == "true": eligible = False elif settings.getSetting('force_android') == "true": eligible = False else: eligible = False if eligible and os.path.exists(os.path.join(pastaperfil,'acestream','ace','ACEStream','values')): addLink('[COLOR orange]Acestream engine settings:[/COLOR]','',addonpath + art + 'settings_menu.png') acestream_cachefolder = os.path.join(os.getenv("HOME"),'.ACEStream','cache') acestream_cache_size = str(int(getDirectorySize(acestream_cachefolder))/(1024*1024)) addDir(translate(70003) + '[COLOR orange] [' + acestream_cache_size + ' MB][/COLOR]',acestream_cachefolder,307,'p2p',1,False) try: porta = readfile(os.path.join(pastaperfil,"acestream","ace","ACEStream","values","port.txt")) except: porta = "N/A" try: acestream_settings_file = os.path.join(os.getenv("HOME"),'.ACEStream','sessconfig.pickle') sessconfig = readfile(acestream_settings_file) portvector = re.compile("S'minport'\np(\d+)\nI(\d+)\n").findall(sessconfig) maxport = re.compile("S'maxport'\np(\d+)\nI(\d+)\n").findall(sessconfig) except: portvector = [];maxport=[] addDir(translate(600015) +"[COLOR orange][ " + str(int(porta))+ " ][/COLOR]",os.path.join(pastaperfil,"acestream","ace","ACEStream","values","port.txt") + '|' + str(portvector)+'|'+str(maxport),305,'p2p',2,False) try: vodbuffer = readfile(os.path.join(pastaperfil,"acestream","ace","ACEStream","values","vodbuffer.txt")) except: vodbuffer = "N/A" addDir(translate(600016) + "[COLOR orange][ " + str(int(vodbuffer))+ " ][/COLOR]",os.path.join(pastaperfil,"acestream","ace","ACEStream","values","vodbuffer.txt"),305,'p2p',2,False) try: livebuffer = readfile(os.path.join(pastaperfil,"acestream","ace","ACEStream","values","livebuffer.txt")) except: livebuffer = "N/A" addDir(translate(600017)+"[COLOR orange][ " + str(int(livebuffer))+ " ][/COLOR]",os.path.join(pastaperfil,"acestream","ace","ACEStream","values","livebuffer.txt"),305,'p2p',2,False) try: downloadlimit = readfile(os.path.join(pastaperfil,"acestream","ace","ACEStream","values","downloadlimit.txt")) except: downloadlimit = "N/A" addDir(translate(600018) +"[COLOR orange][ " + str(int(downloadlimit))+ " ][/COLOR]",os.path.join(pastaperfil,"acestream","ace","ACEStream","values","downloadlimit.txt"),305,'p2p',2,False) try: uploadlimit = readfile(os.path.join(pastaperfil,"acestream","ace","ACEStream","values","uploadlimit.txt")) except: uploadlimit = "N/A" addDir(translate(600019)+"[COLOR orange][ " + str(int(uploadlimit))+ " ][/COLOR]",os.path.join(pastaperfil,"acestream","ace","ACEStream","values","uploadlimit.txt"),305,'p2p',2,False) try: maxconnections = readfile(os.path.join(pastaperfil,"acestream","ace","ACEStream","values","maxconnections.txt")) except: maxconnections = "N/A" addDir(translate(600020)+"[COLOR orange][ " + str(int(maxconnections))+ " ][/COLOR]",os.path.join(pastaperfil,"acestream","ace","ACEStream","values","maxconnections.txt"),305,'p2p',2,False) try: maxconnectionsstream = readfile(os.path.join(pastaperfil,"acestream","ace","ACEStream","values","maxconnectionsstream.txt")) except: maxconnectionsstream = "N/A" addDir(translate(600021)+"[COLOR orange][ " + str(int(maxconnectionsstream))+ " ][/COLOR]",os.path.join(pastaperfil,"acestream","ace","ACEStream","values","maxconnectionsstream.txt"),305,'',2,False) elif eligible and not os.path.exists(os.path.join(pastaperfil,'acestream','ace','ACEStream','values')): addLink("[COLOR red][B]"+translate(600027)+"[/COLOR][/B]","",addonpath + art + 'processwarning.png') else: pass if (not eligible and xbmc.getCondVisibility('system.platform.linux') and settings.getSetting('ace_cmd') == "0") or (not eligible and xbmc.getCondVisibility('system.platform.windows')) or (not eligible and xbmc.getCondVisibility('system.platform.Android') and settings.getSetting('engine_app') == "0") or (settings.getSetting('force_android') == "true" and settings.getSetting('engine_app') == "0"): if xbmc.getCondVisibility('system.platform.linux') and not xbmc.getCondVisibility('system.platform.Android'): default_acefolder = os.path.join(os.getenv("HOME"),'.ACEStream') default_cachefolder = os.path.join(os.getenv("HOME"),'.ACEStream','cache','.acestream_cache') pickle_repo = 'http://p2p-strm.googlecode.com/svn/trunk/Modules/Linux/playerconf.pickle' if settings.getSetting('acestream_cachefolder') == '': acestream_cachefolder = os.path.join(os.getenv("HOME"),'.ACEStream','cache','.acestream_cache') else: acestream_cachefolder = settings.getSetting('acestream_cachefolder') acestream_settings_file = os.path.join(os.getenv("HOME"),'.ACEStream','playerconf.pickle') elif xbmc.getCondVisibility('system.platform.Android'): default_acefolder = os.path.join('/sdcard','.ACEStream') default_cachefolder = os.path.join('/sdcard','.ACEStream','.acestream_cache') pickle_repo = 'http://p2p-strm.googlecode.com/svn/trunk/Modules/Android/playerconf.pickle' if settings.getSetting('acestream_cachefolder') == '': acestream_cachefolder = os.path.join('/sdcard','.ACEStream','.acestream_cache') else: acestream_cachefolder = os.path.join(settings.getSetting('acestream_cachefolder'),'.acestream_cache') if not os.path.exists(acestream_cachefolder):xbmcvfs.mkdir(acestream_cachefolder) acestream_settings_file = os.path.join('/sdcard','.ACEStream','playerconf.pickle') elif xbmc.getCondVisibility('system.platform.windows'): default_acefolder = os.path.join(os.getenv("APPDATA"),".ACEStream") pickle_repo = 'http://p2p-strm.googlecode.com/svn/trunk/Modules/Windows/playerconf.pickle' default_cachefolder = os.path.join(os.getenv("SystemDrive"),'\_acestream_cache_') acestream_cachefolder = default_cachefolder acestream_settings_file = os.path.join(os.getenv("APPDATA"),".ACEStream","playerconf.pickle") #workaround to keep settings file in place if they get deleted if not os.path.exists(default_acefolder): xbmcvfs.mkdir(default_acefolder) if not os.path.exists(default_cachefolder): xbmcvfs.mkdir(default_cachefolder) if not os.path.exists(acestream_settings_file): local_file = os.path.join(default_acefolder,pickle_repo.split("/")[-1]) download_tools().Downloader(pickle_repo,local_file,'',translate(40000)) xbmc.sleep(200) if xbmcvfs.exists(acestream_settings_file): settings_text = readfile(acestream_settings_file) save(acestream_settings_file,settings_text.replace('my_cache_folder',default_cachefolder)) if xbmcvfs.exists(acestream_settings_file) and os.path.exists(acestream_cachefolder): addLink('[COLOR orange]Acestream engine settings:[/COLOR]','',addonpath + art + 'settings_menu.png') xbmc.sleep(200) #Change default port for Android if xbmc.getCondVisibility('system.platform.Android'): android_port = settings.getSetting('android_port') addDir(translate(600015) +"[COLOR orange] [ " + android_port + " ][/COLOR]",'p2p',311,'p2p',2,False) # acestream_cache_size = str(int(getDirectorySize(acestream_cachefolder))/(1024*1024)) addDir(translate(70003) + '[COLOR orange] [' + acestream_cache_size + ' MB][/COLOR]',acestream_cachefolder,307,'p2p',1,False) settings_content = readfile(acestream_settings_file) number_of_settings = re.compile('p(\d+)\n').findall(settings_content) cachefoldersetting = re.compile("'download_dir'\np\d+\n.+?/(.+?)\n").findall(settings_content) if not cachefoldersetting: if xbmc.getCondVisibility('system.platform.linux') and not xbmc.getCondVisibility('system.platform.Android'): if not 'arm' in os.uname()[4]: cachefoldersetting = os.path.join(os.getenv("HOME"),'.ACEStream','cache','.acestream_cache') settings.setSetting('acestream_cachefolder',cachefoldersetting) else: cachefoldersetting = os.path.join('/sdcard','.ACEStream','cache') settings.setSetting('acestream_cachefolder',cachefoldersetting) elif xbmc.getCondVisibility('system.platform.windows'): cachefoldersetting = os.path.join(os.getenv("SystemDrive"),'_acestream_cache_') settings.setSetting('acestream_cachefolder',cachefoldersetting) else: cachefoldersetting = os.path.join('/sdcard','.ACEStream','cache') settings.setSetting('acestream_cachefolder',cachefoldersetting) else: if xbmc.getCondVisibility('system.platform.linux') and not xbmc.getCondVisibility('system.platform.Android'): if not 'arm' in os.uname()[4]: cachefoldersetting = os.path.join('/',cachefoldersetting[0].replace("'",""),'.acestream_cache') settings.setSetting('acestream_cachefolder',cachefoldersetting) else: cachefoldersetting = cachefoldersetting[0] if cachefoldersetting: addDir(translate(70013)+"[COLOR orange][ " + cachefoldersetting + " ][/COLOR]",str(cachefoldersetting),309,'p2p',2,False) else: addDir(translate(70013)+"[COLOR orange][" + cachefoldersetting + "][/COLOR]",cachefoldersetting,309,'p2p',2,False) buffer_type = re.compile("S'live_cache_type'\np(\d+)\nS(.*)").findall(settings_content) if xbmc.getCondVisibility('system.platform.Android'): if buffer_type: if 'memory' in buffer_type[0][1]: addDir(translate(70041)+"[COLOR orange] [ Memory ][/COLOR]",'p2p',312,'p2p',2,False) elif 'disk' in buffer_type[0][1]: addDir(translate(70041)+"[COLOR orange] [ Disk ][/COLOR]",'p2p',312,'p2p',2,False) else: pass livebuffervalue = re.compile("S'live_buffer_time'\np(\d+)\nI(\d+)").findall(settings_content) if livebuffervalue: addDir(translate(600017)+"[COLOR orange][ " + livebuffervalue[0][1] + " ][/COLOR]",'live_buffer_time|' + str(livebuffervalue)+'|'+str(len(number_of_settings)),308,'p2p',2,False) else: addDir(translate(600017)+"[COLOR orange][3][/COLOR]",'live_buffer_time|'+str(len(number_of_settings)),308,'p2p',2,False) vodbuffervalue = re.compile("S'player_buffer_time'\np(\d+)\nI(\d+)").findall(settings_content) if vodbuffervalue: addDir(translate(600016)+"[COLOR orange][ " + vodbuffervalue[0][1] + " ][/COLOR]",'player_buffer_time|'+str(vodbuffervalue)+'|'+str(len(number_of_settings)),308,'p2p',2,False) else: addDir(translate(600016)+"[COLOR orange][10][/COLOR]",'player_buffer_time|'+str(len(number_of_settings)),308,'p2p',2,False) downloadlimit = re.compile("S'total_max_download_rate'\np(\d+)\nI(\d+)").findall(settings_content) if downloadlimit: addDir(translate(600018)+"[COLOR orange][ " + downloadlimit[0][1] + " ][/COLOR]",'total_max_download_rate|'+str(downloadlimit)+'|'+str(len(number_of_settings)),308,'p2p',2,False) else: addDir(translate(600018)+"[COLOR orange][0][/COLOR]",'total_max_download_rate|'+str(len(number_of_settings)),308,'p2p',2,False) uploadlimit = re.compile("S'total_max_upload_rate'\np(\d+)\nI(\d+)").findall(settings_content) if uploadlimit: addDir(translate(600019)+"[COLOR orange][ " + uploadlimit[0][1] + " ][/COLOR]",'total_max_upload_rate|'+str(uploadlimit)+'|'+str(len(number_of_settings)),308,'p2p',2,False) else: addDir(translate(600019)+"[COLOR orange][0][/COLOR]",'total_max_upload_rate|'+str(len(number_of_settings)),308,'p2p',2,False) maxconnection_per_stream = re.compile("S'max_peers'\np(\d+)\nI(\d+)").findall(settings_content) if maxconnection_per_stream: addDir(translate(600021)+"[COLOR orange][ " + maxconnection_per_stream[0][1] + " ][/COLOR]",'max_peers|'+str(maxconnection_per_stream)+'|'+str(len(number_of_settings)),308,'p2p',2,False) else: addDir(translate(600021)+"[COLOR orange][50][/COLOR]",'max_peers|'+str(len(number_of_settings)),308,'p2p',2,False)