终极同步大法

随着微博的热门,已经有很多的微博程序纷纷出现了,而我们该如何挑选这些微博程序呢?首先我们要考虑的是选择单用户还是多用户的。但是如果像我这种注重功能的人,可能第一个想到的是它的同步功能如何?今天就介绍一种方法,为你的PageCookery的同步功能做拓展。

这里主要是利用了月光博客制作的GAE同步程序制作的一个针对PageCookery的简易教程。总所周知,Twitter现如今是微博界的老大,虽然被G.F.W了,但是仍然不能阻挡它的光芒!我们可以利用Twitter这个跳板,将其他地方的消息同步到Twitter中,同时也可以利用Twitter的多方式发布消息将自己的消息发布到Twitter中,然后将Twitter的消息同步到别的地方去!而月光的这个GAE程序就能够实现将Twitter的信息分发到各大微博网站去,包括新浪微博/嘀咕/网易微博/9911/51follow等等微博门户。而PageCookery微博程序又提供了对嘀咕的双向同步,而且也提供了RSS导入这么一个极佳的功能。

有人可能会说了,为什么我不直接用Twitter的RSS导入到PageCookery来呢?这是因为直接导入RSS的话,会有很多的RSS垃圾产生,比如你@别人的消息,以及RT别人的消息也都会同步过来,这个还算是小事,重要的是Twitter的RSS格式包括了用户名,所以每次导入Twitter的消息时都会带上"username:"这样的前缀,让人看起来甚是不爽,所以我们要对RSS进行过滤!而月光博客的GAE同步程序也正是做到了这一点。在此,要感谢月光博客为我们带来了这么好的一个工具。而且,利用GAE的高效工作性,我们基本能够实时的同步我们的消息到PageCookery中(我说的是几乎)……

好了,优点讲完了就改说怎么捣鼓了,首先呢,你要有申请一个GAE,如果有,则可跳过此不,如果没有,请参照如何申请GAE

申请好GAE并成功建立一个项目之后,我们要做的就是将月光博客的GAE程序给下载下来,下载方法,使用TortoiseSVN检出这个SVN地址,然后,编辑 app.yaml,修改为自己的appspot应用名,接着,修改twitter.py文件的最后一行,将自己的Twitter用户名填入,修改从 ret = send_sina_msgs("username","password",text) 语句开始的 username 和 password ,将相应微博客的用户名和密码分别填入,不需要同步的服务请使用#号注释掉,cron.yaml文件里是计划任务设置。至于如何使用TortoiseSVN下载,请参考:教你如何用SVN下载源码

千万不要忘记,记得修改最后一样你要同步的Twitter帐号!编辑保存后,我们就可以把程序上传到GAE主机上去了,至于如何上传么,请参考:如何上传文件到GAE image

好了,前半部分工作就做好了,下面我们就要做另外一部分工作了,现在假设你将Twitter上的信息同步到了嘀咕,由于PageCookery的嘀咕同步有个限制,就是嘀咕没有认证的API(也就是嘀咕页面消息显示是来自API)的消息PageCookery是不会同步过来的,所以我们只能通过RSS导入的法子,获取嘀咕微博的RSS地址,然后导入过来就可以了。(不能使用RSS导入功能的童鞋表示灰常抱歉了。)有人说了,如果我填写的是新浪微博的帐号怎么办?恩,我们知道新浪微博还没有开放RSS功能,不过这个也不要紧,http://imnerd.org/sinarss.php+"你的ID号"就是你的RSS地址了,这里要再次感谢月光博客提供的程序,有需要的也可以去他博客下载哦~~

其实个人认为吧,我们应该能从月光的GAE程序中直接获取到RSS地址的,那么就可以直接导入进PageCookery了,而不用使用其他微博做跳板了,只是python实在不是很了解,就没心思看他的代码了,希望有心人能够发现啊,呵呵~~最后就讲讲这个同步的时间问题,从Twitter同步到嘀咕等微博网站的时间是可以设置的,最短可以是1分钟(修改地方在cron.yaml文件最后一行的every * minutes,将*换成同步间隔时间即可),基本上可以做到实时同步,然后是嘀咕等RSS同步到PageCookery,经过我的初步观察,最迟15min~20min应该会同步过来的,如果没有同步过来的话我就告诉你一句:反正迟早的事,何必这么焦急呢,呵呵!

最后要提醒大家一句,请注意不要开启对某个微博的双向同步,一面发生消息同步死循环的状况……到时候估计删消息会删的你手软的!哈哈!

开放你的PageCookery注册功能

class="selected" >网 志
  • 注 册
  • 叽 歪嘀 咕
  • class="selected">音乐墙
  • class="selected">照片墙
  • 代码依旧不解释了,大家仔细看看就知道增加了什么了。然后是在登录页面加入注册链接,打开template/login.html页面,搜索"登录"二字,将如下代码复制替换掉该行即可:
    
    
    恩,这样大家就可以完成公开注册的方法了,其实就是将注册的那些文件搬到了程序判定外面来了而已。也就是说,不能填写照片墙,不能填写音乐墙等资料,包括RSS导入功能也不能使用,因为这些都是管理员才能有的。

    PS:最后再说一声,谁知道比较好用的代码高亮插件?现在用的这个太挫了……

    -->

    大家都知道,现在的PageCookery的注册功能还很闭塞,只能够管理员通过后台添加用户,而不能够让用户自主添加,今天我给出更改方法,能够让其他人自己添加用户! 先我放上一个预览地址吧,我就拿我的似水流年开刀了,呵呵,预览地址:http://lizheming.cn/?act=login 首先我们要在template文件夹下新建一个模板,重命名为"register.html"/*名字可随意*/然后将如下内容添加到里面去:
    {template header}
    

    用户名: 密码:

    {template footer}

    代码我就不讲解了,其实就是拷贝了下users.html里面的部分代码而已,然后我们要打开根目录的index.php文件,在大概倒数第七行的位置,也就是在最后面一个if语句前的一个结束符号"}"之前/*这话讲的我自己都晕了*/加上如下代码:
    case 'register':
    if ($_GET['do'] == 'add' AND $_POST['username'] AND $_POST['password'])
    {
    $check = $SQL->QueryRowsArray("SELECT id FROM user WHERE username = '" . Format::Safe($_POST['username'], true) . "'");
    if ($check['id'])
    {
    Helper::PrintJavaScript('alert(\'已经存在名为 ' . Format::Safe($_POST['username'], true) . ' 的用户.\'); window.location = \'' . $_SERVER['HTTP_REFERER'] . '\'');
    }
    $SQL->Insert('user', array('username', 'password'), array(Format::Safe($_POST['username'], true), Format::Safe(md5($_POST['password']), true)));
    Helper::PrintJavaScript('alert(\'很高兴的通知您,你在 似水流年 上成功注册了' . Format::Safe($_POST['username'], true) . ' 此用户.\'); window.location = \'' . $_SERVER['HTTP_REFERER'] . '\'');
    exit;
    }
    $title = SITE_NAME . ' - 用户';
    $template=& new Template('register',NULL,'register');
    break;
    
    保存之后,你的PageCookery地址+"?act=register"就是公共注册地址了,那么你需要的就是在登录页面添加个链接到这个页面的链接就行了,当然,你也可以直接在最上方的管理旁边添加,这里我就都给出相应的代码吧,先是在管理旁边添加注册链接。先打开template/header.html文件,然后搜索"管理"二字,将如下代码复制替换掉那一行的代码:
     
  • class="selected" >网 志
  • 注 册
  • 叽 歪嘀 咕
  • class="selected">音乐墙
  • class="selected">照片墙
  • 代码依旧不解释了,大家仔细看看就知道增加了什么了。然后是在登录页面加入注册链接,打开template/login.html页面,搜索"登录"二字,将如下代码复制替换掉该行即可:
    
    
    恩,这样大家就可以完成公开注册的方法了,其实就是将注册的那些文件搬到了程序判定外面来了而已。也就是说,不能填写照片墙,不能填写音乐墙等资料,包括RSS导入功能也不能使用,因为这些都是管理员才能有的。

    PS:最后再说一声,谁知道比较好用的代码高亮插件?现在用的这个太挫了……

    拷贝修改了两个模板

    最近又有变懒的趋势了啊,博客又有好几天没有更新了,额/过年没啥事好说的,无非是走亲访友,吃吃喝喝的,不太好玩……/主要还是听不懂这里的地方话,他们讲话无异于对我唱摇篮曲/

    话说最近又百无聊赖的操起DIY的折腾精神修改了两个模板,一个是我的班级网站的,一个是PageCookery的。班级网站的是以WP主题库的某款主题为原型,添加了以酷狗叮咚网站的导航栏为原型的菜单栏,然后增加了两个大图标以及几个小图标改版过来而成……原版的主题很简单,就一个头部图像,这个主题貌似强大之处在于在IE下也能显示圆角/貌似利用了图片/,仅此而已,本人也奉行简单原则……爽乎乎……话说要想在WP中找到一款合适的CMS主题还真不容易额……

    PageCookery的这个是以凳子童鞋的饭推 / 姑且让我这么称呼这个网站 / 中的某个主题为原型,主要是取材了它的气泡显示消息的形式。本来也想搞成两栏型/entry + sidebar/的,但是人太懒了,不愿意搞了,这个样子已经达到了我的最初目标了。话说我还真是天天为抵制IE大行动做贡献呢……这次的PageCookery很华丽丽的在IE下显示的一塌糊涂/IE8已经测试,IE6未测试,不过我想也好不到哪里去吧,说到IE6,上面那个WP主题似乎在IE6下也是显示一团糟啊,不知道是不是我修改了的原因/,这个我是早就预料到的,不过没预料到的是Safari的显示也有些问题,囧……另外,搜狗2.0下也有问题/搜狗2.0不是Webkit内核的么?!/然后是好消息,在Firefox, Chrome, Opera, 傲游3.0下显示都没有问题,灰常正常/完美就没有了,本身模板就不完美……/鉴于主题毛病重重,我就不发出来了,如果真的想要的童鞋可以留言给我~

    好了,其它的不说了,上图:

    这个是班级网站的,点击浏览大图哦!里面的内容我稍加修改了一下,大致的框架是这样的啦!

    image
    这个是PageCookery的,背景本来不想用Twitter的,无奈真的找不到什么好的素材了,咳咳……要围观的话图片上面有地址的,我这里就不放出来了啊~
    image