使用代码将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 ...
随机推荐
- 使用极路由进行外网映射,本地电脑做服务器,运行javaWeb项目
最近在学习javaWeb,一个项目需要android访问服务器,于是使用自己的笔记本电脑作为服务器,需要进行端口映射.使得外网可以访问自己的javaWeb项目或者网站之类的.普通路由请看:http:/ ...
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_15-页面静态化-模板管理-模板管理业务流程
在视频教学的过程中,不会去做模板管理的模块 cms_template用来存储模板信息 cms_page 这一些课程页面用的是一个模板 模板的详情.templateFileId是模板的文件id 模板的文 ...
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_18-异常处理-不可预知异常处理
框架抛出来的或者一些第三方的组件抛出来的异常.我们根本不知道它所对应的错误代码的信息,所以我们也没有办法给用户返回具体的错误代码和错误信息. 我们先在Map中定义有一些不可预知的异常,定义错误代码和错 ...
- scikit-learn机器学习(三)多项式回归(二阶,三阶,九阶)
我们仍然使用披萨直径的价格的数据 import matplotlib matplotlib.rcParams['font.sans-serif']=[u'simHei'] matplotlib.rcP ...
- 通过route指令指定笔记本同时连接外网和内网
假如你的外网网关是:X.X.X.X 内网网关:192.168.1.1 则在命令窗口输入以下两条命令: route add 0.0.0.0 mask 0.0.0.0 X.X.X.X route add ...
- 配置Xmanager远程登录
1.修改/etc/gdm/custom.conf文件找到下面的语句:[security]AllowRemoteRoot=true[xdmcp]Enable=true修改custom.conf后,必须重 ...
- 【转】TCP/IP网络协议各层首部
数据包封装流程(逐层封装,逐层解封) 二层帧(二层帧中目的地址6个字节,源地址6个字节,长度/类型2个字节,二层帧共18个字节) ip头部(ip头部20字节) tcp头部(tcp头部20个字节): ...
- Elasticsearch 环境配置
1.下载启动Elasticsearch Elasticsearch下载地址: https://www.elastic.co/cn/downloads/elasticsearch (2) Run ...
- 【计算机视觉】深度相机(四)--Realsense概览
本文参考下文,做一点个人使用补充. http://blog.csdn.net/app_12062011/article/details/52662143 转自: http://blog.csdn. ...
- react新特性hook
一.hook示例. import React, { useState } from 'react'; function Example() { // 声明一个叫 “count” 的 state 变 ...