此文目的
此文目的是解释,如何扩展BlogsToWordpress,使其支持更多的类型的博客搬家。
所以此文针对的读者是:
有一定Python背景知识,且有意愿,扩展BlogsToWordpress,让其支持更多类型的博客的搬家。
BlogsToWordpress源码的架构
整体架构的简单解释:
- BlogsToWordpress.py:主文件,实现了公共的框架,支持不同博客类型,所通用的,关于初始化,提取博客帖子的各种内容等方面的框架。具体细节的底层实现,都是依赖于后续要介绍到的BlogXXX.py去实现。比如提取对应的帖子的标题,发布时间等等。
- libs:所依赖的库,主要分,我自己的crifan的,和别人的第三方的thirdparty
- crifan:我自己的库,包括通用的Python库函数crifanLib.py,以及此处和搬家相关的,各个不同类型博客的底层实现BlogXXX.py
- blogModules:包含了各个博客的,实现底层的,搬家细节功能方面的内容。
- BlogXXX.py:XXX为对应博客类型所写,比如Baidu百度,BlogBus博客大巴,Netease网易等等。其中每个文件中,都有对应的底层函数的实现。
- crifanLib.py:我自己的,整理出来的,通用的Python方面的函数。更多详情参见:crifanLib – crifan’s Library(C#/Python/PHP/C/…)
- blogModules:包含了各个博客的,实现底层的,搬家细节功能方面的内容。
- thirdparty:此处所用到的,第三方的一些库函数。
- BeautifulSoup.py:用于方便解析HTML代码,提取所需内容。更多详情可参考:【总结】Python的第三方库BeautifulSoup的使用心得
- chardet:用于检测字符的编码类型。此处之所以放到这里,是为了方便用户,省却了用户再麻烦手动安装此库;
- crifan:我自己的库,包括通用的Python库函数crifanLib.py,以及此处和搬家相关的,各个不同类型博客的底层实现BlogXXX.py
如何扩展BlogsToWordpress以支持更多类型的博客
目前,BlogsToWordpress已经早就开发了源代码,此处,已google code上面的源代码为例,来解释如何扩展BlogsToWordpress。
1.在主文件中添加新的类型的博客
在主文件BlogsToWordpress.py中,在合适的位置,添加类似如下的代码:
#Change Here If Add New Blog Provider Support import BlogNewBlogProvider; gConst = { ...... #Change Here If Add New Blog Provider Support # for different blog provider 'blogs' : { ...... 'BlogNewBlogProvider' : { 'blogModule' : BlogNewBlogProvider, 'mandatoryIncStr' : ".newdomain.com", 'descStr' : "New Blog Provoder Blog", }, } , };
2.去libs\crifan\blogModules中新建一个BlogNewBlogProvider.py
3.参考之前已有的博客,实现自己新增博客中的各个公共函数
目前已包含:
BlogBaidu.py
BlogBlogbus.py
BlogCsdn.py
BlogDiandian.py
BlogNetease.py
BlogQQ.py
BlogRenren.py
BlogSina.py
BlogSohu.py
BlogTianya.py
自己去实现新的BlogNewBlogProvider.py中的那些公共的函数即可。
其中具体每个函数如何实现,则可以参考上述已列出的,已有的各个博客的实现。
现在,我已经专门整理出来了一个
用于大家参考。该文件很明显,无法直接使用。
是需要你拿到手后,从头到尾,一点点实现其中对应的函数,才能最终实现,支持博客搬家的。
如何提交更新和发布新版本
在你本地调试完毕,确定已经实现了新增功能之后。
再去:
1.发邮件给我:
admin (at) crifan . com
然后我去把你加到BlogsToWordpress再google code中的开发者,参与者。
这样你就有机会提交和更新代码了。
2.通过svn提交你所改动的代码。
3.发布新的版本。
其中,对于google code的一些用法和解释,不了解的可参考: