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

例子:

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

这是我的一个issue:

我使用下面这些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)});

执行结果:

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

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

使用代码将github仓库里某个issue同步到CSDN博客上的更多相关文章

  1. [Git高级教程(二)] 远程仓库版本回退方法 - 梧桐那时雨 - CSDN博客

    1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客. 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支 ...

  2. Git下载GitHub仓库里的某一个文件夹或某一个文件

    从Github上下载github上的整个项目,可以用下面指令: git clone https://github.com/XXX/xxxxx.git 其中:XXX是用户在Github上的用户名 xxx ...

  3. 上传代码到GitHub仓库

    上传代码到GitHub仓库 准备工作 意思是自从 21 年 8 月 13 后不再支持用户名密码的方式验证了,需要创建个人访问令牌(personal access token). 这里就不多说了 Git ...

  4. Coding.net代码托管空间申请与使用-安装并运行WordPress博客

    参考: http://www.freehao123.com/coding-net/ Coding.net这是一个国内新兴的代码托管平台,功能主要包括:代码托管.在线运行环境.监控代码质量,兼有一定的社 ...

  5. 在Github上面搭建一个自己域名的Hexo博客

    前言 在一次看到别人的博客主页,觉得设计很漂亮.但是由于自己对于前台这块没什么办法,煞是羡慕.偶然中发现这种样式是在Github上面搭建的,使用的是Next主题.于是便想自己也搭建一个,于是便去就去查 ...

  6. WPF 用代码调用dynamic resource动态更改背景 - CSDN博客

    原文:WPF 用代码调用dynamic resource动态更改背景 - CSDN博客 一般dynamic resoource通常在XAML里调用,如下范例: <Button Click=&qu ...

  7. CSDN博客添加量子恒道统计代码步骤

    CSDN博客添加量子恒道统计代码步骤. 1. 去量子恒道网站统计 注册账户: 2. 添加已有的CSDN博客地址: 3. 添加博客后恒道代码里面会给你一个JavaScript脚本,记下里面的一串数字: ...

  8. 我的CSDN博客&Github地址

    我的 CSDN 博客地址: https://blog.csdn.net/qq_40147863 Github 地址: https://github.com/xpwi

  9. 解决CSDN博客插入代码出现的问题

    我在写CSDN博客的时候有时候会在插入代码之后继续编辑,然后保存之后经常会出现一些多余的符号<p 例如<pre></pre>,这样的标记,其实这是html的一个元素,pr ...

随机推荐

  1. Qt编写自定义控件29-颜色选取面板

    一.前言 这个控件主要是模仿QColorDialog对话框中的颜色选取面板,提供一个十字形状的标识器,鼠标按下开始选取颜色,移动到哪就选择该处的颜色值,对应右侧颜色条放大显示,本控件的难点就是如何绘制 ...

  2. Delphi10.2安装过程详解

    下载好的Delphi10.2是iso镜像,使用虚拟光驱,快速装载后,提示安装   运行setup.exe安装程序,选择安装语言——点击OK,最好关闭网络和退出其他软件   勾选同意条款,点击next ...

  3. keytool命令的使用

    ## 打印所有证书指纹.如果是cacerts,则指本机安装的jdk的key store:如果是一个jks文件,则是其他key store keytool -list -keystore <cac ...

  4. 【世界之大,我用Python】Ubuntu 自动删除自带软件

    起因 Ubuntu是用来做开发程序的系统,如果存在大量的"垃圾"软件就不好了吧,不仅影响系统性能而且还会经常报错,所以每次安装完系统都会清理一次系统. 操作 我清理系统一般都是直接 ...

  5. OpenGL学习(3)——Shader(补)

    完成章节后练习. 练习 1. Adjust the vertex shader so that the triangle is upside down. #version 330 core layou ...

  6. PJzhang:docker基础知识的2个疗程-one

    猫宁!!! 参考:http://virtual.51cto.com/art/201805/572135.htm https://www.cnblogs.com/rkit/p/9237696.html ...

  7. 《精通并发与Netty》学习笔记(10 - 详解NIO (一) Channel、Buffer )

    一.Java NIO 概述 Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Bu ...

  8. 最新 智联java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.智联等10家互联网公司的校招Offer,因为某些自身原因最终选择了智联.6.7月主要是做系统复习.项目复盘.LeetCode ...

  9. jquery清除元素的点击事件

    $("#id").css("pointer-events", "none");

  10. 关于SQLSERVER登录不了的情况

    是这样的,本人为了复制一个数据库文件把默认数据库设置成了脱机状态.在此点击联机的时候SSMS显示重启,重启后在用windows登录显示无法打开默认数据库.用其他不适该默认数据库的账号可以登录.想问一下 ...