Browse Source

function createTask, getWaitingTask done

master
master 11 months ago
parent
commit
6eea9a0678
  1. 131
      heroUnion.mjs

131
heroUnion.mjs

@ -27,19 +27,142 @@ class HeroUnion { @@ -27,19 +27,142 @@ class HeroUnion {
//构造函数,设置默认配置
constructor() {
this.stats = {};
this.tasks = [];
this.taskStatus = {
'total': 0,
'waiting': 0,
'running': 0,
'done': 0,
'failed': 0
};
this.statusCode = {
'waiting': '待处理',
'running': '处理中',
'done': '完成',
'failed': '失败'
};
this.supportedPlatforms = {
'douyin': true,
'kuaishou': true,
'xigua': true,
'bilibili': true
};
}
//公用方法
getTimestamp() {
return Math.floor(Date.now());
}
getTimestampInSeconds() {
return Math.floor(Date.now() / 1000);
}
//--任务相关功能--
//提交新任务
createTask() {
//根据任务提交者ID和时间戳生成任务ID编号
generateTaskId(uuid) {
let timestamp = this.getTimestamp();
return `${uuid}_${timestamp}`;
}
isSupportedPlatform(platform) {
return typeof(this.supportedPlatforms[platform]) != 'undefined' && this.supportedPlatforms[platform];
}
//提交新任务
/**
* {
* id: '',
* status: '',
* uuid: '',
* country: '',
* lang: '',
* url: '',
* platform: '',
* data_mode: '',
* notify_url: '',
* }
**/
createTask(uuid, url, platform, data_mode, notify_url, country, lang) {
let task = {
id: this.generateTaskId(uuid),
status: 'waiting',
//必选
uuid: uuid,
url: url,
platform: platform,
//可选
data_mode: 'default',
country: 'china',
lang: 'zh-CN',
notify_url: ''
};
if (typeof(data_mode) != 'undefined' && data_mode) {
task.data_mode = data_mode;
}
if (typeof(notify_url) != 'undefined' && notify_url) {
task.notify_url = notify_url;
}
if (typeof(country) != 'undefined' && country) {
task.country = country;
}
if (typeof(lang) != 'undefined' && lang) {
task.lang = lang;
}
this.tasks.push(task);
this.taskStatus.total ++;
this.taskStatus.waiting ++;
return task;
}
//获取 1 个待处理的任务
getWaitingTask() {
//参数均可选,获取 1 个待处理的任务
getWaitingTask(platform, country, lang, data_mode) {
let searchResult = null;
for (const task of this.tasks) {
if (task.status == 'waiting') {
if (typeof(platform) != 'undefined' && platform) {
if (platform == task.platform) {
searchResult = task;
}else {
continue;
}
}
if (typeof(country) != 'undefined' && country) {
if (country == task.country) {
searchResult = task;
}else {
continue;
}
}
if (typeof(lang) != 'undefined' && lang) {
if (lang == task.lang) {
searchResult = task;
}else {
continue;
}
}
if (typeof(data_mode) != 'undefined' && data_mode) {
if (data_mode == task.data_mode) {
searchResult = task;
}else {
continue;
}
}
}
}
return searchResult;
}
//保存任务处理结果

Loading…
Cancel
Save