最近在树莓派上装了一个OSMC(基于Kodi,但是我在Kodi上下载的居然长得一样)做电视盒子,至于为什么不用市面上的电视盒子。
- 资源更新速度太慢。
- 资源大多收费。
- 收费项有点多(有些盒子不同频道居然还区分收费)。
基于以上原因,就打算自己用树莓派搭建了。
OSMC开启DLAN和AirPlay之后还可以用来投屏,很方便。但有时候想看电视或者是一些偏冷频道就有些没办法了,所以打算自己写插件用了~ 网上搜了半天发现大部分教程都是老版本的,目录结构都已经不适用最新的系统了。遂起了翻译的念头。
引言
每一个插件都放在单独的目录里,并且必须带有一个addon.xml描述文件。同时还可以包含其它非必要的文件,如:icon.png, changelog.txt, fanart.jpg。除此之外的文件应该放在resources目录下。
目录名称
插件的名称应该遵循以下规则:<addon-type>[.<media-type>].<你的插件名称>,如 plugin.hello-world。
需要注意的是,插件名称是大小写敏感的,并且规定必须是小写。每个部分用 . 来分割。
addon-type 必须是下表中的类型之一:
Addon-Type | 描述 | 是否需要附加 media-type 字段 |
repository | 一个仓库(这个翻译有点生硬,英语有点捉急,待完善) | 否 |
plugin | 一个功能型插件,插件会显示在主页菜单中 | 是 |
script | 一个可运行的程序文件,同样会显示在主页菜单中 | 是 |
skin | 皮肤 | 否 |
resource | 资源文件 | 否 |
media-type字段的可选值:
addon-type | media-type | 描述 |
plugin | audio | 音乐类插件,会显示在音乐主菜单中 |
plugin | video | 视频类插件,会显示在视频主菜单中 |
plugin | picture | 图片类插件,会显示在图片类主菜单中 |
plugin | program | 程序类插件 |
plugin | weather | 天气类插件 |
script | module | |
script | service | 在系统开机或者登陆后自动运行的脚本 |
插件命名的前两个部分需要遵守上面这两张表, 表示类型。最后一个部分则为自定义部分,由于点这个符号已经被用作分隔符。如果插件名需要分隔,可以采用 - 进行分隔。
如:plugin.video.my-great-tv-com, 表示这个插件是一个插件类型, 属于视频类。
目录结构
目录里要包含所有你需要的第三方库文件/资源,例如非python自带库,最好是把源码放在目录中。
Kodi V17及更高版本插件的目录结构:
addon.py
addon.xml
LICENSE.txt
resources/
settings.xml
language/
lib/
data/
media/
fanart.jpg
icon.png
Kodi V16 及更低版本插件的目录结构:
addon.py
addon.xml
fanart.jpg
icon.png
LICENSE.txt
changelog.txt
resources/
settings.xml
language/
lib/
data/
media/
addon.py
这个文件包含了你插件的主逻辑代码,名称可以修改为其他的名称,但需要在addon.xml中指定。
addon.xml
详情参考【原文】
这个文件主要用来描述插件,Kodi添加插件时会扫描这个文件是否符合标准,并从中取得插件相关的信息,例如启动文件是哪个文件,作者,版本之类。
changelog.txt
此文件在v17及以上的版本中不建议生成,取而代之的是addon.xml中的属性。
此文件描述更新的版本有何变动,就是更新日志/说明。
icon.png
图标文件,图标文件有如下要求:
- 必须是256 x 256或者是512 x 512像素的。
- 格式必须是PNG。
- 背景不能是透明的。
- 尽可能简洁。
- 边距至少留25像素,没有背景的logo。
- 尽量不要和系统中已有的logo重复,以免区分不清。
- 不要添加边框,边框应该是皮肤关心的事情。
fanart.jpg
封面图?这个待编写插件时试一试。
- 建议为16:9
- 建议为1280 x 720 的JPEG文件,应该小于 1920 x 1080
LICENSE.txt
内容参考【原文】
resources/
resources 子目录是用来那些不是必须放在根目录下的文件,比如第三方库文件,图片等。
resources/settings.xml
参考【原文】
此文件用来存放插件的配置信息,在插件的配置页面展示。
resources/language/
翻译文件存放的目录,官方也提供了一些翻译工具。
- Language support
- Translation System
- 将xml 文件转化为.po文件: xbmc-xml2po
- 检查.po文件: xbmc-checkpo
- xbmc-txupdate
String ID 范围:
31000 - 31999 是为皮肤保留的ID
resources/lib/
存放模块或者是第三方库
resources/data/
用于存于静态资源
resources/media
用于存储静态图片,音频,视频等文件。
关于Kodi的插件目录结构大致翻译完成,接下来会开始根据官方文档制作自己的插件,在制作的过程中会修正一些翻译不到位的地方。以实际效果为准。
PS:从官方的文档上看也有点迷糊啊,域名和产品是Kodi, 插件的不少参考目录都是xbmc。看来这三个系统在插件这一部分没有什么改动。
原文地址:https://www.cnblogs.com/By-ruoyu/p/9068249.html,欢饮转载