最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

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

crifan 3698浏览 0评论

此文目的

此文目的是解释,如何扩展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简介和用法

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (4)

  1. Hi, BlogRenren.py 已经不能正常工作了,我发现beautifulsoup 3的bug很多,即使使用最新的版本也不能正常的parse 人人网的页面了。 使用beautifulsoup 4 和 lxml parser可以正常parse。 所以建议整个项目都迁移到beautifulsoup 4。 当然使用BS4 很多东西都要相应更新。 PS, 能否把项目托管到github? 使用起来更方便一些,而且我也可以更方便的贡献代码。
    Wei Qiu11年前 (2013-04-21)回复
    • 1.如果有bug,我会抽空修复的。 2.最近的话,没打算把bs3换成bs4,因为涉及工作量太大,没这个必要。 如果是bs3的bug引起的错误,那么暂时通过手动修复的方式使其继续能工作再说。 3.真心谢谢你的好意,但暂时不打算换到github上。一是我不熟悉,二是涉及的工作量太大,暂时和以后估计也都没这个时间折腾这个。 还是继续在google code上用吧,我觉得也挺好。此处,如果你想要共享代码,也不耽误你贡献的啊。
      crifan11年前 (2013-04-22)回复
      • 因为我是基于bs4修改的,我也不太清楚bs3为什么不能parse我的校内页面。暂时就不贡献了:) 不管怎么样,谢谢你写的这个工具!Great work!
        Wei Qiu11年前 (2013-04-23)回复
73 queries in 0.145 seconds, using 21.87MB memory