1 Star 0 Fork 0

xulong123 / steemit

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
app.js 3.17 KB
一键复制 编辑 原始数据 按行查看 历史
xulong123 提交于 2018-03-05 14:48 . 修改一些配置
import promiseSynchronizer from "promise-synchronizer";
import schedule from "node-schedule";
import path from "path";
import fse from "fs-extra";
const config = require("config-lite")(__dirname);
import Medium from "./services/medium";
import Queue from "./services/queue";
import Steemit from "./services/steemit";
const queue = {
redisHost: config.redisHost,
redisPort: config.redisPort
};
const medium = new Medium(queue);
const steemit = new Steemit(config.promulgatorName, promulgatorPassword: "***",
);
let queueJson = [];
config.categories.forEach(category => {
queueJson[`${category.name}`] = new Queue(category.name, queue);
queueJson[`${category.name}`].removeAllQueue()
});
let originDir = path.join(config.cwd, "download/origin");
async function start() {
//每天8点半下载文章,保证下载的文章不重复
// let downloadPostJob = schedule.scheduleJob(
// "30 30 8 * *",
// async function() {}
// );
await promiseSynchronizer(steemit.login());
for (let i = 0; i < config.categories.length; i++) {
let category = config.categories[i];
//每隔6分钟上传一篇文章
let rule = new schedule.RecurrenceRule();
rule.minute = [0+i%6, 6+i%6, 12+i%6, 18+i%6, 24+i%6, 30+i%6, 36+i%6, 42+i%6, 48+i%6, 54+i%6];
console.log('uploadPostJob start!!!!!!');
let uploadPostJob = schedule.scheduleJob(rule, async function() {
//逐条获取下载文章内容
let getQueueOneRes = await promiseSynchronizer(queueJson[category.name].getQueueOne());
if(!getQueueOneRes.result){
console.log('getQueueOneRes error: ',getQueueOneRes.value)
}else{
//console.log('getQueueOneRes',getQueueOneRes.value);
console.log('*******************************');
let postTmp = JSON.parse(getQueueOneRes.value.message);
//console.log(postTmp.title, postTmp.content, postTmp.category)
//上传文章
await promiseSynchronizer(steemit.submit(postTmp.title, postTmp.content, postTmp.category));
}
});
}
try {
config.categories.forEach(function(category) {
category.origin.forEach(async function(origin) {
let res = await promiseSynchronizer(
medium.getPostByUsername(origin, 100)
);
if (res.result) {
let tempList = JSON.parse(res.value);
//删选文章保证文章是最近一天的
//let resPosts = await medium.screenPost(tempList.data.posts);
let resPosts = tempList.data.posts;
let savePath = path.join(
config.cwd,
"download/origin/",
category.name,
origin
);
//await fse.ensureDir(savePath);
//开始下载文章
let author = origin;
resPosts.forEach(async function(post) {
let saveName = post.title;
let downloadPostByUrlRes = await promiseSynchronizer(
medium.downloadPostByUrl(
post.url,
saveName,
author,
category.name
)
);
}, this);
} else {
}
}, this);
}, this);
} catch (error) {
console.log(error);
}
}
start();
NodeJS
1
https://gitee.com/null_639_7345/steemit.git
git@gitee.com:null_639_7345/steemit.git
null_639_7345
steemit
steemit
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891