#!/usr/bin/python # # -*- coding: utf-8 -*- # #############################=IMPORTS=###################################### #Kodi Specific import xbmc,xbmcaddon,xbmcgui,xbmcplugin,xbmcvfs #Python Specific import os,sys,glob,webbrowser ############################################################################ #Addon Specific from . import tools ##########################=VARIABLES=####################################### ADDON = xbmcaddon.Addon() ADDONPATH = ADDON.getAddonInfo("path") ADDON_NAME = ADDON.getAddonInfo("name") ADDON_ID = ADDON.getAddonInfo('id') DIALOG = xbmcgui.Dialog() DP = xbmcgui.DialogProgress() HOME = xbmcvfs.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) FANART = os.path.join(ADDONPATH, 'fanart.jpg') ICON = os.path.join(ADDONPATH, 'icon.png') ART = os.path.join(ADDONPATH, 'resources', 'art') SKINFOLD = os.path.join(ADDONPATH, 'resources', 'skins', 'Default', 'media') ADVANCED = os.path.join(USERDATA, 'advancedsettings.xml') KODIV = float(xbmc.getInfoLabel("System.BuildVersion")[:4]) ADDONTITLE = ADDON_NAME COLOR1 = 'white' COLOR2 = 'blue' SIGNUP_URL = '' ############################################################################ ACTION_PREVIOUS_MENU = 10 ## ESC action ACTION_NAV_BACK = 92 ## Backspace action ACTION_MOVE_LEFT = 1 ## Left arrow key ACTION_MOVE_RIGHT = 2 ## Right arrow key ACTION_MOVE_UP = 3 ## Up arrow key ACTION_MOVE_DOWN = 4 ## Down arrow key ACTION_MOUSE_WHEEL_UP = 104 ## Mouse wheel up ACTION_MOUSE_WHEEL_DOWN = 105 ## Mouse wheel down ACTION_MOVE_MOUSE = 107 ## Down arrow key ACTION_SELECT_ITEM = 7 ## Number Pad Enter ACTION_BACKSPACE = 110 ## ? ACTION_MOUSE_LEFT_CLICK = 100 ACTION_MOUSE_LONG_CLICK = 108 def autoConfigQ(): class FTGac(xbmcgui.WindowXMLDialog): def __init__(self,*args,**kwargs): self.title ='[COLOR %s]Quick Advanced Settings Configurator[/COLOR]' % (COLOR2) freeMemory = int(float(tools.getInfo('System.Memory(free)')[:-2])*.33) recMemory = int(float(tools.getInfo('System.Memory(free)')[:-2])*.23) self.videomin = 0; self.videomax = freeMemory if freeMemory < 2000 else 2000 self.recommendedVideo = recMemory if recMemory < 500 else 500; self.currentVideo = self.recommendedVideo current1 = '[COLOR %s]Video Cache Size[/COLOR]=[COLOR %s]%s MB[/COLOR]' % (COLOR1, COLOR2, self.currentVideo) recommended1 = '[COLOR %s]Video Cache Size:[/COLOR] [COLOR %s]%s MB[/COLOR]' % (COLOR1, COLOR2, self.recommendedVideo) self.curlmin = 0; self.curlmax = 20 self.recommendedCurl = 10; self.currentCurl = self.recommendedCurl curlpos = tools.percentage(self.currentCurl, self.curlmax) recommended2 = '[COLOR %s]CURL Timeout/CURL Low Speed:[/COLOR] [COLOR %s]%ss[/COLOR]' % (COLOR1, COLOR2, self.recommendedCurl) self.recommendedRead = 5; self.currentRead = self.recommendedRead recommended3 = '[COLOR %s]Read Buffer Factor:[/COLOR] [COLOR %s]%s[/COLOR]' % (COLOR1, COLOR2, self.recommendedRead) recommended4 = '[COLOR %s]Buffer Mode:[/COLOR] [COLOR %s]2[/COLOR]' %(COLOR1, COLOR2) self.msgbox='[COLOR %s]These are the best settings currently for your device.\n\nChoose write and these will be written to the advancesettings.xml[/COLOR]\r\n\r\n%s\r\n%s\r\n%s\r\n%s' %(COLOR1, recommended4, recommended1, recommended3, recommended2) def onInit(self): self.header = 100 self.Tbox = 101 self.writeAS = 201 self.exit = 202 self.show_set() def show_set(self): self.getControl(self.header).setLabel(self.title) self.getControl(self.Tbox).setText(self.msgbox) self.setFocusId(self.exit) def doWrite(self): buffermode = 2 if os.path.exists(ADVANCED): choice = DIALOG.yesno(ADDONTITLE, "[COLOR %s]There is currently an active [COLOR %s]AdvancedSettings.xml[/COLOR], would you like to remove it and continue?[/COLOR]" % (COLOR2, COLOR1), yeslabel="[B][COLOR green]Remove Settings[/COLOR][/B]", nolabel="[B][COLOR red]Cancel Write[/COLOR][/B]") if choice == 0: return try: os.remove(ADVANCED) except: f = open(ADVANCED, 'w'); f.close() if KODIV < 17: with open(ADVANCED, 'w+') as f: f.write('\n') f.write(' \n') f.write(' %s\n' % buffermode) f.write(' %s\n' % int(self.currentVideo*1024*1024)) f.write(' %s\n' % self.currentRead) f.write(' %s\n' % self.currentCurl) f.write(' %s\n' % self.currentCurl) f.write(' \n') f.write('\n') f.close() else: with open(ADVANCED, 'w+') as f: f.write('\n') f.write(' \n') f.write(' %s\n' % buffermode) f.write(' %s\n' % int(self.currentVideo*1024*1024)) f.write(' %s\n' % self.currentRead) f.write(' \n') f.write(' \n') f.write(' %s\n' % self.currentCurl) f.write(' %s\n' % self.currentCurl) f.write(' \n') f.write('\n') f.close() tools.LogNotify("[COLOR %s]%s[/COLOR]" % (COLOR1, ADDONTITLE), '[COLOR %s]AdvancedSettings.xml have been written[/COLOR]' % COLOR2) self.CloseWindow() def onClick(self, controlId): if (controlId == self.writeAS): self.doWrite() if (controlId == self.exit): #xbmc.executebuiltin("Action(ParentDir,%s)" % xbmcgui.getCurrentWindowId()) self.doCancel() def doCancel(self): self.close() def onAction(self,action): if action == ACTION_PREVIOUS_MENU: self.doCancel() elif action == ACTION_NAV_BACK: self.doCancel() def CloseWindow(self): self.close() FTGw = FTGac('advanced_settings.xml', ADDON.getAddonInfo('path'), 'Default') FTGw.doModal() del FTGw def popup(): class MyWindow(xbmcgui.WindowXMLDialog): def __init__(self,*args,**kwargs): self.title ='[COLOR %s][B]Welcome to insert iptvservice here[/B][/COLOR]' % (COLOR1) line1 = '[COLOR %s]Fast service that offers something..... [/COLOR]' % (COLOR1) line2 = '[COLOR %s]Great customer service & fast response![/COLOR]' % (COLOR1) line3 = '[COLOR %s]If you have an account press next.[/COLOR]' % (COLOR1) line4 = '[COLOR %s]If you need an account press Sign Up[/COLOR]' %(COLOR1) self.msgbox='\r\n\r\n%s\r\n%s\r\n%s\r\n%s' %(line1, line2, line3, line4) def onInit(self): self.header = 100 self.Tbox = 101 self.signup = 201 self.haveacc = 202 self.exit = 203 self.show_set() def show_set(self): self.getControl(self.header).setLabel(self.title) self.getControl(self.Tbox).setText(self.msgbox) self.setFocusId(self.exit) def opensite(self): if xbmc.getCondVisibility('system.platform.android'): xbmc.executebuiltin('StartAndroidActivity(,android.intent.action.VIEW,,%s)' % (SIGNUP_URL) ) if xbmc.getCondVisibility('system.platform.osx'): os.system("open -a /Applications/Safari.app %s") % (SIGNUP_URL) else: webbrowser.open(SIGNUP_URL) def onClick(self, controlId): if (controlId == self.signup): self.opensite() if (controlId == self.exit): xbmc.executebuiltin("Action(ParentDir,%s)" % xbmcgui.getCurrentWindowId()) self.doCancel() if (controlId == self.haveacc): xbmc.executebuiltin('ActivateWindow(10025, "plugin://%s/?mode=start&signin=true", return)' % ADDON_ID) self.doCancel() def doCancel(self): self.close() def onAction(self,action): if action == ACTION_PREVIOUS_MENU: self.doCancel() elif action == ACTION_NAV_BACK: self.doCancel() def CloseWindow(self): self.close() popup = MyWindow('popup.xml', ADDON.getAddonInfo('path'), 'Default') popup.doModal() del popup