XBMC插件开发

XBMC 是开源的媒体中心软件,适用于 Mac, Windows, BSD, Linux, iOS 和 Apple TV2。


XBMC 具有很强大的扩展功能,插件的开发主要是用 Python 脚本
有兴趣开发 XBMC 插件,可参考这篇 http://wiki.xbmc.org/index.php?title=HOW-TO_write_Python_Scripts_for_XBMC
及 XBMC 的 Python 函数库 http://xbmc.sourceforge.net/python-docs/

XBMC 的插件安装压缩 zip 文档内, 一般都有这些基本文件
addon.py - 插件的 Python脚本
addon.xml - 插件的描述和说明
icon.png - 插件的图标

从一个简单获取网站视频内容的插件为例子的 Python 脚本, 有这些框架及内容

⑴ 首先要做的就是导入库, 包括 xbmc 的库 

import sys, os, urllib, urllib2, re
import xbmc, xbmcgui, xbmcplugin, xbmcaddon

⑵ 定义一些常量
例如当 DEVELOP = True, 方便在桌面电脑运行 Python 脚本作测试

import sys, os, urllib, urllib2, re
import xbmc, xbmcgui, xbmcplugin, xbmcaddon

⑶ 不一定要定义类 class,但必须有一些主功能或辅助功能函数,例如

# 主功能
def CATEGORIES():                                # 首页显示视频的分类
def SORTMETHOD(url):                             # 用对话框来更改视频的排列方式
def VIDEOLIST(url,page,order):                    # 显示视频列表
def PLAYVIDEO(url):                                # 播放视频
# 辅助功能
def GetHttpData(url):                            # 获取 http 数据
def get_params():                                # 获取脚本的参数
def addLink(name,url,mode,iconimage):            # 在列表添加链接
def addDir(name,url,mode,iconimage,page,order):    # 在列表添加目录
def main():                                    # 主函数

主功能函数里常见一些获取网站数据的功能及后用正则表达式 regular expression_r(re) 函数操作搜索及替代字符,例如

# re 搜索操作
match=re.compile('<li><a.+?href="(.+?/channels/.+?)">(.+?)</a></li>').findall(link)
match=re.compile('<a href="(http://www.empflix.com/videos/.+?)".+?title="(.+?)"><img src="(.+?)"').findall(link)
# re 替代操作
newurl=re.sub("new-|watched-|popular-|rated-","new-",newurl)
newurl=re.sub("category=(mr|bw|mv|tr)","category=mr",newurl)

⑷ 在 main() 主函数里会看到主要功能的架构及流程

if mode==None or url==None or len(url)<1:
        CATEGORIES()
elif mode==1:
        SORTMETHOD(url)
elif mode==2:
        VIDEOLIST(url,page,order)
elif mode==3:
        PLAYVIDEO(url)

⑸ XBMC 插件运行时的调试日志文件在 iOS / Apple TV2 内的路径是
/var/mobile/Library/Preferences/xbmc.log
Linux : ~/.xbmc/temp/xbmc.log
Mac : ~/Library/Logs/xbmc.log
Windows 7: \Users\<UserName>\AppData\Roaming\XBMC\xbmc.log

插件写入日志文件要这么写
xbmc.log(msg='This is a test string.', level=xbmc.LOGDEBUG)

 

开发Python每个代码块需要注意缩进4个字符的要求。 关于编辑器 Mac 可以用 TextWrangler 或 BBEdit. Windows 可以用 Python 自带的 IDE
注意:Python 3 是不兼容 Python 2.x 的,开发 XBMC 插件要用 Python 2.x,尽量用 Python 2.5 以上版本
$ python --version
Python 2.7.1

XBMC 的插件安装是将 zip 文档拷入 iOS 或 Apple TV2 的 /private/var/mobile 文件夹內
然后在 XBMC 內,从 zip 文件安装插件

安装后,插件就在 /var/mobile/Library/Preferences/XBMC/addons/plugin.video.empflix 文件夹內

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值