Tag: Plugin

修改XBMC LiveStreams Python插件以支持中文

本文同步自(最佳显示效果请点击):https://zohead.com/archives/xbmc-livestreams-cn-patch/ 最近在闲时捣鼓下 Raspberry Pi 微型电脑板上的开源 XBMC 应用准备看看 HTPC 媒体中心的效果,发现 Raspberry Pi 在安装了 XBian 系统之后可以比较好的实现 XBMC 的基本功能,虽然由于 Raspberry Pi 没有购买一些视频格式的软件解码授权而导致 WMV 或者 MMS 之类的格式无法播放,但对于常用的一些 H264 的高清视频已经足以应付,接上网线之后看高清在线视频点播和直播的效果都还可以。 有关 Raspberry Pi 请参考 [之前] 的文章,有关 XBian 之一专门为 Raspberry Pi 优化的 XBMC 系统可以访问其官网:http://xbian.org/。 注:Raspberry Pi 上除了 XBian 之外,还有 Raspbmc、Openelec 等其它合适的 XBMC 系统可供选择的。而且这些都是基于标准 XBMC 程序修改的,标准插件之类的基本可以通用。 前两天找到一个不错的在线电视直播的 XBMC 插件:LiveStreams,此插件可以由用户自己修改 XML 配置文件增加在线直播的地址,根据实际硬件配置不同,可支持 MMS、RTSP、RTMP 等各种不同的流媒体协议。有关 LiveStreams 的介绍和配置请参考这些链接(特别第二个链接中有详细的截图介绍): http://forum.xbmc.org/showthread.php?tid=97116 http://www.xbmchub.com/blog/2012/04/26/adding-custom-xml-files-to-the-live-streams-addon/ 最新版本的 LiveStreams 插件可以到这里下载:http://code.google.com/p/divingmules-repo/。 在实际使用过程中发现由于 LiveStreams 由于是老外写的,不由自主的就碰到对中文的支持问题,如果添加的 XML 配置文件中节目名称或者节目目录名称包含中文,XBMC 系统中LiveStreams 插件将不能正常工作,直接会出现脚本错误。 简单看了下 LiveStreams 插件的代码,是用 Python 写的,凭着一些简单的 Python 基础,然后集合 Python 的 logging 模块来调试,终于发现 LiveStreams 插件对中文支持不佳的原因,作者在使用 BeautifulSoup(参考 [这里]) 这一个非常知名的 HTML/XML 等解析的库时未考虑非英文环境下的问题,简单做了下修改之后,中文的直播节目和目录名称都可以正常显示了。 顺便再简单说明一下 LiveStreams XML 配置文件嵌套节目目录的方式,这是一个实例 XML 节目配置文件: 第一个节目目录 Channel 1 下面没有子目录,只有 TV1 和 TV2 这两个节目,因此 XML 层次是 channel/items/item。第二个节目目录 Channel 2 下有名为 Sub1 的子目录,Sub1 下又有 Sub TV1 和 Sub TV2 两个节目,这种的 XML 层次则是:channel/subchannels/subchannel/subitems/subitem。 需要注意的是 LiveStreams 的 XML 配置文件必须以 UTF-8 编码格式保存,否则非英文字符将无法正常显示。另外由于 XML 本身格式的原因,XML 内容中的这些字符需要转换(全部为纯英文字符,包括结束的分号): & 转换为 &amp; < 转换为 &lt; > 转换为 &gt; ‘ 转换为 &apos; ” 转换为 &quot; 最后附上我修改过的最新 LiveStreams 1.0.6 版本 XBMC 插件的下载地址: http://miseal.googlecode.com/files/plugin.video.live.streams-1.0.6.zip 由于这插件只是随便修改的,有任何问题欢迎指正哦。 ^_^

修改 WordPress 插件配合 WordPress Mobile Pack 实现移动版博客

WordPress Mobile Pack 是一款相当不错的 WordPress 移动版本转换插件,安装启用之后,可以快速生成适合手机访问的移动版本 WordPress 博客,插件安装地址如下:   http://wordpress.org/extend/plugins/wordpress-mobile-pack/   可以在 WordPress 后台配置中搜索 WordPress Mobile Pack 或者手工下载安装包进行安装。   实际使用,在 WordPress 本身插件比较少的情况下,WordPress Mobile Pack 在手机上效果很不错,但安装了一些额外的插件之后,这些插件的代码也在移动版本中显示出来,这样会明显影响移动设备上的显示效果,而且会花费比较多的流量。   下面以实际经历介绍如何修改 WordPress 插件实现与 WordPress Mobile Pack 的完美配合,以社交评论插件 友言 为例。   友言是一款很适合当前社交应用的 WordPress 评论插件,访问博客的用户可以使用社交网站用户连接并进行评论,而且可以和 WordPress 本身的评论进行同步,官方网站:   http://www.uyan.cc/   同时安装了 友言 和 WordPress Mobile Pack 插件,先看看在桌面浏览器上的文章显示效果:     这种效果在桌面浏览器上是比较好的,但在移动浏览器是有点不能接受的,过于复杂而且耗费很多流量。   WordPress Mobile Pack 会自动去除页面上的脚本等不适合移动设备显示的东西,但友言的评论框可能由于内嵌的原因,不能自动去除,而且如果直接去除的话,在移动设备中就会出现不能评论文章的问题,因此我们可以修改 友言 的插件代码,在判断 WordPress Mobile Pack 插件已经加载并且当前使用的移动版本的 WordPress 时就自动不加载 友言 的评论框,转而使用 WordPress 标准的评论框(可以同步到 友言 评论)。   简单查看 友言 和 WordPress Mobile Pack 的源代码之后,做出以下修改就可以达到移动设备上的完美显示:   修改 WordPress 安装目录下 wp-content/plugins/youyan-social-comment-system/uyan_plugin.php 文件,将   add_filter('comments_template', 'uyan_comment');   改为:   if (!function_exists('wpmp_switcher_outcome') || wpmp_switcher_outcome() ==     WPMP_SWITCHER_DESKTOP_PAGE) {     add_filter('comments_template', 'uyan_comment'); }   通过 WordPress Mobile Pack 插件中的 wpmp_switcher_outcome 函数判断当前使用的移动版本还是桌面版本。   更改之后,需要禁用并重新启用 WordPress Mobile Pack 插件才能起作用,然后在移动设备浏览器中查看,下面是在我的 android 手机上的效果,非常清爽,而且用的流量也很少:     如果还有其它的 WordPress 也可以采取类似的方法在需要显示的地方进行修改,已经测试过 多说 插件通过这种方法修改也可以。   PS: 1、友言 插件相对于 多说 等其它社交评论插件来说,对服务器的要求要低一些,但如果 PHP 的 cURL 等功能如果未启用,可能会出现一些错误;   2、WordPress Mobile Pack 的默认配置中启用了移动图像裁剪,在 PHP 不支持 GD 等库的情况下,会出现错误,造成移动设备上图片显示不了,如果遇到这种情况,可以关闭 WordPress Mobile Pack 的图像裁剪功能;   3、Android、iPhone等智能机设备上如果需要对 WordPress 站点进行管理,可以安装 WordPress for Android 等软件,通过这些 App 管理效果更好。