快捷导航

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

切换风格

默认青色 咖啡色 淡黄 紫色 红色 灰蓝 淡绿 蓝色 黄色

使用代码将github仓库里某个issue同步到CSDN博客上

中国茶叶网

燕露春茶叶店 Lv.1 实名认证

2019-11-8 21:56:52 | 只看作者

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

例子:

https://github.com/i042416/KnowlegeRepository/issues/2215

这是我的一个issue:

使用代码将github仓库里某个issue同步到CSDN博客上-1.jpg

我使用下面这些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.name);
}
resolve(body);
});
});
}
module.exports = getIssue;
var readIssue = require("./readIssueMod");
var createPost = require("./createPostMod");
readIssue(2215).then(createPost).catch((error)=>{console.log("error: " + error)});

执行结果:

使用代码将github仓库里某个issue同步到CSDN博客上-2.jpg

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

使用代码将github仓库里某个issue同步到CSDN博客上-3.jpg
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
楼主热帖
天茗SEO优化网店,请联系微信A13489884026

徐浩哲 Lv.1 实名认证

2019-11-8 21:57:31 | 只看作者
转发了
天茗SEO优化网店,请联系微信A13489884026
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

首页

论坛

群组

导读

我的

快速回复 返回顶部 返回列表