我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用xbmc.getCondVisibility()。
def check_daynighttheme(self): '''check if a specific day or night theme should be applied''' if xbmc.getCondVisibility( "Skin.HasSetting(SkinHelper.EnableDayNightThemes) + " "Skin.String(SkinHelper.ColorTheme.Day.time) + " "Skin.String(SkinHelper.ColorTheme.Night.time)"): try: daytime = xbmc.getInfoLabel("Skin.String(SkinHelper.ColorTheme.Day.time)") daytime = datetime(*(time.strptime(daytime, "%H:%M")[0:6])).time() nighttime = xbmc.getInfoLabel("Skin.String(SkinHelper.ColorTheme.Night.time)") nighttime = datetime(*(time.strptime(nighttime, "%H:%M")[0:6])).time() timestamp = datetime.now().time() if daytime <= timestamp <= nighttime: dayornight = "Day" else: dayornight = "Night" current_theme = xbmc.getInfoLabel("Skin.String(SkinHelper.LastColorTheme)") newtheme = xbmc.getInfoLabel("Skin.String(SkinHelper.ColorTheme.%s.theme)" % dayornight) if current_theme != newtheme: themefile = xbmc.getInfoLabel("Skin.String(SkinHelper.ColorTheme.%s.file)" % dayornight) self.load_colortheme(themefile) except Exception as exc: log_exception(__name__, exc)
def onInputRequested(self): """ Input.OnInputRequested event handler :return: None """ if not RUN_COMMAND_ON_ENTER: return command = self.window.command.getText() if not command: return while True: keyboard_visible = xbmc.getCondVisibility("Window.IsVisible(virtualkeyboard)") if keyboard_visible: JSONRPC("Input.Back") break if self.abortRequested(): break
def run(): try: xbmc.executebuiltin("ActivateWindow(10147)") window = xbmcgui.Window(10147) xbmc.sleep(100) window.getControl(1).setLabel(translate(32000)) window.getControl(5).setText(translate(32065)) while xbmc.getCondVisibility("Window.IsActive(10147)"): xbmc.sleep(100) ret = xbmcgui.Dialog().yesno(translate(32000), translate(32067)) if ret: xbmc.executebuiltin("RunAddon(script.keymap)") except: traceback.print_stack() xbmc.executebuiltin("XBMC.Notification('"+translate(32000)+"','"+translate(32066)+"','2000','')")
def openDialog(image,audio): audio = audio print 'MUSIC IS '+audio path = xbmc.translatePath(os.path.join('special://home/addons/plugin.video.phstreams/resources/skins/DefaultSkin','media')) popimage=os.path.join(path, 'tempimage.jpg') downloadFile(image,popimage) musicsound=os.path.join(path, 'tempsound.mp3') downloadFile(audio,musicsound) if xbmc.getCondVisibility('system.platform.ios'): if not xbmc.getCondVisibility('system.platform.atv'): popup = dialog('pop1.xml',xbmcaddon.Addon().getAddonInfo('path'),'DefaultSkin',close_time=20,logo_path='%s/resources/skins/DefaultSkin/media/Logo/'%xbmcaddon.Addon().getAddonInfo('path'),) if xbmc.getCondVisibility('system.platform.android'): popup = dialog('pop1.xml',xbmcaddon.Addon().getAddonInfo('path'),'DefaultSkin',close_time=20,logo_path='%s/resources/skins/DefaultSkin/media/Logo/'%xbmcaddon.Addon().getAddonInfo('path')) else: popup = dialog('pop.xml',xbmcaddon.Addon().getAddonInfo('path'),'DefaultSkin',close_time=20,logo_path='%s/resources/skins/DefaultSkin/media/Logo/'%xbmcaddon.Addon().getAddonInfo('path')) popup.doModal() del popup
def __init__(self): # Class initialisation. Fails with a RuntimeError exception if VPN Manager add-on is not available, or too old self.filtered_addons = [] self.filtered_windows = [] self.primary_vpns = [] self.last_updated = 0 self.refreshLists() self.default = self.getConnected() xbmc.log("VPN Mgr API : Default is " + self.default, level=xbmc.LOGDEBUG) self.timeout = 30 if not xbmc.getCondVisibility("System.HasAddon(service.vpn.manager)"): xbmc.log("VPN Mgr API : VPN Manager is not installed, cannot use filtering", level=xbmc.LOGERROR) raise RuntimeError("VPN Manager is not installed") else: v = int((xbmcaddon.Addon("service.vpn.manager").getAddonInfo("version").strip()).replace(".","")) if v < 310: raise RuntimeError("VPN Manager " + str(v) + " installed, but needs to be v3.1.0 or later")
def _down(self, currentFocus): if self.getFocusId() in [self.C_MAIN_CATEGORY, self.C_MAIN_PROGRAM_CATEGORIES]: currentFocus.y = 0 currentFocus.x = self.focusPoint.x control = self._findControlBelow(currentFocus) if control is not None: self.setFocus(control) elif control is None: if self.getControl(self.C_MAIN_ACTIONS) and ADDON.getSetting('action.bar') == 'true' and ADDON.getSetting('down.action') == 'true' and xbmc.getCondVisibility('Control.IsVisible(7100)'): self.setFocusId(self.C_MAIN_ACTIONS) return elif self.getControl(self.C_MAIN_MENUBAR) and ADDON.getSetting('action.bar') == 'true' and ADDON.getSetting('down.action') == 'true': self._showControl(self.C_MAIN_MENUBAR) self.mode = None self.setFocusId(self.C_MAIN_MOUSE_SEARCH) return self.focusPoint.y = self.epgView.top self.onRedrawEPG(self.channelIdx + CHANNELS_PER_PAGE, self.viewStartDate, focusFunction=self._findControlBelow)
def sync_trakt_kodi(silent=True): # Para que la sincronizacion no sea silenciosa vale con silent=False if xbmc.getCondVisibility('System.HasAddon("script.trakt")'): notificacion = True if (not config.get_setting("sync_trakt_notification", "biblioteca") and platformtools.is_playing()): notificacion = False xbmc.executebuiltin('RunScript(script.trakt,action=sync,silent=%s)' % silent) logger.info("Sincronizacion con Trakt iniciada") if notificacion: platformtools.dialog_notification("pelisalacarta", "Sincronizacion con Trakt iniciada", icon=0, time=2000)
def search_kodi(self, searchphrase): '''search kodi json api for channel logo''' result = "" if xbmc.getCondVisibility("PVR.HasTVChannels"): results = self.kodidb.get_json( 'PVR.GetChannels', fields=["thumbnail"], returntype="tvchannels", optparam=( "channelgroupid", "alltv")) for item in results: if item["label"] == searchphrase: channelicon = get_clean_image(item['thumbnail']) if channelicon and xbmcvfs.exists(channelicon): result = channelicon break return result
def _set_resolved_url(self, context, base_item, succeeded=True): item = xbmc_items.to_item(context, base_item) item.setPath(base_item.get_uri()) xbmcplugin.setResolvedUrl(self.handle, succeeded=succeeded, listitem=item) """ # just to be sure :) if not isLiveStream: tries = 100 while tries>0: xbmc.sleep(50) if xbmc.Player().isPlaying() and xbmc.getCondVisibility("Player.Paused"): xbmc.Player().pause() break tries-=1 """
def onPlayBackStarted(self): xbmc.log("Kodi Lifx: DEBUG playback started called on player") playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO) self.playlistlen = playlist.size() self.playlistpos = playlist.getposition() if self.isPlayingVideo() and not self.playingvideo: self.playingvideo = True self.duration = self.getTotalTime() self.movie = xbmc.getCondVisibility('VideoPlayer.Content(movies)') global credits_triggered credits_triggered = False if self.movie and self.duration != 0: #only try if its a movie and has a duration get_credits_info(self.getVideoInfoTag().getTitle(), self.duration) # TODO: start it on a timer to not block the beginning of the media logger.debuglog("credits_time: %r" % credits_time) self.timer = RepeatedTimer(1, self.checkTime) state_changed("started", self.duration)
def getRoleItemDDPosition(self): y = 980 if xbmc.getCondVisibility('Control.IsVisible(500)'): y += 360 if xbmc.getCondVisibility('Control.IsVisible(501)'): y += 520 if xbmc.getCondVisibility('!IsEmpty(Window.Property(on.extras))'): y -= 300 if xbmc.getCondVisibility('IntegerGreaterThan(Window.Property(hub.focus),0) + Control.IsVisible(500)'): y -= 500 if xbmc.getCondVisibility('IntegerGreaterThan(Window.Property(hub.focus),1) + Control.IsVisible(501)'): y -= 500 focus = int(xbmc.getInfoLabel('Container(403).Position')) x = ((focus + 1) * 304) - 100 return x, y
def onFocus(self, controlID): if controlID == self.MAIN_BUTTON_ID: self.selectedOffset = self.trueOffset() if self.lastFocusID == self.BIG_SEEK_LIST_ID: xbmc.sleep(100) self.updateBigSeek() else: self.setBigSeekShift() self.updateProgress() elif controlID == self.BIG_SEEK_LIST_ID: self.setBigSeekShift() self.updateBigSeek() elif xbmc.getCondVisibility('ControlGroup(400).HasFocus(0)'): self.selectedOffset = self.trueOffset() self.updateProgress() self.lastFocusID = controlID
def tick(self, offset=None): if not self.initialized: return if xbmc.getCondVisibility('Window.IsActive(busydialog) + !Player.Caching'): util.DEBUG_LOG('SeekDialog: Possible stuck busy dialog - closing') xbmc.executebuiltin('Dialog.Close(busydialog,1)') if time.time() > self.timeout and not self.hasDialog: if not xbmc.getCondVisibility('Window.IsActive(videoosd) | Player.Rewinding | Player.Forwarding') and not self.playlistDialogVisible: self.hideOSD() try: self.offset = offset or int(self.handler.player.getTime() * 1000) except RuntimeError: # Playback has stopped return self.updateCurrent()
def onAction(self, action): try: if action.getId() in MOVE_SET: controlID = self.getFocusId() if controlID == self.POSTERS_PANEL_ID or controlID == self.SCROLLBAR_ID: self.updateKey() elif action == xbmcgui.ACTION_CONTEXT_MENU: if not xbmc.getCondVisibility('ControlGroup({0}).HasFocus(0)'.format(self.OPTIONS_GROUP_ID)): self.setFocusId(self.OPTIONS_GROUP_ID) return elif action in(xbmcgui.ACTION_NAV_BACK, xbmcgui.ACTION_CONTEXT_MENU): if not xbmc.getCondVisibility('ControlGroup({0}).HasFocus(0)'.format(self.OPTIONS_GROUP_ID)): if xbmc.getCondVisibility('IntegerGreaterThan(Container(101).ListItem.Property(index),5)'): self.setFocusId(self.OPTIONS_GROUP_ID) return self.updateItem() except: util.ERROR() kodigui.MultiWindow.onAction(self, action)
def onAction(self, action): try: if self.postPlayMode: self.cancelTimer() self.resetPassoutProtection() if action in(xbmcgui.ACTION_NAV_BACK, xbmcgui.ACTION_CONTEXT_MENU): if not xbmc.getCondVisibility('ControlGroup({0}).HasFocus(0)'.format(self.OPTIONS_GROUP_ID)): self.setFocusId(self.OPTIONS_GROUP_ID) return if action in(xbmcgui.ACTION_NAV_BACK, xbmcgui.ACTION_PREVIOUS_MENU): self.doClose() return if action in (xbmcgui.ACTION_NEXT_ITEM, xbmcgui.ACTION_PLAYER_PLAY): self.playVideo() elif action == xbmcgui.ACTION_PREV_ITEM: self.playVideo(prev=True) elif action == xbmcgui.ACTION_STOP: self.doClose() except: util.ERROR() kodigui.ControlledWindow.onAction(self, action)
def getRoleItemDDPosition(self): y = 1000 if xbmc.getCondVisibility('Control.IsVisible(500)'): y += 360 if xbmc.getCondVisibility('Control.IsVisible(501)'): y += 520 if xbmc.getCondVisibility('!IsEmpty(Window.Property(on.extras))'): y -= 300 if xbmc.getCondVisibility('IntegerGreaterThan(Window.Property(hub.focus),0) + Control.IsVisible(500)'): y -= 500 if xbmc.getCondVisibility('IntegerGreaterThan(Window.Property(hub.focus),1) + Control.IsVisible(501)'): y -= 500 focus = int(xbmc.getInfoLabel('Container(403).Position')) x = ((focus + 1) * 304) - 100 return x, y
def onAction(self, action): try: self.checkSection() controlID = self.getFocusId() if action in (xbmcgui.ACTION_NAV_BACK, xbmcgui.ACTION_PREVIOUS_MENU): if self.getFocusId() == self.OPTIONS_LIST_ID: self.setFocusId(self.SETTINGS_LIST_ID) return # elif not xbmc.getCondVisibility('ControlGroup({0}).HasFocus(0)'.format(self.TOP_GROUP_ID)): # self.setFocusId(self.TOP_GROUP_ID) # return elif action == xbmcgui.ACTION_MOVE_RIGHT and controlID == 150: self.editSetting(from_right=True) except: util.ERROR() kodigui.BaseWindow.onAction(self, action)
def getRoleItemDDPosition(self): y = 980 if xbmc.getCondVisibility('Control.IsVisible(500)'): y += 360 if xbmc.getCondVisibility('Control.IsVisible(501)'): y += 360 if xbmc.getCondVisibility('Control.IsVisible(502)'): y += 520 if xbmc.getCondVisibility('!IsEmpty(Window.Property(on.extras))'): y -= 300 if xbmc.getCondVisibility('IntegerGreaterThan(Window.Property(hub.focus),0) + Control.IsVisible(500)'): y -= 500 if xbmc.getCondVisibility('IntegerGreaterThan(Window.Property(hub.focus),1) + Control.IsVisible(501)'): y -= 360 if xbmc.getCondVisibility('IntegerGreaterThan(Window.Property(hub.focus),1) + Control.IsVisible(502)'): y -= 500 focus = int(xbmc.getInfoLabel('Container(403).Position')) x = ((focus + 1) * 304) - 100 return x, y
def onFirstInit(self): self.playlistListControl = kodigui.ManagedControlList(self, self.PLAYLIST_LIST_ID, 5) self.setProperties() self.fillPlaylist() self.setFocusId(self.PLAYLIST_LIST_ID) # def onAction(self, action): # try: # if action in(xbmcgui.ACTION_NAV_BACK, xbmcgui.ACTION_CONTEXT_MENU): # if not xbmc.getCondVisibility('ControlGroup({0}).HasFocus(0)'.format(self.OPTIONS_GROUP_ID)): # self.setFocusId(self.OPTIONS_GROUP_ID) # return # except: # util.ERROR() # kodigui.ControlledWindow.onAction(self, action)
def _set_resolved_url(self, context, base_item, succeeded=True): item = xbmc_items.to_item(context, base_item) item.setPath(base_item.get_uri()) xbmcplugin.setResolvedUrl(context.get_handle(), succeeded=succeeded, listitem=item) """ # just to be sure :) if not isLiveStream: tries = 100 while tries>0: xbmc.sleep(50) if xbmc.Player().isPlaying() and xbmc.getCondVisibility("Player.Paused"): xbmc.Player().pause() break tries-=1 """
def Do_VIDEO_DOWNLOAD(self): downloadCmd = __settings__.getSetting("downloadCmd") url = base64.decodestring(self.params["v"]) if not downloadCmd: if xbmc.getCondVisibility("system.platform.android"): cmd = 'StartAndroidActivity("", "android.intent.action.VIEW", "", "%s")' % ( url ) xbmc.executebuiltin(cmd) elif xbmc.getCondVisibility("system.platform.windows"): downloadCmd = "start" else: downloadCmd = "open" if downloadCmd: __settings__.setSetting("downloadCmd", downloadCmd) if '{url}' in downloadCmd: os.system(downloadCmd.replace('{url}', url)) else: os.system(downloadCmd + " " + url)
def tv_get_extended_info(imdb): import xbmc headers = { 'Content-Type': 'application/json', 'trakt-api-version': '2', 'trakt-api-key': TRAKT_CLIENT_ID } url = TRAKT_API_ENDPOINT + "/search/imdb/" + imdb + '?type=show' info = requests.get(url, headers=headers, verify=False).json()[0] tvdb = info["show"]["ids"]["tvdb"] if xbmc.getCondVisibility("system.hasaddon(script.qlickplay)"): xbmc.executebuiltin( "RunScript(script.qlickplay,info=tvinfo,tvdb_id={0})".format(tvdb)) elif xbmc.getCondVisibility("system.hasaddon(script.extendedinfo)"): xbmc.executebuiltin( "RunScript(script.extendedinfo,info=extendedtvinfo,tvdb_id={0})". format(tvdb)) return
def season_get_extended_info(item): import xbmc item = eval(item) imdb = item["imdb"] season = item["season"] headers = { 'Content-Type': 'application/json', 'trakt-api-version': '2', 'trakt-api-key': TRAKT_CLIENT_ID } url = TRAKT_API_ENDPOINT + "/search/imdb/" + imdb + '?type=show' info = requests.get(url, headers=headers, verify=False).json()[0] title = info["show"]["title"] if xbmc.getCondVisibility("system.hasaddon(script.qlickplay)"): xbmc.executebuiltin( "RunScript(script.qlickplay,info=seasoninfo,tvshow={0},season={1})". format(title, season)) elif xbmc.getCondVisibility("system.hasaddon(script.extendedinfo)"): xbmc.executebuiltin( "RunScript(script.extendedinfo,info=seasoninfo,tvshow={0},season={1})". format(title, season)) return
def episode_get_extended_info(item): import xbmc item = eval(item) imdb = item["imdb"] season = item["season"] episode = item["episode"] headers = { 'Content-Type': 'application/json', 'trakt-api-version': '2', 'trakt-api-key': TRAKT_CLIENT_ID } url = TRAKT_API_ENDPOINT + "/search/imdb/" + imdb + '?type=show' info = requests.get(url, headers=headers, verify=False).json()[0] title = str(info["show"]["title"]) if xbmc.getCondVisibility("system.hasaddon(script.qlickplay)"): xbmc.executebuiltin("RunScript(script.qlickplay,info=episodeinfo,\ tvshow={0}, season={1}, episode={2})" .format(title, season, episode)) elif xbmc.getCondVisibility("system.hasaddon(script.extendedinfo)"): xbmc.executebuiltin( "RunScript(script.extendedinfo,info=extendedepisodeinfo,\ tvshow={0},season={1},episode={2})".format(title, season, episode))
def onAction(self, action): '''Respond to Kodi actions e.g. exit''' if action.getId() in (9, 10, 92, 216, 247, 257, 275, 61467, 61448, ): self.close_dialog(True) # an item in the list is clicked if (action.getId() == 7 or action.getId() == 100) and xbmc.getCondVisibility( "Control.HasFocus(3) | Control.HasFocus(6)"): self.close_dialog()
def backup_skinshortcuts(self, dest_path): '''backup skinshortcuts including images''' source_path = u'special://profile/addon_data/script.skinshortcuts/' if not xbmcvfs.exists(dest_path): xbmcvfs.mkdir(dest_path) for file in xbmcvfs.listdir(source_path)[1]: file = file.decode("utf-8") sourcefile = source_path + file destfile = dest_path + file if xbmc.getCondVisibility("SubString(Skin.String(skinshortcuts-sharedmenu),false)"): # User is not sharing menu, so strip the skin name out of the destination file destfile = destfile.replace("%s." % (xbmc.getSkinDir()), "") if (file.endswith(".DATA.xml") and (not xbmc.getCondVisibility( "SubString(Skin.String(skinshortcuts-sharedmenu),false)") or file.startswith(xbmc.getSkinDir()))): xbmcvfs.copy(sourcefile, destfile) # parse shortcuts file and look for any images - if found copy them to addon folder self.backup_skinshortcuts_images(destfile, dest_path) elif file.endswith(".properties") and xbmc.getSkinDir() in file: if xbmc.getSkinDir() in file: destfile = dest_path + file.replace(xbmc.getSkinDir(), "SKINPROPERTIES") copy_file(sourcefile, destfile) self.backup_skinshortcuts_properties(destfile, dest_path) else: # just copy the remaining files copy_file(sourcefile, destfile)
def get_skinsettings(filters=None): '''get all active skin settings''' all_skinsettings = [] guisettings_path = 'special://profile/addon_data/%s/settings.xml' % xbmc.getSkinDir() if xbmcvfs.exists(guisettings_path): doc = parse(xbmc.translatePath(guisettings_path).decode("utf-8")) skinsettings = doc.documentElement.getElementsByTagName('setting') for skinsetting in skinsettings: settingname = skinsetting.attributes['id'].nodeValue settingtype = skinsetting.attributes['type'].nodeValue if isinstance(settingname, unicode): settingname = settingname.encode("utf-8") # we must grab the actual values because the xml file only updates at restarts if settingtype == "bool": if "$INFO" not in settingname and xbmc.getCondVisibility("Skin.HasSetting(%s)" % settingname): settingvalue = "true" else: settingvalue = "false" else: settingvalue = xbmc.getInfoLabel("Skin.String(%s)" % settingname) if not filters: # no filter - just add all settings we can find all_skinsettings.append((settingtype, settingname, settingvalue)) else: # only select settings defined in our filters for filteritem in filters: if filteritem.lower() in settingname.lower(): all_skinsettings.append((settingtype, settingname, settingvalue)) return all_skinsettings
def restore_skinshortcuts(temp_path): '''restore skinshortcuts files''' source_path = temp_path + u"skinshortcuts/" if xbmcvfs.exists(source_path): dest_path = u'special://profile/addon_data/script.skinshortcuts/' for filename in xbmcvfs.listdir(source_path)[1]: filename = filename.decode("utf-8") sourcefile = source_path + filename destfile = dest_path + filename if filename == "SKINPROPERTIES.properties": destfile = dest_path + filename.replace("SKINPROPERTIES", xbmc.getSkinDir()) elif xbmc.getCondVisibility("SubString(Skin.String(skinshortcuts-sharedmenu),false)"): destfile = "%s-" % (xbmc.getSkinDir()) copy_file(sourcefile, destfile)
def kill_spotty(): '''make sure we don't have any (remaining) spotty processes running before we start one''' if xbmc.getCondVisibility("System.Platform.Windows"): startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess._subprocess.STARTF_USESHOWWINDOW subprocess.Popen(["taskkill", "/IM", "spotty.exe"], startupinfo=startupinfo, shell=True) else: os.system("killall spotty")
def test_spotty(self, binary_path): '''self-test spotty binary''' try: st = os.stat(binary_path) os.chmod(binary_path, st.st_mode | stat.S_IEXEC) args = [ binary_path, "-n", "selftest", "-x", "--disable-discovery" ] startupinfo = None if os.name == 'nt': startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess._subprocess.STARTF_USESHOWWINDOW spotty = subprocess.Popen( args, startupinfo=startupinfo, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, bufsize=0) stdout, stderr = spotty.communicate() log_msg(stdout) if "ok spotty" in stdout: return True elif xbmc.getCondVisibility("System.Platform.Windows"): log_msg("Unable to initialize spotty binary for playback." "Make sure you have the VC++ 2015 runtime installed.", xbmc.LOGERROR) except Exception as exc: log_exception(__name__, exc) return False
def start(twitterhash=None, standalone=False): if not twitterhash: userInput = True if os.path.exists(tweet_file): twitter_data = json.loads(FileIO.fileread(tweet_file)) twitterhash = twitter_data["hash"] twitter_mediafile = twitter_data["file"] if twitter_mediafile == xbmc.getInfoLabel('Player.Filenameandpath'): userInput = False else: userInput = False if userInput: dialog = xbmcgui.Dialog() twitterhash = dialog.input(translate(32046), type=xbmcgui.INPUT_ALPHANUM) if len(twitterhash) != 0: twitterhash = twitterhash.replace("#","") else: xbmcgui.Dialog().ok(translate(32000), translate(32047)) mainmenu.start() if twitterhash: #Save twitter hashtag if twitter_history_enabled == 'true': tweet.add_hashtag_to_twitter_history(twitterhash) if xbmc.getCondVisibility("Player.HasMedia") and save_hashes_during_playback == 'true': tweet.savecurrenthash(twitterhash) main = TwitterDialog('script-matchcenter-Twitter.xml', addon_path, getskinfolder(), '', hash=twitterhash, standalone=standalone) main.doModal() del main
def get_system_platform(): """ fonction: pour recuperer la platform que xbmc tourne """ platform = "unknown" if xbmc.getCondVisibility( "system.platform.linux" ): platform = "linux" elif xbmc.getCondVisibility( "system.platform.xbox" ): platform = "xbox" elif xbmc.getCondVisibility( "system.platform.windows" ): platform = "windows" elif xbmc.getCondVisibility( "system.platform.osx" ): platform = "osx" return platform
def get_system_platform(): """ fonction: pour recuperer la platform que xbmc tourne """ import xbmc platform = "unknown" if xbmc.getCondVisibility( "system.platform.linux" ): platform = "linux" elif xbmc.getCondVisibility( "system.platform.xbox" ): platform = "xbox" elif xbmc.getCondVisibility( "system.platform.windows" ): platform = "windows" elif xbmc.getCondVisibility( "system.platform.osx" ): platform = "osx" return platform
def pop():# Added Close_time for window auto-close length..... if xbmc.getCondVisibility('system.platform.ios'): if not xbmc.getCondVisibility('system.platform.atv'): popup = HUB('hub1.xml',ADDON.getAddonInfo('path'),'DefaultSkin',close_time=34,logo_path='%s/resources/skins/DefaultSkin/media/Logo/'%ADDON.getAddonInfo('path')) elif xbmc.getCondVisibility('system.platform.android'): popup = HUB('hub1.xml',ADDON.getAddonInfo('path'),'DefaultSkin',close_time=34,logo_path='%s/resources/skins/DefaultSkin/media/Logo/'%ADDON.getAddonInfo('path')) else: popup = HUB('hub.xml',ADDON.getAddonInfo('path'),'DefaultSkin',close_time=34,logo_path='%s/resources/skins/DefaultSkin/media/Logo/'%ADDON.getAddonInfo('path')) popup.doModal() del popup
def scanRunning(self): return (xbmc.getCondVisibility('Library.IsScanningVideo') or xbmc.getCondVisibility('Library.IsScanningMusic'))
def action(self, data): if self.scid is None: return url = "%s/Stats" % (sctop.BASE_URL) data.update({'est': self.estimateFinishTime}) data.update({'se': self.se, 'ep': self.ep}) data.update({'ver': sctop.addonInfo('version')}) try: data.update({'state': bool(xbmc.getCondVisibility("!Player.Paused"))}) data.update({'ws': xbmcgui.Window(10000).getProperty('ws.ident'), 'vip': xbmcgui.Window(10000).getProperty('ws.vip')}) data.update({'vd': xbmcgui.Window(10000).getProperty('ws.days')}) data.update({'skin':xbmc.getSkinDir()}) if 'bitrate' in self.stream: util.debug("[SC] action bitrate") data.update({'bt': self.stream['bitrate']}) else: util.debug("[SC] action no bitrate") except: pass try: if self.itemDuration > 0: data.update({'dur': self.itemDuration}) except Exception: pass self.log("[SC] action: %s" % str(data)) url = self.parent.provider._url(url) sctop.post_json(url, data, {'X-UID': sctop.uid})
def getMediaType(): if xbmc.getCondVisibility('Container.Content(tvshows)'): return "show" elif xbmc.getCondVisibility('Container.Content(seasons)'): return "season" elif xbmc.getCondVisibility('Container.Content(episodes)'): return "episode" elif xbmc.getCondVisibility('Container.Content(movies)'): return "movie" else: return None
def getCondVisibility(text): '''executes the builtin getCondVisibility''' # temporary solution: check if strings needs to be adjusted for backwards compatability if KODI_VERSION < 17: text = text.replace("Integer.IsGreater", "IntegerGreaterThan") text = text.replace("String.Contains", "SubString") text = text.replace("String.IsEqual", "StringCompare") return xbmc.getCondVisibility(text)
def get_system_platform(): """ fonction: pour recuperer la platform que xbmc tourne """ platform = "unknown" if xbmc.getCondVisibility("system.platform.linux"): platform = "linux" elif xbmc.getCondVisibility("system.platform.xbox"): platform = "xbox" elif xbmc.getCondVisibility("system.platform.windows"): platform = "windows" elif xbmc.getCondVisibility("system.platform.osx"): platform = "osx" return platform