痛苦的一周

同志们啊,我终于回来跟大家水来了T_T不要怪我无情的写了那么多非水文啊,今天一篇清水文跟大家补补啊……
话说今天真的是很杯具很杯具啊……早上一节体育课,我们学的网球么,室外的场子,本来这几天狂风暴雨的下啊,根本就没天晴的时候,我两天前就在那里暗自庆幸,说这个星期的体育课又不用上了,结果老天杯具的早上就给停雨了。虽然停雨了,但是我们侥幸以为地不会干的……结果北风那个吹啊……小雨那个停啊……场地那个干啊……杯具的拿着拍子去上课去了...下午我们院篮球赛半决赛,我们专业打地信专业,小赢5分,进入总决赛……重点不是这个,重点是比赛一完,还不等我们离开球场,就又开始下雨了……T_T艹蛋的老天爷,专门跟我作对!
恩,说道这个地信,咱要给大家讲个冷笑话了,应该是两个星期前的了……在推上看到过的孩子莫打我啊……
我们学院有个地球信息系统专业,简称地信,然后我们院打院篮球赛,我同学就跟我聊着。“我们进四强了诶!”我说:“是呀,昨天知道的,下一个是跟电信打是吧?”然后我同学就很无奈的跟我说是地信……不是电信……我囧啊囧!
然后上个礼拜的星期六,把我们给累的啊……本来一个好好的周末,全被实验课给占了,上午MapGiS的实验,老师估计上起激情来了,居然跟我们说下午7-8节接着上,说是补原来落下的课。然后下午1-2节的古生物实验,结果是晚上更加杯具的矿相实验四连上,搞得我们是身心俱疲啊……星期天早上我是睡到11点才起来……下午杯具的还有选修课。结果浑浑噩噩的一个周末就这样完了。
然后这个周三要交水文作业,水文老师那个变态啊……一个专业选修课,至于出那么难的题目给我们么,诚心想整死我们啊!而且这门课要考试,据说挂科率极高,不亚于高数和英语!我淡定不起来了。然后这周有概率论的期中考试,我都囧了,这个学期居然搞个期中考试给我们,郁闷啊!概率老师讲课又快,但是进度又不快,因为要讲好多废话,主要是数学建模的事情~唉~
最后似乎马上又要体能测试了,我对我的1000米实在是没有信心啊,这个学期还没去跑过呢……= =
PS:我怎么感觉这篇水文有点交代遗言的感觉?那么多的然后……==

终极同步大法

随着微博的热门,已经有很多的微博程序纷纷出现了,而我们该如何挑选这些微博程序呢?首先我们要考虑的是选择单用户还是多用户的。但是如果像我这种注重功能的人,可能第一个想到的是它的同步功能如何?今天就介绍一种方法,为你的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页面,搜索"登录"二字,将如下代码复制替换掉该行即可:
    <input type="submit" value="登 录" class="login_submit" />
    恩,这样大家就可以完成公开注册的方法了,其实就是将注册的那些文件搬到了程序判定外面来了而已。也就是说,不能填写照片墙,不能填写音乐墙等资料,包括RSS导入功能也不能使用,因为这些都是管理员才能有的。 PS:最后再说一声,谁知道比较好用的代码高亮插件?现在用的这个太挫了……
    -->

    大家都知道,现在的PageCookery的注册功能还很闭塞,只能够管理员通过后台添加用户,而不能够让用户自主添加,今天我给出更改方法,能够让其他人自己添加用户! 先我放上一个预览地址吧,我就拿我的似水流年开刀了,呵呵,预览地址:http://lizheming.cn/?act=login 首先我们要在template文件夹下新建一个模板,重命名为"register.html"/*名字可随意*/然后将如下内容添加到里面去:
    {template header}
    
    
    用户名: <input class="input_message w150" name="username" type="text" /> 密码: <input class="input_message w150" name="password" type="password" /> <input class="image_button_submit" type="submit" value="新增用户" />
    {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页面,搜索"登录"二字,将如下代码复制替换掉该行即可:
    <input type="submit" value="登 录" class="login_submit" />
    恩,这样大家就可以完成公开注册的方法了,其实就是将注册的那些文件搬到了程序判定外面来了而已。也就是说,不能填写照片墙,不能填写音乐墙等资料,包括RSS导入功能也不能使用,因为这些都是管理员才能有的。 PS:最后再说一声,谁知道比较好用的代码高亮插件?现在用的这个太挫了……