果然还是要php化

heliohost又挂了,尽管对于免费空间我们不能够期待太多,不过放在上面的ac娘工具变得不稳定,而且域名又不美观,促使我考虑为它寻找绑定一个免费的二级域名,外加一个稳定点的免费空间。

在寻找的过程中,我惊讶地发现,原来heliohost确实很强大,支持python+mysqldb,这种程度的配置原来不是每个free host都支持的!我找到了vps-hosting.ca,打算搬过去的时候才发现,python cgi中居然没有MySQLdb模块。

于是我想,能运行当前的ac娘工具的环境真是少之又少,heliohost是一个很不错的新技术实验平台(估计因此而经常当掉)。无论如何,为了让它到处可用,继续我的CI化ac娘工具的计划。

推上有人介绍一个网站,可以加密字符串:http://fliptitle.com/

ac娘工具:数据库从sqlite移到mysql

想来想去,与其先把sqlite数据库搞下来、再找个奇怪的转换工具转为mysql再弄上去,还不如直接在远程服务器上弄,注意备份就是了。

于是赶紧写了个python去搞,参考了一些资料很快就写好了。由于先前很少接触mysql,所以很多设置例如引擎啊、字符编码啊都没设置好,后来在出现乱码、又发现不能按照事务方式执行的时候,才知道应该选InnoDB引擎,然后所有地方都设置成utf8。

mysql比起sqlite真的是好太多了:习惯了用access的我,一直都以为mysql啊mssql啊这种不能作为文件随便挪的数据库非常不方便,可是现在才发现,有phpmyadmin这种强大的存在的话,mysql比要写python脚本才能好好地访问、还要设计现实界面不然就只是显示出一堆难懂的数组的sqlite好用多了;而且在有cpanel的情况下,备份也比sqlite方便。最重要的是,sqlite还分2和3,而python用的是3、php的CI用的是2,移植相当麻烦,哎。

另外,我又开始犹豫到底要不要做php的ac娘工具了:用python做出来的程序感觉快很多,特别是换了mysql后更快了,这也许和python脚本的执行效率有关,毕竟py要755权限才能执行,而php只要644。作为别人的网站的辅助工具,其实能用就行吧。

移植的时候对数据结构进行了重新设计,充分利用了mysql的特殊数据类型:分类字段就用了enum代替smallint,date和time也用了标准的时间和日期格式,所以原来的python程序除了改变数据库接口和表名之外,还有很多地方要修改,总体来说整个程序又优化了一点,而且还有优化的余地;此外,对自动抓取数据的cron也进行了修改,通过sys.path.append的方式来实现自建库的复用(原先是将几个库的代码全部拷到同一个文件中用:这已经超越了面向过程的编程,达到了汇编语言式的编程了。豆知识:cron,Linux中的时钟守护作业,其中一个特点是从根目录开始执行程序,所以不能够简单地import程序同目录下的其它库)。

折腾到这个程度,相当有成就感。