同步LiveSpaces的评论到WordPress

以前做了个同步LiveSpaces的评论到WordPress的插件(wp-livesync-comments),没想到MS把评论的Layout给改了,结果抓不到正确的数据,导致WordPress里出现很多没有内容的匿名评论。今天稍微花点时间,修改了一下插件,让它可以正常工作了。

以前的评论格式:
<item>
<title>Thomas Tsui</title>
<link>http://xutao1976.spaces.live.com/Blog/cns!9A12B4DCE20412E9!437.entry</link>
<description>原来我的游戏机是这样买的。谢谢老爸老妈还记得这么清楚。&lt;img src=&quot;http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-7344609181510135063&amp;page=RSS%3a+Thomas+Tsui&amp;referrer=&quot; width=&quot;1px&quot; height=&quot;1px&quot; border=&quot;0&quot; alt=&quot;&quot;&gt;&lt;img style=&quot;position:absolute&quot; alt=&quot;&quot; width=&quot;0px&quot; height=&quot;0px&quot; src=&quot;http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=xutao1976.spaces.live.com&amp;amp;GT1=xutao1976&quot;&gt;</description>
<guid isPermaLink=”false”>cns!9A12B4DCE20412E9!440</guid>
<pubDate>Tue, 20 Jan 2009 23:22:10 GMT</pubDate>
<msn:type>blogcomments</msn:type>
<live:type>blogcomments</live:type>
<live:typelabel>Blog Comments</live:typelabel>
<cf:itemRSS>http://xutao1976.spaces.live.com/blog/cns!9A12B4DCE20412E9!437/comments/feed.rss</cf:itemRSS>
<live:authorName>Thomas Tsui</live:authorName>
<live:authorCid>-7344609181510135063</live:authorCid>
<live:commentBody>原来我的游戏机是这样买的。谢谢老爸老妈还记得这么清楚。</live:commentBody>
</item>

现在的评论格式:
<item>
<guid isPermaLink=”false”>9A12B4DCE20412E9!440</guid>
<title>Thomas Tsui</title>
<description>原来我的游戏机是这样买的。谢谢老爸老妈还记得这么清楚。</description>
<pubDate>Tue, 20 Jan 2009 23:22:10 Z</pubDate>
<link>http://xutao1976.spaces.live.com/Blog/cns!9A12B4DCE20412E9!437.entry</link>
<live:type>blogcomment</live:type>
<live:typelabel>Blog Comment</live:typelabel>
<live:id>-7344609181510135063</live:id>
</item>

修改代码很简单。修复数据稍微麻烦一点。
1.在comments表里删除空评论。
DELETE FROM `wp_comments` WHERE `comment_author` = ‘ ‘ and `comment_content` = ‘ ‘;

2.在options表里删除wp_msnsync_comment_id
DELETE FROM `wp_options` WHERE `option_name` = ‘wp_msnsync_comment_id’;
这里是将所有以前同步过来的评论的ID全部删掉,但是实际的评论没有删除,所以下次同步的时候,会导致以前的评论重复。最好的方法是修改option_value里面的值,只将空评论的ID删除。不过我对MySQL不熟,不知道如何更新Key-Value Pair的项目,暂时也没时间去研究这个,以后再说了。

3.重新同步所有评论。

Comments

Twitter Tools和PHP里的时间

最近在WordPress里用了个插件Twitter Tools,主要是可以从Blog的Sidebar上发Tweet,然后按天或周为单位,把Tweet取回来自动生成Post。长篇大论的Blog越来越不爱写了,一句话的MicroBlog,想到什么说什么,纯粹的无意识流,最后还自动总结成一篇Daily(Weekly) Digest Post,看看最近自己都干了些什么,挺不错的。

在Digest Post里面,每句话最后有个#,是到Twitter的链接。我想把这个#改成Tweet发布的时间,比如15:23:45,这样,时间流看着比较清晰。Twitter里的时间是GMT标准时间,放到WordPress的MySQL DB里是datetime型,被Twitter Tools读出来后是string型(Y-m-d H:i:s),要用mktime转换成PHP的timestamp,然后加上Time Zone的时差(在WordPress的Setting的General里设置),再用date来输出成(Y-m-d H:i:s)格式,最后取出时间部分(H:i:s)。

注意计算时间用mktime不要用gmmktime,也不要用WordPress给的get_date_from_gmt。Dreamhost的server在美国,时区是GMT-8,我的Blog时区是GMT+9,get_date_from_gmt会算不清的。呵呵。

Source修改如下(twitter-tools.php的805行):
//$time_display = '#';
$time_display = '#'.substr( date( 'Y-m-d H:i:s', mktime(
substr($tweet->tw_created_at, 11, 2),
substr($tweet->tw_created_at, 14, 2),
substr($tweet->tw_created_at, 17, 2),
substr($tweet->tw_created_at, 5, 2),
substr($tweet->tw_created_at, 8, 2),
substr($tweet->tw_created_at, 0, 4)
) + get_option('gmt_offset')*3600 ), 11, 8).'#';

Comments

视频转换(MP4 to FLV)

昨天把儿子滑雪的视频上传到Blog里了,用的方法虽然不专业,文件少的时候还是挺管用的。

  1. 把MP4文件上传到YouTube
  2. 在Firefox里装上Download Helper插件,用插件从YouTube上下载视频(FLV文件)
  3. 把FLV文件上传到WordPress的Media Library里,在WordPress里使用WP-FLV插件播放

整个过程中,YouTube就是起个转换器的作用。其实YouTube的视频可以直接嵌入到Blog里,不过考虑到伟大的GFW会封锁Youtube,还是放在自己的服务器上安心一些。

今天fason提醒我,应该可以用FFmpeg转换视频。确实,在Windows上为了看电影,早就装过K-Lite Codec Pack,就是基于FFmpeg的,怎么把这个给忘了。呵呵。

查了一下,发现Dreamhost提供FFmpeg,于是直接上去试了试。开始没有用 -ar 参数,报了个错,说mp4的音频是48000HZ的立体声,FLV文件不支持,FLV只能支持44100,22050,11025这三种频率。于是用下面这个命令,转换成功。

  • ffmpeg -i test.mp4 -ar 44100 test.flv

转换好的FLV用Totem Player看看,效果还不错。其他参数没有仔细研究,至少简单的比如指定大小,连结多个文件输出到一个文件之类的好像是没有问题。以后有时间好好研究研究。

Comments

Google Friend Connect

朋友Fason建议我加上Google Friend Connect。本来以为有点复杂,想等滑雪回来再弄,结果出发的前一天晚上忍不住动手给加上了。其实挺简单,按照Google给的步骤一步步走,给Blog的根目录下上传两个文件,将生成的代码加到Blog里就OK了。

我的麻烦主要在Layout上。我用的Theme是Aeros 2.0,Sidebar是固定成180Px的,而GFC的Widget,最小的宽度为200Px,如果加上Widget两边的空白,Sidebar最少需要220Px。所以我只好找到Aeros 2.0的CSS代码,手动修改Sidebar的宽度。又因为这个Theme用了很多Round Corner,改起来越发麻烦;调了半天,总算让GFC正常的显示出来了。

更郁闷的还在后面。在家里一切正常的GFC,到了公司发现看不到了。原来公司把GFC也给封了。唉!这个鸟公司,什么都封。

Comments (3)

Windows Live Spaces同步

虽然换了Blog,但是还有好多朋友都在Live Spaces上,不更新也不行,所以找了个同步Windows Live Spaces的插件(Live Spaces Sync)。看样子应该是个台湾兄弟写的,可以把WordPress里面的文章自动同步到Windows Live Spaces。

第一天在公司上网,安装激活之后,发现Secret Word填错了,害得Live Spaces的邮件投稿功能被关闭了24小时。而且在删除文章的时候,插件还出错了(我关闭了删除的同步选项)。只好暂时无效掉这个插件。因为公司无法登录Live Spaces,看不到邮件投稿的设置,无法查错,只好作罢。

第二天把其他插件和RSS输出都搞定了,回到家想再来试试,居然发现Windows Live Spaces无法登录。呵呵,天不佑我也。等到半夜上网的时候,再去Live Spaces看看,终于可以上去了。确认了Secret Word,在Live Sync里面设置好,打开删除的同步,试了一下,果然好使,投稿和删除都没有问题。

现在看起来一切正常了。

Comments

« Previous entries Next Page » Next Page »