mirror of
https://github.com/whyour/qinglong.git
synced 2025-05-22 22:36:06 +08:00
Javascript 和 Python 增加内置函数 QLAPI.notify
This commit is contained in:
parent
1b39d3ab48
commit
eb5cc3943d
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -25,3 +25,4 @@
|
||||||
/.tmp
|
/.tmp
|
||||||
__pycache__
|
__pycache__
|
||||||
/shell/preload/env.*
|
/shell/preload/env.*
|
||||||
|
/shell/preload/notify.*
|
||||||
|
|
|
@ -41,6 +41,8 @@ const systemLogPath = path.join(dataPath, 'syslog/');
|
||||||
const envFile = path.join(preloadPath, 'env.sh');
|
const envFile = path.join(preloadPath, 'env.sh');
|
||||||
const jsEnvFile = path.join(preloadPath, 'env.js');
|
const jsEnvFile = path.join(preloadPath, 'env.js');
|
||||||
const pyEnvFile = path.join(preloadPath, 'env.py');
|
const pyEnvFile = path.join(preloadPath, 'env.py');
|
||||||
|
const jsNotifyFile = path.join(preloadPath, 'notify.js');
|
||||||
|
const pyNotifyFile = path.join(preloadPath, 'notify.py');
|
||||||
const confFile = path.join(configPath, 'config.sh');
|
const confFile = path.join(configPath, 'config.sh');
|
||||||
const crontabFile = path.join(configPath, 'crontab.list');
|
const crontabFile = path.join(configPath, 'crontab.list');
|
||||||
const authConfigFile = path.join(configPath, 'auth.json');
|
const authConfigFile = path.join(configPath, 'auth.json');
|
||||||
|
@ -92,6 +94,8 @@ export default {
|
||||||
envFile,
|
envFile,
|
||||||
jsEnvFile,
|
jsEnvFile,
|
||||||
pyEnvFile,
|
pyEnvFile,
|
||||||
|
jsNotifyFile,
|
||||||
|
pyNotifyFile,
|
||||||
dbPath,
|
dbPath,
|
||||||
uploadPath,
|
uploadPath,
|
||||||
configPath,
|
configPath,
|
||||||
|
|
|
@ -28,6 +28,8 @@ const sampleNotifyJsFile = path.join(samplePath, 'notify.js');
|
||||||
const sampleNotifyPyFile = path.join(samplePath, 'notify.py');
|
const sampleNotifyPyFile = path.join(samplePath, 'notify.py');
|
||||||
const scriptNotifyJsFile = path.join(scriptPath, 'sendNotify.js');
|
const scriptNotifyJsFile = path.join(scriptPath, 'sendNotify.js');
|
||||||
const scriptNotifyPyFile = path.join(scriptPath, 'notify.py');
|
const scriptNotifyPyFile = path.join(scriptPath, 'notify.py');
|
||||||
|
const jsNotifyFile = path.join(preloadPath, 'notify.js');
|
||||||
|
const pyNotifyFile = path.join(preloadPath, 'notify.py');
|
||||||
const TaskBeforeFile = path.join(configPath, 'task_before.sh');
|
const TaskBeforeFile = path.join(configPath, 'task_before.sh');
|
||||||
const TaskAfterFile = path.join(configPath, 'task_after.sh');
|
const TaskAfterFile = path.join(configPath, 'task_after.sh');
|
||||||
const homedir = os.homedir();
|
const homedir = os.homedir();
|
||||||
|
@ -102,6 +104,9 @@ export default async () => {
|
||||||
await fs.writeFile(confFile, await fs.readFile(sampleConfigFile));
|
await fs.writeFile(confFile, await fs.readFile(sampleConfigFile));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await fs.writeFile(jsNotifyFile, await fs.readFile(sampleNotifyJsFile));
|
||||||
|
await fs.writeFile(pyNotifyFile, await fs.readFile(sampleNotifyPyFile));
|
||||||
|
|
||||||
if (!scriptNotifyJsFileExist) {
|
if (!scriptNotifyJsFileExist) {
|
||||||
await fs.writeFile(
|
await fs.writeFile(
|
||||||
scriptNotifyJsFile,
|
scriptNotifyJsFile,
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
* 定时规则
|
* 定时规则
|
||||||
* cron: 1 9 * * *
|
* cron: 1 9 * * *
|
||||||
*/
|
*/
|
||||||
const { sendNotify } = require('./sendNotify.js'); // commonjs
|
|
||||||
// import { sendNotify } from './sendNotify'; // es6
|
|
||||||
|
|
||||||
console.log('test scripts');
|
console.log('test scripts');
|
||||||
sendNotify('test scripts', 'test desc');
|
QLAPI.notify('test scripts', 'test desc');
|
||||||
|
console.log('test desc');
|
||||||
|
|
|
@ -4,7 +4,6 @@ name: script name
|
||||||
定时规则
|
定时规则
|
||||||
cron: 1 9 * * *
|
cron: 1 9 * * *
|
||||||
"""
|
"""
|
||||||
import notify
|
|
||||||
|
|
||||||
print("test script")
|
print("test script")
|
||||||
notify.send('test script', 'test desc')
|
QLAPI.notify('test script', 'test desc')
|
||||||
|
print("test desc")
|
||||||
|
|
|
@ -1,6 +1,13 @@
|
||||||
const { execSync } = require('child_process');
|
const { execSync } = require('child_process');
|
||||||
|
const { sendNotify } = require('./notify.js');
|
||||||
require(`./env.js`);
|
require(`./env.js`);
|
||||||
|
|
||||||
|
function initGlobal() {
|
||||||
|
global.QLAPI = {
|
||||||
|
notify: sendNotify,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
function expandRange(rangeStr, max) {
|
function expandRange(rangeStr, max) {
|
||||||
const tempRangeStr = rangeStr
|
const tempRangeStr = rangeStr
|
||||||
.trim()
|
.trim()
|
||||||
|
@ -19,6 +26,7 @@ function expandRange(rangeStr, max) {
|
||||||
|
|
||||||
function run() {
|
function run() {
|
||||||
try {
|
try {
|
||||||
|
// TODO: big size
|
||||||
const splitStr = '__sitecustomize__';
|
const splitStr = '__sitecustomize__';
|
||||||
let command = `bash -c "source ${process.env.taskBefore} ${process.env.fileName}`;
|
let command = `bash -c "source ${process.env.taskBefore} ${process.env.fileName}`;
|
||||||
if (process.env.task_before) {
|
if (process.env.task_before) {
|
||||||
|
@ -31,17 +39,17 @@ function run() {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
const [output, envStr] = res.split(splitStr);
|
const [output, envStr] = res.split(splitStr);
|
||||||
const json = JSON.parse(envStr.trim());
|
const newEnvObject = JSON.parse(envStr.trim());
|
||||||
for (const key in json) {
|
for (const key in newEnvObject) {
|
||||||
process.env[key] = json[key];
|
process.env[key] = newEnvObject[key];
|
||||||
}
|
}
|
||||||
console.log(output);
|
console.log(output);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(`run task before error `, error);
|
console.log(`run task before error: `, error.message);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process.env.envParam && process.env.numParam) {
|
const { envParam, numParam } = process.env;
|
||||||
const { envParam, numParam } = process.env;
|
if (envParam && numParam) {
|
||||||
const array = (process.env[envParam] || '').split('&');
|
const array = (process.env[envParam] || '').split('&');
|
||||||
const runArr = expandRange(numParam, array.length);
|
const runArr = expandRange(numParam, array.length);
|
||||||
const arrayRun = runArr.map((i) => array[i - 1]);
|
const arrayRun = runArr.map((i) => array[i - 1]);
|
||||||
|
@ -50,4 +58,5 @@ function run() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initGlobal();
|
||||||
run();
|
run();
|
||||||
|
|
|
@ -3,6 +3,18 @@ import re
|
||||||
import env
|
import env
|
||||||
import subprocess
|
import subprocess
|
||||||
import json
|
import json
|
||||||
|
import builtins
|
||||||
|
from notify import send
|
||||||
|
|
||||||
|
|
||||||
|
class BaseApi:
|
||||||
|
def notify(self, *args, **kwargs):
|
||||||
|
return send(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
def init_global():
|
||||||
|
QLAPI = BaseApi()
|
||||||
|
builtins.QLAPI = QLAPI
|
||||||
|
|
||||||
|
|
||||||
def try_parse_int(value):
|
def try_parse_int(value):
|
||||||
|
@ -66,4 +78,5 @@ def run():
|
||||||
os.environ[env_param] = env_str
|
os.environ[env_param] = env_str
|
||||||
|
|
||||||
|
|
||||||
|
init_global()
|
||||||
run()
|
run()
|
||||||
|
|
|
@ -27,8 +27,6 @@ ql_static_repo=$dir_repo/static
|
||||||
## 文件
|
## 文件
|
||||||
file_config_sample=$dir_sample/config.sample.sh
|
file_config_sample=$dir_sample/config.sample.sh
|
||||||
file_env=$dir_preload/env.sh
|
file_env=$dir_preload/env.sh
|
||||||
js_file_env=$dir_preload/env.js
|
|
||||||
py_file_env=$dir_preload/env.py
|
|
||||||
preload_js_file=$dir_preload/sitecustomize.js
|
preload_js_file=$dir_preload/sitecustomize.js
|
||||||
file_sharecode=$dir_config/sharecode.sh
|
file_sharecode=$dir_config/sharecode.sh
|
||||||
file_config_user=$dir_config/config.sh
|
file_config_user=$dir_config/config.sh
|
||||||
|
|
Loading…
Reference in New Issue
Block a user