博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用代码将github仓库里某个issue同步到CSDN博客上
阅读量:2439 次
发布时间:2019-05-10

本文共 2918 字,大约阅读时间需要 9 分钟。

我是一个懒惰的程序员。我在github仓库里用issue的方式写了很多分享文章,想同步到CSDN上。但是我又不想一篇篇手动复制粘贴,因此想用代码来实现自动化。

例子:

这是我的一个issue:

webp

我使用下面这些nodejs代码实现从github 仓库issue到CSDN博客的拷贝:

var config = require("./mcConfig");var request = require('request');var querystring = require('querystring');function createPost(oPost) {  var url = "https://mp.csdn.net/mdeditor/saveArticle";  var oBody = {          title: oPost.title,          markdowncontent: oPost.body,          tags:"Fiori",          categories:"Fiori",          channel:"14",          type:"original",          articleedittype:"1",          content: oPost.body        };var formData = querystring.stringify(oBody);var contentLength = formData.length;var createPostOptions = {        url: url,        method: "POST",          headers: {            "content-type": "application/x-www-form-urlencoded",            "Content-Length": contentLength,            "origin" :"https://mp.csdn.net",            "referer" :"https://mp.csdn.net/mdeditor",            "User-Agent" :"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36",            "cookie": config.cookie        },        body: formData};  return new Promise(function(resolve,reject){      var requestC = request.defaults({jar: true});      console.log("Step1: create post via url: "   url );      requestC(createPostOptions,function(error,response,body){              if(error){          reject(error);       }       console.log("response: "   body);       resolve(body);      });      });}module.exports = createPost;var request = require('request');function getIssue(issueNumber) {  var url = "https://api.github.com/repos/i042416/KnowlegeRepository/issues/"   issueNumber;  var getIssueOptions = {        url: url,        method: "GET",        json:true,        headers: {            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"        }  };  return new Promise(function(resolve,reject){      var requestC = request.defaults({jar: true});      console.log("Step1: get issue detail via url: "   url );      requestC(getIssueOptions,function(error,response,body){        if(error){          console.log("error occurred: "   error);          reject(error);        }        console.log("title:"   body.title);        console.log("body: "   body.body);        for( var i = 0; i < body.labels.length; i  ){          console.log("label: "   body.labels[i].name);        }        resolve(body);      });      });}module.exports = getIssue;var readIssue = require("./readIssueMod");var createPost = require("./createPostMod");readIssue(2215).then(createPost).catch((error)=>{console.log("error: "   error)});

执行结果:

webp

已经自动同步到CSDN了,方便!

webp

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

webp

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24475491/viewspace-2645497/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24475491/viewspace-2645497/

你可能感兴趣的文章
SUSE一纸诉状控告SCO 捍卫知识产权(转)
查看>>
新闻观察:草民形象影响Linux的发展(转)
查看>>
debian下编译2.6.13.2内核的步骤及感受(转)
查看>>
预装正版的市场意义(转)
查看>>
创建小于16M XFree86迷你Linux系统(转)
查看>>
shell中常用的工具(转)
查看>>
使用MySQL内建复制功能来最佳化可用性(转)
查看>>
一个比较vista的vista主题for rf5.0fb(转)
查看>>
推荐一款 Linux 上比较漂亮的字体(转)
查看>>
在Linux中添加新的系统调用(转)
查看>>
Fedora Core 5.0 安装教程{下载}(转)
查看>>
把ACCESS的数据导入到Mysql中(转)
查看>>
shell里边子函数与主函数的实例(转)
查看>>
Linux中MAXIMA符号运算软件的简介(转)
查看>>
银行选择Linux 则无法回避高成本(转)
查看>>
上网聊天需要防范的几大威胁(转)
查看>>
[分享]后门清除完全篇(转)
查看>>
用php在linux下连接mssql2000(转)
查看>>
让你的Linux支持WEB修改密码(转)
查看>>
MYSQL的master/slave数据同步配置(转)
查看>>