如何扩展BlogsToWordPress以支持更多类型的博客搬家

此文目的

此文目的是解释,如何扩展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/…)
    • thirdparty:此处所用到的,第三方的一些库函数。

 

如何扩展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中的那些公共的函数即可。

其中具体每个函数如何实现,则可以参考上述已列出的,已有的各个博客的实现。

 

现在,我已经专门整理出来了一个

BlogXXX.py

用于大家参考。该文件很明显,无法直接使用。

是需要你拿到手后,从头到尾,一点点实现其中对应的函数,才能最终实现,支持博客搬家的。

 

如何提交更新和发布新版本

在你本地调试完毕,确定已经实现了新增功能之后。

再去:

1.发邮件给我:

admin (at) crifan . com

然后我去把你加到BlogsToWordpress再google code中的开发者,参与者。

这样你就有机会提交和更新代码了。

2.通过svn提交你所改动的代码。

3.发布新的版本。

 

其中,对于google code的一些用法和解释,不了解的可参考:

【整理】google code简介和用法

4 Thoughts on “如何扩展BlogsToWordPress以支持更多类型的博客搬家

  1. Pingback: blogs-to-wordpress,博客搬家到WordPress | Dimmye's Blog

  2. Hi,

    BlogRenren.py 已经不能正常工作了,我发现beautifulsoup 3的bug很多,即使使用最新的版本也不能正常的parse 人人网的页面了。

    使用beautifulsoup 4 和 lxml parser可以正常parse。

    所以建议整个项目都迁移到beautifulsoup 4。 当然使用BS4 很多东西都要相应更新。

    PS, 能否把项目托管到github? 使用起来更方便一些,而且我也可以更方便的贡献代码。

    • 1.如果有bug,我会抽空修复的。
      2.最近的话,没打算把bs3换成bs4,因为涉及工作量太大,没这个必要。
      如果是bs3的bug引起的错误,那么暂时通过手动修复的方式使其继续能工作再说。
      3.真心谢谢你的好意,但暂时不打算换到github上。一是我不熟悉,二是涉及的工作量太大,暂时和以后估计也都没这个时间折腾这个。
      还是继续在google code上用吧,我觉得也挺好。此处,如果你想要共享代码,也不耽误你贡献的啊。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>