我从 2009 年就想写一个程序,把我的 Twitter 记录生成为静态的网页,放在我的服务器上,可以让墙内的人浏览。这样,在国内的父母也可以像 Twitter 被封锁前那样通过我的 Twitter 来了解我的生活情况。
当时我完成了一个小程序,但仅仅是做实验用的,有相当多的小问题。当时用的是 twitter4r 库,很多东西都不大成熟,用它写程序挺麻烦的。当时也遇到了各种问题,都在上面的文章中描述过。后来的代码总结在这篇文章里。
最近我看了一些关于 Rails 的文档,写了一些程序,受到了一些启发,于是觉得可以重新写一写这个程序了。现在很多东西也变了,有了 twitter 库,获得记录的方法也更方便了。我如今也不再执着于把所有的 tweets 都保存下来了。另外,我对于数据库方面的了解更多,所以没有干巴巴的用 sqlite 接口来写 SQL,而是用了 Sequel 库,在本地用 Sqlite 3 调试,在服务器上就用 MySQL。结果程序很快就出来了,在纸上做设计,把要做的步骤考虑清楚了之后,很容易的就完成了代码。当中遇到的困难之一是对 Ruby 的不熟悉,很多东西我都需要查找例子,这是练习不足的原因。困难之二就是在 Sequel 的文档搜索信息费了我很多功夫。很多东西都不能想当然,我需要摸索着试验。比如说查看一条 tweet 是不是已经在数据库中有了,只要找找有没有相同的 id 就可以了,这个操作就让我费了很长时间来试验才知道正确的用法。
我过去从来没有写过 MySQL 程序的经验,因此在服务器方面也遇到了问题。首先是 MySQL 本身的启动问题,这个放在下一篇文章中专门谈,其次是安装 mysql 的 gem 时的问题,系统在哦年时提示:
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
只是说缺少依赖,但并没有说具体少什么。后来我找到这篇文章,知道了原因,安装了 libmysql-ruby 和 libmysqlclient-dev 库之后就没问题了。
最后是让程序自动运行,我用 crontab 完成。但我平时很少用到这个,因此从网上找了配置的写法,让它每 12 小时运行一次,但现在还不知道我的配置写的是否正确,等到了凌晨的时候看看运行情况。
最后,程序代码在我的 Github 中:link。生成的页面在这里这里这里,我没怎么做美化,毕竟我不擅长这个,等有时间再看看。
《生成 Twitter 静态网页》有3条评论