SAKç可以帮助您调试和开发Kodi Python插件

sakee的Python项目详细描述


简单ASCII-Kodi仿真器

LicenseGitHub Workflow Status (branch)Quality Gate StatusPython

alt text

SAKа:您最喜欢的调试和开发Kodi Python插件的“饮料”

SAKç可以帮助您调试和开发Kodi Python附加组件。它包含一组试图模拟相应Kodi模块功能的库:

ModulePurpose
^{}General functions on Kodi
^{}Kodi’s addon class
^{}GUI functions on Kodi.
^{}Plugin functions on Kodi.
^{}Virtual file system functions on Kodi.

并不是所有的库都存在,当然也不是所有的方法都实现了。目前缺少的是:

^{tb2}$

请随意使用此存储库的Pull请求来完成。在

使用SAKÉ

可以使用pip install命令安装SAKÉ:

$ pip install sakee

这将在活动Python安装中安装SAKÉ。它将直接提供给所有Python脚本。如果您选择不使用pip install,并希望从特定(自定义)位置运行它,则需要包含其路径Python路径。通过以下方式之一:

^{pr2}$

或者将SAKа路径附加到Python path环境变量:PYTHONPATH

配置

SAKа要求您将附加组件作为主working directory运行。在该目录之外运行它将失败。在

如果您的加载项位于Kodi的addons文件夹的子文件夹中,则完成操作。SAKа将尝试找到自己的方法,并确定您的Kodi路径是什么,以及您的配置文件存储在哪里。但是,如果您是独立运行它,因此根本没有Kodi,或者如果SAKа喝醉了,迷路了,您可以始终使用环境变量指定一些方向,如下所示:

^{3}$

JSON-RPC响应

为了响应通过executeJSONRPC发出的JSON-RPC请求,可以使用KODI_STUB_RPC_RESPONSES环境变量配置包含响应文件的文件夹(见上文)。此文件夹应包含具有以下命名转换的响应文件:

<method_name>.json

因此,例如favourites.getfavourites.json。文件内有:

  • 一个完整的JSON响应。在本例中,文件的完整内容将被用作JSON-RPC响应。在
  • 具有不同输入参数的JSON请求-响应对的列表。使用JSON-RPC请求的输入参数,确定正确的响应并作为JSON-RPC响应返回。在

在后一种情况下,存根文件的内容可能如下所示:

[{"request":{"params":{"setting":"network.usehttpproxy"},"jsonrpc":"2.0","method":"Settings.GetSettingValue","id":0},"response":{"id":5,"jsonrpc":"2.0","result":{"value":false}}},{"request":{"params":{"setting":"network.httpproxyusername"},"jsonrpc":"2.0","method":"Settings.GetSettingValue","id":0},"response":{"id":5,"jsonrpc":"2.0","result":{"value":true}}}]

这个存根文件包含对设置network.usehttpproxynetwork.httpproxyusername的方法Settings.GetSettingValue的响应。在

如果找不到具有匹配方法名的文件或文件不包含正确的响应,则返回“OK”:

{"id":1,"jsonrpc":"2.0","result":"OK"}

就像大多数Kodi-JSON-RPC调用一样。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用ContentExchange设置请求属性   java Spark/Hdfs/Hdfsclient兼容性   java springcloudstreamkafka配置:instanceCount和instanceIndex   Java中web服务序列化日期   java用动态数据替换占位符   java git gc似乎覆盖了一个packfile,留下了一个打开的文件描述符,其中包含对“oldxxx.pack”的引用   为什么Apache项目对Java版本敏感?   java Anylogic帮助如何在导入的3dobject通过输送机上的多个“站”时更改其颜色?   JavaEclipseNeonM2E可以导入一个大型项目,但似乎不能自动解决依赖关系   java@FindBy搜索具有满足条件的子元素的元素   java如何将ActionEvent e与键绑定一起使用?   java转换以集中方式从外部库抛出的异常   java中用户文件/数据文件与系统/程序文件的区别   java使用变量字符串或字符作为对象名   字体使用Java图形操纵字符串中每个字符的形状   JavaFX图表移动数据   java RandomAccessFile:将所有项设置为相同的字节数?   java Google Play inapp Billing onPurchasesUpdated()错误响应代码1   java在不知道属性名和属性数的情况下处理json对象   java是否可以一次从HazelcastInstance(映射和列表)中删除所有数据?