dabr 架设与修改
我的 Nokia 3100 已经用了大约有四五年了,最近很有冲动要买个 iPhone,不过某人却给我买了个 E71,粉碎了我的梦想。在 Nokia 3100 退休之际,看一下它的丰功伟绩:发出的信息 10243,收到的信息 11431.
其实 E71 我也比较满意,不买 iPhone 也省下一笔钱。先配置了一下 Share Online,让它可以把照片上传到 flickr,然后就开始整 twitter. 先试了一下 Gravity,界面挺不错的,就是不是免费软件,最关键的是听说流量耗费比较大,我试用了一会确实如此,实在想不到为什么它会用那么多。
我一直在想自己做一个 twitter 客户端,只需要能够发布和查看与自己相关的信息(我发布的或者提到我的),几个月前曾经用 Adobe AIR 尝试过,后来因为时间问题搁浅了,也许以后有空了还会拣起来。我关心的信息就这么多,但是 Gravity 不管这些,它会定时更新默认的 timeline,一方面耗费流量,另一方面信息过载让我比较头疼。
dabr 是个非常好的选择,后来我使用也非常喜欢,虽然它只是个 mobile web interface. 第一,它可以让我访问到 twitter; 第二,只有在你操作的情况下它才会刷新页面,产生数据流量,且流量相当小; 第三,它是开源软件,可以非常方便地修改来适应自己的需求。其实它的安装就是比普通的 PHP 程序多了个 rewrite rule,很简单。不过我的配置比较特殊,也作了些修改,所以记下来,就当是个另类的 dabr 教程。
我的服务器上有两个 web server,lighttpd 运行着包括 qingbo.net 在内的一些 PHP 或者 python 程序,监听 80 端口,apache 监听 443 端口,是我的私人 svn repository 和 trac 的前端,只能 https 访问。由于还没有为 apache 配置 PHP 环境,所以我仍然把 dabr 的程序分配给 lighttpd 运行,但是给它单独开了一个新端口(比如 3000),且只能本机访问(请求目标地址为 127.0.0.1)。又因为 lighttpd 没有配置 ssl,就用 apache 做个 ProxyPass,指向 127.0.0.1:3000,这样外部还是只能通过 https 来访问 dabr,避免某些安全隐患。
dabr 的 SetupGuide 没有给 lighttpd 的 rewrite 写法,其实基本上跟 Apache 是一样的。我的规则如下:
以下是代码片段: url.rewrite-once = ( "^/(.*)$" => "/index.php?q=$1" ) |
之后是 dabr 程序的调整:
限制 twitter 用户
默认情况下架设一个 dabr 程序是任何人可以访问的,如果知道的人太多,可能给服务器造成比较大的负担。
避免这个情况的方法在 dabr 的 SetupGuide 里就介绍了,把一段代码放在 config.php 里就可以。
去除不需要的菜单项
dabr 默认在页面顶部和底部都有一长串的链接,但是很多可能是我们不需要的。它们是使用函数 menu_register 添加的,在源代码目录执行命令 "grep -r menu_register *" (Linux 系统) 即可找到所有调用了该函数的文件,然后进去找到你不想要的菜单项,注释掉即可。
例如 index.php 一开始就调用了这个函数,"about" 一般来说没用,把它注释了。需要注意,common/twitter.php 里调用 menu_register 时的参数数组有非常多的条目,其中许多包含一行 \'hidden\' => true,,这种并不是显示出来的菜单项。
修改每页展示的 tweets 条数
我修改了 twitter_user_page, twitter_home_page, twitter_replies_page 几个函数,给它们定义的 $request 变量 url 中增加了 count=5 这个参数
强制 text only 模式
主要是为减少不必要流量,另外我屏幕也比较小。打开 common/settings.php, 改一下 setting_fetch 函数,当获取 \'browser\' 配置值时,总是返回 \'text\':
以下是代码片段: function setting_fetch($setting, $default = NULL) { $settings = (array) unserialize(base64_decode($_COOKIE[’settings’])); if (array_key_exists($setting, $settings)) { return $settings[$setting]; } else { if ($setting == ’browser’) { return ’text’; } return $default; } } |
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:qingbo.blog 来源: qingbo.blog
- 标签: dabr
- 发布时间:2010-03-21 22:40:12
- [71] Twitter/微博客的学习摘要
- [68] IOS安全–浅谈关于IOS加固的几种方法
- [66] 如何拿下简短的域名
- [65] android 开发入门
- [64] find命令的一点注意事项
- [63] Go Reflect 性能
- [61] 流程管理与用户研究
- [61] Oracle MTS模式下 进程地址与会话信
- [59] 图书馆的世界纪录
- [58] 读书笔记-壹百度:百度十年千倍的29条法则