Compare commits

..

No commits in common. "405c8040b7cbed57b9e1f938a55965d124de7f71" and "0b2d8539364e4818aaece6d691536b462aad3bdd" have entirely different histories.

4 changed files with 73 additions and 97 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

37
ql.js
View File

@ -1,6 +1,7 @@
'use strict';
const got = require('got');
const sqlite3 = require('sqlite3').verbose();
require('dotenv').config();
const { readFile } = require('fs/promises');
const path = require('path');
@ -22,6 +23,8 @@ module.exports.getVersion = () => {
Accept: 'application/json',
},
}).then(response => {
//console.log('Response Status Code:', response.statusCode);
//console.log('Response Body:', response.body);
return response.body.data.version;
}).catch(error => {
console.error('Error fetching version:', error.response ? error.response.body : error.message);
@ -34,18 +37,19 @@ let authFile = "";
(function initialize() {
global.versionPromise = module.exports.getVersion();
global.versionPromise.then(version => {
console.log('当前青龙版本:', version + "\n");
if (version) {
console.log('当前青龙版本:', version+"\n");
if (version >= '2.18.0') {
authFile = "/ql/data/db/keyv.sqlite";
} else if (version < '2.12.0') {
} else if(version < '2.12.0'){
authFile = "/ql/config/auth.json";
} else {
}else {
authFile = "/ql/data/config/auth.json";
}
} else {
// 当检测不到版本号时,采用 version < '2.12.0' 的操作
authFile = "/ql/config/auth.json";
}
}).catch(error => {
console.error('Error after initialization:', error);
@ -55,11 +59,9 @@ let authFile = "";
async function getAuthFile() {
await global.versionPromise;
return authFile;
}
async function getTokenFromSqlite(dbPath) {
const sqlite3 = require('sqlite3').verbose();
return new Promise((resolve, reject) => {
const db = new sqlite3.Database(dbPath, (err) => {
if (err) {
@ -103,17 +105,24 @@ async function getTokenFromSqlite(dbPath) {
}
async function getToken() {
const authFilePath = await getAuthFile();
if (authFilePath.endsWith('keyv.sqlite')) {
return getTokenFromSqlite(authFilePath);
} else {
const authConfig = JSON.parse(await readFile(authFilePath));
return authConfig.token;
}
}
}
module.exports.getEnvs = async () => {
const token = await getToken();
//console.log('当前token', token);
const body = await api({
url: 'api/envs',
searchParams: {
@ -227,7 +236,7 @@ module.exports.EnableCk = async (eid) => {
return body;
};
module.exports.getstatus = async (eid) => {
module.exports.getstatus = async(eid) => {
const envs = await this.getEnvs();
var tempid = 0;
for (let i = 0; i < envs.length; i++) {
@ -245,7 +254,7 @@ module.exports.getstatus = async (eid) => {
return 99;
};
module.exports.getEnvById = async (eid) => {
module.exports.getEnvById = async(eid) => {
const envs = await this.getEnvs();
var tempid = 0;
for (let i = 0; i < envs.length; i++) {
@ -267,7 +276,7 @@ module.exports.getEnvByPtPin = async (Ptpin) => {
const envs = await this.getEnvs();
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) {
if(tempptpin==Ptpin){
return envs[i];
}
}