我是一个懒惰的程序员。我在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自定义类添加qvector报错

    PtsData& PtsData::operator=(const PtsData& obj){ return *this;} PtsData::~PtsData(){ }

  2. kubernets部署sock-shop微服务电商平台(11)

    一.准备条件 确保kubernetes可以访问:reg.yunwei.edu镜像库(vim /etc/hosts)   需要准备镜像:   [root@cicd sock-shop]# cat com ...

  3. mysql报错解决

    1044, "Access denied for user 'root'@'192.168.0.%' to database 'test'" 是因为创建这个test数据库时候没有给 ...

  4. unity读取灰度图生成三维地形mesh

    准备灰度图 IGray.png及草地贴图 IGrass.jpg ,放入Assets下StreamingAssets文件夹中.     创建空材质,用作参数传入脚本.   脚本如下,挂载并传入材质球即可 ...

  5. The input file should be UTF8 without a byte-order-mark(BOM)

    byte-order-mark = (BOM) 在unicode诸编码中,字节顺序标记-BOM被用于标记编码高低位的顺序. .BOM是一个特殊的unicode字符.早期标准定义其为“零长度.非断行的空 ...

  6. Spark2.4源码阅读1-Shuffle机制概述

    本文参考: a. https://www.jianshu.com/p/c46bfaa5dd15 1. shuffle及历史简介 shuffle,即"洗牌",所有采用map-redu ...

  7. fatal error: nvcuvid.h: No such file

    https://www.cnblogs.com/rabbull/p/11154997.html

  8. 2019年9月Leetcode每日训练日志

    2019-09-16 #1171 从链表中删去总和值为零的连续节点 #1170 比较字符串最小字母出现频次 #1169 查询无效交易 #226 翻转二叉树 2019-09-15 #1190 反转每对括 ...

  9. Java学习笔记-流程控制

    在Java中,最常见的就是顺序结构,另外,还有其他的一些的结构,选择,循环等,这些程序结构的加入,使得程序代码更有选择性 判断结构 if语句 三种格式: if(条件表达式) { 执行语句; } if( ...

  10. Vue CLI 3 如何自定义 js 的文件名

    参考链接:https://blog.csdn.net/weixin_33979363/article/details/88742342