使用代码将github仓库里某个issue同步到CSDN博客上
我是一个懒惰的程序员。我在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博客上的更多相关文章
- [Git高级教程(二)] 远程仓库版本回退方法 - 梧桐那时雨 - CSDN博客
1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客. 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支 ...
- Git下载GitHub仓库里的某一个文件夹或某一个文件
从Github上下载github上的整个项目,可以用下面指令: git clone https://github.com/XXX/xxxxx.git 其中:XXX是用户在Github上的用户名 xxx ...
- 上传代码到GitHub仓库
上传代码到GitHub仓库 准备工作 意思是自从 21 年 8 月 13 后不再支持用户名密码的方式验证了,需要创建个人访问令牌(personal access token). 这里就不多说了 Git ...
- Coding.net代码托管空间申请与使用-安装并运行WordPress博客
参考: http://www.freehao123.com/coding-net/ Coding.net这是一个国内新兴的代码托管平台,功能主要包括:代码托管.在线运行环境.监控代码质量,兼有一定的社 ...
- 在Github上面搭建一个自己域名的Hexo博客
前言 在一次看到别人的博客主页,觉得设计很漂亮.但是由于自己对于前台这块没什么办法,煞是羡慕.偶然中发现这种样式是在Github上面搭建的,使用的是Next主题.于是便想自己也搭建一个,于是便去就去查 ...
- WPF 用代码调用dynamic resource动态更改背景 - CSDN博客
原文:WPF 用代码调用dynamic resource动态更改背景 - CSDN博客 一般dynamic resoource通常在XAML里调用,如下范例: <Button Click=&qu ...
- CSDN博客添加量子恒道统计代码步骤
CSDN博客添加量子恒道统计代码步骤. 1. 去量子恒道网站统计 注册账户: 2. 添加已有的CSDN博客地址: 3. 添加博客后恒道代码里面会给你一个JavaScript脚本,记下里面的一串数字: ...
- 我的CSDN博客&Github地址
我的 CSDN 博客地址: https://blog.csdn.net/qq_40147863 Github 地址: https://github.com/xpwi
- 解决CSDN博客插入代码出现的问题
我在写CSDN博客的时候有时候会在插入代码之后继续编辑,然后保存之后经常会出现一些多余的符号<p 例如<pre></pre>,这样的标记,其实这是html的一个元素,pr ...
随机推荐
- Redis查询_Tips
基础知识——介绍 Redis简介 REmote Dictionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个完全 ...
- Vue报错 Duplicate keys detected: '1'. This may cause an update error. vue报错
情况一.错误信息展示为关键字‘keys‘,此时应该检查for循环中的key,循环的key值不为唯一性 (很普通) 情况二.有两个相同的for循环,而这两个for循环的key值是一样的,此时将一个的ke ...
- SpringMVC接收集合页面参数
SpringMVC接收集合页面参数 Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctyp ...
- Spring分页实现PageImpl<T>类
Spring框架中PageImpl<T>类的源码如下: /* * Copyright 2008-2013 the original author or authors. * * Lice ...
- 一步一步搭建Nuget私服
大致流程:1. 通过VS创建一个Web空项目,然后通过Nuget引入Nuget.Server(目前最新版3.2.1).2. 直接将这个Web项目发布到IIS.3. 通过nuget.exe打包*.nup ...
- python封装和解构
封装 将多个值使用逗号分割,组合在一起 本质上,返回一个元组,只是省略了小括号 python的特有的语法,被很多语言学习借鉴 t1 = (1,2) #定义元组 t2 = 1,2 #将1和2封装成元组 ...
- 【FFMPEG】【ARM-Linux开发】arm上安装FFMPEG
交叉编译工具下载地址 : https://launchpad.net/linaro-toolchain-binaries/+download 其中我下载的是 : gcc-linaro-arm-linu ...
- python 3 获取本机公网ip的几种方法
参考博客:https://blog.csdn.net/conquerwave/article/details/77666226 from urllib.request import urlopen f ...
- Scrapy payload 报错400
首先Scrapy 发送payload请求格式如下: def start_requests(self): querystr = { "ctoken": "U-ang1zmp ...
- 如何配置kindeditor的工具栏
kindeditor编辑器的工具栏主要是指编辑器输入框上方的那些可以操作的菜单,默认情况下编辑器是给予了所有的工具栏.针对不同的用户,不同的项目,不同的环境,可能就需要保留部分工具栏.那么我们应该如何 ...