gpt4 book ai didi

python - 如何检查在 xbmc 中覆盖它们的值?

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:12 27 4
gpt4 key购买 nike

我正在处理我的 python 脚本,因为我想检查 settings.xml 中的值,看看它们的值是真还是假。我想检查 xml 文件中的值:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<settings>
<category label="30101">
<setting id="myidname.enabled" value="false"/>
</category>
</settings>

我试过这个:

import xbmc 
import xbmcgui
import xbmcplugin
ACTION_BACKSPACE = 110
def onAction(self, action):
if action == ACTION_BACKSPACE:
if self.Settings == xbmc.getSetting("myidname.enabled") == True:
self.settings.setSetting("id=myidname.enabled", "value=false")

它不会让我检查 settings.xml 中的值是否为真。你如何使用 if 语句为 python 编写代码,如果它的值设置为 true,我想检查带有 id 的设置?

其次,我使用这段代码来允许我覆盖 settings.xml 中的值:

self.settings.setSetting(id="myidname.enabled", value="true")

它不会让我覆盖值。你如何编写 python 代码,让我在与 id 相同的行中覆盖 settings.xml 中的值?

settings.xml 的文件位置在:c:\users\user\appdata\roaming\xbmc\addons\script.tvguide\resources。

这是更新 xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<settings>
<category label="30101">
<setting id="myid.enabled" value="false"/>
<setting id="myid1.enabled" value="false"/>
<setting id="myid2.enabled" value="false"/>
<setting id="myid3.enabled" value="false"/>
<setting id="myid4.enabled" value="false"/>
<setting id="myid5.enabled" value="false"/>
<setting id="myid6.enabled" value="false"/>
<setting id="myid7.enabled" value="false"/>
</category>
</settings>

最佳答案

您的代码中有些奇怪的东西。

首先,您似乎使用了 xbmc.getSetting() - xbmc 模块中不存在这些函数。要获取(和设置)附加组件的设置,您需要对 xbmcaddon.Addon( )

因此,要获取“myidname.enabled”的 (bool) 值(这真的是定义的设置 ID 吗?请向我展示您的 settings.xml)您需要使用:

import xbmcaddon
addon = xbmcaddon.Addon()
myidnmame_enabled = addon.getSetting('myidname.enabled') == 'true'

注意 getSetting() 总是返回字符串!要获取 bool 定义设置的 bool 值,我建议与 'true' 进行比较。

要设置设置,只需使用 setSetting():

import xbmcaddon
addon = xbmcaddon.Addon()
addon.setSetting('setting_id', 'true')

有关示例,请查看其他附加组件。

编辑:

有两个相关的settings.xml:

  1. 定义设置的 settings.xml。这是您(作为插件作者)需要定义的文件。它应该位于 xbmc\addons\script.tvguide\resources\settings.xml

  2. XBMC 存储所选值的(自动生成的)用户相关 settings.xml。它位于 xbmc\userdata\addon_data\script.tvguide\resources\settings.xml。你不应该修改它。

您似乎混合了这些文件。第一个不应该有“值”属性!将此文件修改为例如:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<settings>
<category label="30101">
<setting id="myid.enabled" value="false"/>
<setting id="myid1.enabled" type="bool" label="MY ID1" default="false"/>
<setting id="myid2.enabled" type="bool" label="MY ID2" default="false"/>
<setting id="myid3.enabled" type="bool" label="MY ID3" default="false"/>
<setting id="myid4.enabled" type="bool" label="MY ID4" default="false"/>
<setting id="myid5.enabled" type="bool" label="MY ID5" default="false"/>
<setting id="myid6.enabled" type="bool" label="MY ID6" default="false"/>
<setting id="myid7.enabled" type="bool" label="MY ID7" default="false"/>
</category>
</settings>

关于python - 如何检查在 xbmc 中覆盖它们的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21210451/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com