metaWeblog同步博客遇到的问题怎么解决

metaWeblog同步博客遇到的问题怎么解决

本篇内容介绍了“metaWeblog同步博客遇到的问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

技术上使用metaWeblog就可以实现上述目的,选用python的xmlrpclib可以方便的进行xmlrpc操作。做一个控制台的小程序足够了我使用了。

metaWeblog同步博客遇到的问题怎么解决

然后开始技术实验,发现:

  1. wordpress支持metaWeblog很好,可以实现所有的功能。从wordpress可以通过metaWeblog.getRecentPosts函数得到所有的文章。

  2. cnblogs也支持metaWeblog,也支持的很好。cnblogs也支持我的语法高亮。但遗憾的是:第一:metaWeblog.getRecentPosts函数最多能够返回100个文章。而我的cnblogs目前有230篇文章,很显然,cnblogs限制了文章数量;第二:metaWeblog.newPost函数即便Post结构中有dateCreated,但cnblogs的主界面中依然按照当前时间计算,造成文章时间对不上号,顺序混乱。

  3. csdn就是个垃圾,metaWeblog表面上支持,暗地里出问题。metaWeblog.getRecentPosts,metaWeblog.editPost都无法用,提示User not exist。仅有metaWeblog.newPost可以用,但csdn的blog的语法高亮无法用,页面很难看。

所以,想实现我的目的通过metaWeblog看来是没希望了。除非cnblogs调整文章数量限制,csdn希望从垃圾变成战斗机了。

附我写的一个测试代码,不完善,仅作为参考:

importxmlrpclibclassMetablog:def__init__(self,url,username,password):self.username=usernameself.password=passwordself.url=urlself.server=xmlrpclib.ServerProxy(url)self.posts=NonedefgetAllPosts(self):print"Gettingallpostsfrom"+self.urlself.posts=self.server.metaWeblog.getRecentPosts('',self.username,self.password,9999999)print"found"+str(len(self.posts))+"posts"returnself.posts;defgetAllPostTitle(self):ifself.posts==None:self.getAllPosts()ret=dict()forpostinself.posts:ret[post["postid"]]=post["title"]returnretdefgetPost(self,id):forpostinself.posts:ifpost["postid"]==id:returnpostreturnNonedefnewPost(self,post):self.server.metaWeblog.newPost('',self.username,self.password,post,True)defeditPost(self,postid,post):self.server.metaWeblog.editPost(postid,self.username,self.password,post,True)defdelPost(self,postid):self.server.metaWeblog.deletePost('',postid,self.username,self.password,True)defsyncBlog(b1,b2):b1Titles=b1.getAllPostTitle()b2Titles=b2.getAllPostTitle()forkey1,value1inb1Titles.iteritems():print"Blog1title:"+value1forkey2,value2inb2Titles.iteritems():print"tBlog2title:"+value2ifvalue1==value2:print"Syncing,blog2postid="+key2b2.editPost(keys2,b1.getPost(key1))breakprint"Blog2hasnoarticleequaltotitle:"+value1print"Addnew"b2.newPost(b1.getPost(key1))print"Donesync"wpBlog=Metablog("主站地址","用户名","密码")cnBlog=Metablog("从站地址","用户名","密码")syncBlog(wpBlog,cnBlog)

“metaWeblog同步博客遇到的问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

发布于 2022-01-05 23:14:35
收藏
分享
海报
0 条评论
38
上一篇:Unity项目中如何实现资源管理 下一篇:失信人员何时解除(失信人员多久自动解除)
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码