chore: Use Latest and compatible core

This commit is contained in:
MystiPanda 2023-12-23 12:09:19 +08:00
parent bfb7ff88d9
commit 8f53859e00

View File

@ -48,7 +48,7 @@ const SIDECAR_HOST = target
.match(/(?<=host: ).+(?=\s*)/g)[0]; .match(/(?<=host: ).+(?=\s*)/g)[0];
/* ======= clash meta alpha======= */ /* ======= clash meta alpha======= */
const VERSION_URL = const META_ALPHA_VERSION_URL =
"https://github.com/MetaCubeX/mihomo/releases/download/Prerelease-Alpha/version.txt"; "https://github.com/MetaCubeX/mihomo/releases/download/Prerelease-Alpha/version.txt";
const META_ALPHA_URL_PREFIX = `https://github.com/MetaCubeX/mihomo/releases/download/Prerelease-Alpha`; const META_ALPHA_URL_PREFIX = `https://github.com/MetaCubeX/mihomo/releases/download/Prerelease-Alpha`;
let META_ALPHA_VERSION; let META_ALPHA_VERSION;
@ -57,7 +57,7 @@ const META_ALPHA_MAP = {
"win32-x64": "mihomo-windows-amd64-compatible", "win32-x64": "mihomo-windows-amd64-compatible",
"win32-ia32": "mihomo-windows-386", "win32-ia32": "mihomo-windows-386",
"win32-arm64": "mihomo-windows-arm64", "win32-arm64": "mihomo-windows-arm64",
"darwin-x64": "mihomo-darwin-amd64", "darwin-x64": "mihomo-darwin-amd64-cgo",
"darwin-arm64": "mihomo-darwin-arm64", "darwin-arm64": "mihomo-darwin-arm64",
"linux-x64": "mihomo-linux-amd64-compatible", "linux-x64": "mihomo-linux-amd64-compatible",
"linux-ia32": "mihomo-linux-386", "linux-ia32": "mihomo-linux-386",
@ -65,8 +65,8 @@ const META_ALPHA_MAP = {
"linux-arm": "mihomo-linux-armv7", "linux-arm": "mihomo-linux-armv7",
}; };
// Fetch the latest release version from the version.txt file // Fetch the latest alpha release version from the version.txt file
async function getLatestVersion() { async function getLatestAlphaVersion() {
const options = {}; const options = {};
const httpProxy = const httpProxy =
@ -79,25 +79,30 @@ async function getLatestVersion() {
options.agent = proxyAgent(httpProxy); options.agent = proxyAgent(httpProxy);
} }
try { try {
const response = await fetch(VERSION_URL, { ...options, method: "GET" }); const response = await fetch(META_ALPHA_VERSION_URL, {
...options,
method: "GET",
});
let v = await response.text(); let v = await response.text();
META_ALPHA_VERSION = v.trim(); // Trim to remove extra whitespaces META_ALPHA_VERSION = v.trim(); // Trim to remove extra whitespaces
console.log(`Latest release version: ${META_ALPHA_VERSION}`); console.log(`Latest alpha version: ${META_ALPHA_VERSION}`);
} catch (error) { } catch (error) {
console.error("Error fetching latest release version:", error.message); console.error("Error fetching latest alpha version:", error.message);
process.exit(1); process.exit(1);
} }
} }
/* ======= clash meta stable ======= */ /* ======= clash meta stable ======= */
const META_VERSION_URL =
"https://github.com/MetaCubeX/mihomo/releases/latest/download/version.txt";
const META_URL_PREFIX = `https://github.com/MetaCubeX/mihomo/releases/download`; const META_URL_PREFIX = `https://github.com/MetaCubeX/mihomo/releases/download`;
let META_VERSION = "v1.17.0"; let META_VERSION;
const META_MAP = { const META_MAP = {
"win32-x64": "mihomo-windows-amd64-compatible", "win32-x64": "mihomo-windows-amd64-compatible",
"win32-ia32": "mihomo-windows-386", "win32-ia32": "mihomo-windows-386",
"win32-arm64": "mihomo-windows-arm64", "win32-arm64": "mihomo-windows-arm64",
"darwin-x64": "mihomo-darwin-amd64", "darwin-x64": "mihomo-darwin-amd64-cgo",
"darwin-arm64": "mihomo-darwin-arm64", "darwin-arm64": "mihomo-darwin-arm64",
"linux-x64": "mihomo-linux-amd64-compatible", "linux-x64": "mihomo-linux-amd64-compatible",
"linux-ia32": "mihomo-linux-386", "linux-ia32": "mihomo-linux-386",
@ -105,6 +110,33 @@ const META_MAP = {
"linux-arm": "mihomo-linux-armv7", "linux-arm": "mihomo-linux-armv7",
}; };
// Fetch the latest release version from the version.txt file
async function getLatestReleaseVersion() {
const options = {};
const httpProxy =
process.env.HTTP_PROXY ||
process.env.http_proxy ||
process.env.HTTPS_PROXY ||
process.env.https_proxy;
if (httpProxy) {
options.agent = proxyAgent(httpProxy);
}
try {
const response = await fetch(META_VERSION_URL, {
...options,
method: "GET",
});
let v = await response.text();
META_VERSION = v.trim(); // Trim to remove extra whitespaces
console.log(`Latest release version: ${META_VERSION}`);
} catch (error) {
console.error("Error fetching latest release version:", error.message);
process.exit(1);
}
}
/* /*
* check available * check available
*/ */
@ -327,15 +359,16 @@ const tasks = [
// { name: "clash", func: resolveClash, retry: 5 }, // { name: "clash", func: resolveClash, retry: 5 },
{ {
name: "clash-meta-alpha", name: "clash-meta-alpha",
func: () => getLatestVersion().then(() => resolveSidecar(clashMetaAlpha())), func: () =>
getLatestAlphaVersion().then(() => resolveSidecar(clashMetaAlpha())),
retry: 5, retry: 5,
}, },
{ {
name: "clash-meta", name: "clash-meta",
func: () => resolveSidecar(clashMeta()), func: () =>
getLatestReleaseVersion().then(() => resolveSidecar(clashMeta())),
retry: 5, retry: 5,
}, },
// { name: "wintun", func: resolveWintun, retry: 5, winOnly: true },
{ name: "service", func: resolveService, retry: 5, winOnly: true }, { name: "service", func: resolveService, retry: 5, winOnly: true },
{ name: "install", func: resolveInstall, retry: 5, winOnly: true }, { name: "install", func: resolveInstall, retry: 5, winOnly: true },
{ name: "uninstall", func: resolveUninstall, retry: 5, winOnly: true }, { name: "uninstall", func: resolveUninstall, retry: 5, winOnly: true },