Files
2025-06-30 21:59:46 +08:00

266 lines
6.6 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'use strict';
const got = require('got');
require('dotenv').config();
const {readFile} = require('fs/promises');
const fs = require('fs');
let fileExists = fs.existsSync('/ql/data/config/auth.json');
let authFile = "";
if (fileExists)
authFile = "/ql/data/config/auth.json"
else
authFile = "/ql/config/auth.json"
const api = got.extend({
prefixUrl: 'http://127.0.0.1:5600',
retry: {limit: 0},
});
async function getToken() {
const authConfig = JSON.parse(await readFile(authFile));
return authConfig.token;
}
module.exports.getEnvsByNameBackUp = async (searchValue) => {
const token = await getToken();
const body = await api({
url: 'api/envs',
searchParams: {
searchValue: searchValue,
t: Date.now(),
},
headers: {
'Accept': 'application/json',
'authorization': `Bearer ${token}`,
'host': '127.0.0.1',
'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'
},
}).json();
return body.data;
};
module.exports.getEnvsByName = async (searchValue) => {
const token = await getToken();
const url = `http://127.0.0.1:5600/api/envs?searchValue=${searchValue}&t=` + Date.now();
const headers = {
"Accept": "application/json",
"authorization": `Bearer ${token}`,
"Content-Type": "application/json;charset=UTF-8",
"host": "127.0.0.1",
"user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
}
const request = {
method: "get",
headers: headers
}
console.log("url=" + url);
console.log("request=" + JSON.stringify(request));
fetch(url, request)
.then(response => {
console.log(response.status + "\n\n" + response.statusText);
return response.text();
})
.then(body => {
console.log(body);
})
.catch(error => {
console.log(error);
});
};
module.exports.getEnvsCount = async () => {
const data = await this.getEnvsByName();
return data.length;
};
module.exports.addEnv = async (cookie, remarks) => {
const token = await getToken();
return await api({
method: 'post',
url: 'api/envs',
params: {t: Date.now()},
json: [{
name: 'JD_COOKIE',
value: cookie,
remarks,
}],
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
'Content-Type': 'application/json;charset=UTF-8',
},
}).json();
};
module.exports.updateEnv = async (value, eid, remarks) => {
const token = await getToken();
const body = await api({
method: 'put',
url: 'api/envs',
params: {t: Date.now()},
json: {
name: 'JD_COOKIE',
value: value,
_id: eid,
remarks,
},
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
'Content-Type': 'application/json;charset=UTF-8',
},
}).json();
return body;
};
module.exports.updateEnvByIdBackUp = async (name, value, eid, remarks) => {
const token = await getToken();
return await api({
method: 'put',
url: 'api/envs',
params: {t: Date.now()},
json: {
name: name,
value: value,
id: eid,
remarks,
},
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
'Content-Type': 'application/json;charset=UTF-8',
},
}).json();
};
// id是必传字段否则青龙会报错
module.exports.updateEnvById = async (id, name, value, remarks) => {
const token = await getToken();
const url = "http://127.0.0.1:5600/api/envs?t=" + Date.now();
const headers = {
"Accept": "application/json",
"authorization": `Bearer ${token}`,
"Content-Type": "application/json;charset=UTF-8",
"host": "127.0.0.1",
"user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
}
const body = {
"id": id,
"name": name,
"value": value,
"remarks": remarks
};
const request = {
method: "put",
headers: headers,
body: JSON.stringify(body)
}
console.log("request=" + JSON.stringify(request));
fetch(url, request)
.then(response => {
console.log(response.status + "\n\n" + response.statusText);
return response.text();
})
.then(body => {
console.log(body);
})
.catch(error => {
console.log(error);
});
};
module.exports.DisableCk = async (eid) => {
const token = await getToken();
const body = await api({
method: 'put',
url: 'api/envs/disable',
params: {t: Date.now()},
body: JSON.stringify([eid]),
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
'Content-Type': 'application/json;charset=UTF-8',
},
}).json();
return body;
};
module.exports.EnableCk = async (eid) => {
const token = await getToken();
const body = await api({
method: 'put',
url: 'api/envs/enable',
params: {t: Date.now()},
body: JSON.stringify([eid]),
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
'Content-Type': 'application/json;charset=UTF-8',
},
}).json();
return body;
};
module.exports.getStatus = async (eid) => {
const envs = await this.getEnvsByName();
var tempid = 0;
for (let i = 0; i < envs.length; i++) {
tempid = 0;
if (envs[i]._id) {
tempid = envs[i]._id;
}
if (envs[i].id) {
tempid = envs[i].id;
}
if (tempid == eid) {
return envs[i].status;
}
}
return 99;
};
module.exports.getEnvById = async (eid) => {
const envs = await this.getEnvsByName();
var tempid = 0;
for (let i = 0; i < envs.length; i++) {
tempid = 0;
if (envs[i]._id) {
tempid = envs[i]._id;
}
if (envs[i].id) {
tempid = envs[i].id;
}
if (tempid == eid) {
return envs[i].value;
}
}
return "";
};
module.exports.getEnvByPtPin = async (Ptpin) => {
const envs = await this.getEnvsByName();
for (let i = 0; i < envs.length; i++) {
var tempptpin = decodeURIComponent(envs[i].value.match(/pt_pin=([^; ]+)(?=;?)/) && envs[i].value.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
if (tempptpin == Ptpin) {
return envs[i];
}
}
return "";
};
module.exports.delEnv = async (eid) => {
const token = await getToken();
const body = await api({
method: 'delete',
url: 'api/envs',
params: {t: Date.now()},
body: JSON.stringify([eid]),
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
'Content-Type': 'application/json;charset=UTF-8',
},
}).json();
return body;
};