chore: delete clash core, update CI, change profile name, change URL test link

This commit is contained in:
wonfen 2023-11-22 02:56:47 +08:00
parent 9df1115380
commit dbc626734d
31 changed files with 1327 additions and 974 deletions

View File

@ -18,7 +18,7 @@ jobs:
matrix:
os: [windows-latest, ubuntu-20.04, macos-latest]
runs-on: ${{ matrix.os }}
if: startsWith(github.repository, 'zzzgydi')
if: startsWith(github.repository, 'wonfen')
steps:
- name: Checkout repository
uses: actions/checkout@v4

View File

@ -13,10 +13,20 @@ env:
jobs:
release:
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
include:
- os: windows-latest
portable: false
- os: windows-latest
portable: true
- os: ubuntu-latest
portable: false
- os: macos-latest
portable: false
runs-on: ${{ matrix.os }}
if: startsWith(github.repository, 'zzzgydi')
if: startsWith(github.repository, 'wonfen')
steps:
- name: Checkout repository
uses: actions/checkout@v4
@ -50,6 +60,7 @@ jobs:
uses: tauri-apps/tauri-action@v0
# enable cache even though failed
# continue-on-error: true
if: matrix.portable == false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
@ -60,12 +71,13 @@ jobs:
releaseBody: "More new features are now supported."
releaseDraft: false
prerelease: true
args: -f default-meta
- name: Portable Bundle
if: startsWith(matrix.os, 'windows-')
# rebuild with env settings
if: matrix.portable == true
run: |
yarn build
yarn install --network-timeout 1000000 --frozen-lockfile
yarn build -f default-meta
yarn run portable
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -74,10 +86,10 @@ jobs:
VITE_WIN_PORTABLE: 1
release-update:
needs: release
needs: [release]
runs-on: ubuntu-latest
if: |
startsWith(github.repository, 'zzzgydi') &&
startsWith(github.repository, 'wonfen') &&
startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout repository

View File

@ -24,7 +24,7 @@ jobs:
os: ubuntu-22.04
runs-on: ${{ matrix.targets.os }}
if: startsWith(github.repository, 'zzzgydi')
if: startsWith(github.repository, 'wonfen')
steps:
- name: Checkout repository
uses: actions/checkout@v2

View File

@ -17,7 +17,7 @@ jobs:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
if: startsWith(github.repository, 'zzzgydi')
if: startsWith(github.repository, 'wonfen')
steps:
- name: Checkout repository
uses: actions/checkout@v2

View File

@ -28,7 +28,7 @@ env:
jobs:
release:
runs-on: ${{ github.event.inputs.os }}
if: startsWith(github.repository, 'zzzgydi')
if: startsWith(github.repository, 'wonfen')
steps:
- name: System Version
run: |

View File

@ -5,7 +5,7 @@ on: workflow_dispatch
jobs:
release-update:
runs-on: ubuntu-latest
if: startsWith(github.repository, 'zzzgydi')
if: startsWith(github.repository, 'wonfen')
steps:
- name: Checkout repository
uses: actions/checkout@v4

View File

@ -6,66 +6,41 @@
</h1>
<h3 align="center">
A <a href="https://github.com/Dreamacro/clash">Clash</a> GUI based on <a href="https://github.com/tauri-apps/tauri">tauri</a>.
A 接盘 Clash Meta GUI based on <a href="https://github.com/tauri-apps/tauri">tauri</a>.
</h3>
## Features
- Full `clash` config supported, Partial `clash premium` config supported.
- Profiles management and enhancement (by yaml and Javascript). [Doc](https://github.com/zzzgydi/clash-verge/wiki/%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97)
- Since the clash core has been removed. The project no longer maintains the clash core, but only the Clash Meta core.
- Profiles management and enhancement (by yaml and Javascript). [Doc](https://github.com/wonfen/clash-verge-rev/wiki/%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97)
- Simple UI and supports custom theme color.
- Built-in support [Clash.Meta](https://github.com/MetaCubeX/Clash.Meta) core.
- System proxy setting and guard.
## Promotion
[狗狗加速 —— 技术流机场 Doggygo VPN](https://dg1.top)
[狗狗加速 —— 技术流机场 Doggygo VPN](https://狗狗加速.com)
- High-performance overseas VPN, free trial, discounted packages, unlock streaming media, the world's first to support Hysteria protocol.
- 高性能海外机场,免费试用,优惠套餐,解锁流媒体,全球首家支持 Hysteria 协议。
- 使用 Clash Verge 专属邀请链接注册送 15 天,每天 1G 流量免费试用https://panel.dg1.top/#/register?code=sFCDayZf
<details>
<summary>Promotion Detail</summary>
- 使用 Clash Verge 专属邀请链接注册送 3 天,每天 1G 流量免费试用https://verge.狗狗加速.com/#/register?code=oaxsAGo6
- Clash Verge 专属 8 折优惠码: verge20 (仅有 500 份)
- 优惠套餐每月仅需 15.8 元160G 流量,年付 8 折
- 海外团队,无跑路风险,高达 50% 返佣
- 集群负载均衡设计,高速专线(兼容老客户端)极低延迟无视晚高峰4K 秒开
- 全球首家 Hysteria 协议机场,将在今年 10 月上线更快的 `tuic` 协议(Clash Verge 客户端最佳搭配)
- 全球首家 Hysteria 协议机场,现已上线更快的 `Hysteria2` 协议(Clash Verge 客户端最佳搭配)
- 解锁流媒体及 ChatGPT
- 官网https://dg1.top
</details>
<br />
[EEVPN —— 海外运营机场 ※ 支持 ChatGPT](https://www.eejsq.net/#/register?code=yRr6qBO3)
- 年付低至 9.99 元,价格低,速度不减
<details>
<summary>Promotion Detail</summary>
- 中国大陆 BGP 网络接入
- IEPL 专线网络
- 最高 2500Mbps 速率可用
- 不限制在线客户端
- 解锁流媒体及 ChatGPT
- 海外运营 数据安全
</details>
- 官网https://狗狗加速.com
## Install
Download from [release](https://github.com/zzzgydi/clash-verge/releases). Supports Windows x64, Linux x86_64 and macOS 11+
Download from [release](https://github.com/wonfen/clash-verge-rev/releases). Supports Windows x64, Linux x86_64 and macOS 11+
- [Windows x64](https://github.com/zzzgydi/clash-verge/releases/download/v1.3.8/Clash.Verge_1.3.8_x64_en-US.msi)
- [macOS intel](https://github.com/zzzgydi/clash-verge/releases/download/v1.3.8/Clash.Verge_1.3.8_x64.dmg)
- [macOS arm](https://github.com/zzzgydi/clash-verge/releases/download/v1.3.8/Clash.Verge_1.3.8_aarch64.dmg)
- [Linux AppImage](https://github.com/zzzgydi/clash-verge/releases/download/v1.3.8/clash-verge_1.3.8_amd64.AppImage)
- [Linux deb](https://github.com/zzzgydi/clash-verge/releases/download/v1.3.8/clash-verge_1.3.8_amd64.deb)
- [Fedora Linux](https://github.com/zzzgydi/clash-verge/issues/352)
- [Windows x64](https://github.com/wonfen/clash-verge-rev/releases/download/v1.3.9/Clash.Verge_1.3.9_x64_en-US.msi)
- [macOS intel](https://github.com/wonfen/clash-verge-rev/releases/download/v1.3.9/Clash.Verge_1.3.9_x64.dmg)
- [macOS arm](https://github.com/wonfen/clash-verge-rev/releases/download/v1.3.9/Clash.Verge_1.3.9_aarch64.dmg)
- [Linux AppImage](https://github.com/wonfen/clash-verge-rev/releases/download/v1.3.9/clash-verge_1.3.9_amd64.AppImage)
- [Linux deb](https://github.com/wonfen/clash-verge-rev/releases/download/v1.3.9/clash-verge_1.3.9_amd64.deb)
- [Fedora Linux](https://github.com/wonfen/clash-verge-rev/issues/352)
Or you can build it yourself. Supports Windows, Linux and macOS 10.15+
@ -85,7 +60,7 @@ You should install Rust and Nodejs, see [here](https://tauri.app/v1/guides/getti
yarn install
```
Then download the clash binary... Or you can download it from [clash premium release](https://github.com/Dreamacro/clash/releases/tag/premium) and rename it according to [tauri config](https://tauri.studio/docs/api/config/#tauri.bundle.externalBin).
Then download the clash binary... Or you can download it from [clash meta release](https://github.com/MetaCubeX/Clash.Meta/releases) and rename it according to [tauri config](https://tauri.studio/docs/api/config/#tauri.bundle.externalBin).
```shell
# force update to latest version

View File

@ -1,3 +1,13 @@
## v1.3.9
### Features
- update clash meta core to newest 虚空终端
- delete clash core, no longer maintain
- small changes here and there
---
## v1.3.8
### Features

View File

@ -1,6 +1,6 @@
{
"name": "clash-verge",
"version": "1.3.8",
"version": "1.3.9",
"license": "GPL-3.0",
"scripts": {
"dev": "tauri dev",

View File

@ -14,7 +14,7 @@ const SIDECAR_HOST = execSync("rustc -vV")
.toString()
.match(/(?<=host: ).+(?=\s*)/g)[0];
/* ======= clash ======= */
/* ======= clash =======
const CLASH_STORAGE_PREFIX = "https://release.dreamacro.workers.dev/";
const CLASH_URL_PREFIX =
"https://github.com/Dreamacro/clash/releases/download/premium/";
@ -27,31 +27,33 @@ const CLASH_MAP = {
"linux-x64": "clash-linux-amd64",
"linux-arm64": "clash-linux-arm64",
};
*/
/* ======= clash meta ======= */
const META_URL_PREFIX = `https://github.com/MetaCubeX/Clash.Meta/releases/download/`;
const META_VERSION = "v1.16.0";
const META_URL_PREFIX = `https://github.com/wonfen/Clash.Meta/releases/download/`;
const META_VERSION = "2023.11.22";
const META_MAP = {
"win32-x64": "clash.meta-windows-amd64-compatible",
"win32-x64": "clash.meta-windows-amd64",
"darwin-x64": "clash.meta-darwin-amd64",
"darwin-arm64": "clash.meta-darwin-arm64",
"linux-x64": "clash.meta-linux-amd64-compatible",
"linux-x64": "clash.meta-linux-amd64",
"linux-arm64": "clash.meta-linux-arm64",
};
/**
/*
* check available
*/
const { platform, arch } = process;
/*
if (!CLASH_MAP[`${platform}-${arch}`]) {
throw new Error(`clash unsupported platform "${platform}-${arch}"`);
}
*/
if (!META_MAP[`${platform}-${arch}`]) {
throw new Error(`clash meta unsupported platform "${platform}-${arch}"`);
}
/*
function clash() {
const name = CLASH_MAP[`${platform}-${arch}`];
@ -87,7 +89,7 @@ function clashS3() {
downloadURL,
};
}
*/
function clashMeta() {
const name = META_MAP[`${platform}-${arch}`];
const isWin = platform === "win32";
@ -182,7 +184,7 @@ async function resolveClash() {
/**
* only Windows
* get the wintun.dll (not required)
*/
async function resolveWintun() {
const { platform } = process;
@ -217,7 +219,7 @@ async function resolveWintun() {
console.log(`[INFO]: resolve wintun.dll finished`);
}
*/
/**
* download the file to the resources dir
*/
@ -286,7 +288,7 @@ const resolveUninstall = () =>
const resolveMmdb = () =>
resolveResource({
file: "Country.mmdb",
downloadURL: `https://github.com/Dreamacro/maxmind-geoip/releases/download/20230812/Country.mmdb`,
downloadURL: `https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/country.mmdb`,
});
const resolveGeosite = () =>
resolveResource({
@ -300,9 +302,9 @@ const resolveGeoIP = () =>
});
const tasks = [
{ name: "clash", func: () => resolveSidecar(clashS3()), retry: 5 },
// { name: "clash", func: resolveClash, retry: 5 },
{ name: "clash-meta", func: () => resolveSidecar(clashMeta()), retry: 5 },
{ name: "wintun", func: resolveWintun, retry: 5, winOnly: true },
// { name: "wintun", func: resolveWintun, retry: 5, winOnly: true },
{ name: "service", func: resolveService, retry: 5, winOnly: true },
{ name: "install", func: resolveInstall, retry: 5, winOnly: true },
{ name: "uninstall", func: resolveUninstall, retry: 5, winOnly: true },

View File

@ -18,7 +18,7 @@ async function resolvePortable() {
const zip = new AdmZip();
zip.addLocalFile(path.join(releaseDir, "Clash Verge.exe"));
zip.addLocalFile(path.join(releaseDir, "clash.exe"));
// zip.addLocalFile(path.join(releaseDir, "clash.exe"));
zip.addLocalFile(path.join(releaseDir, "clash-meta.exe"));
zip.addLocalFolder(path.join(releaseDir, "resources"), "resources");

View File

@ -120,7 +120,8 @@ async function resolveUpdater() {
Object.entries(updateDataNew.platforms).forEach(([key, value]) => {
if (value.url) {
updateDataNew.platforms[key].url = "https://ghproxy.com/" + value.url;
updateDataNew.platforms[key].url =
"https://mirror.ghproxy.com/" + value.url;
} else {
console.log(`[Error]: updateDataNew.platforms.${key} is null`);
}

2063
src-tauri/Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,10 @@
[package]
name = "clash-verge"
version = "0.1.0"
version = "1.3.9"
description = "clash verge"
authors = ["zzzgydi"]
license = "GPL-3.0"
repository = "https://github.com/zzzgydi/clash-verge.git"
repository = "https://github.com/wonfen/clash-verge-rev.git"
default-run = "clash-verge"
edition = "2021"
build = "build.rs"

View File

@ -45,7 +45,7 @@ impl Config {
Self::global().runtime_config.clone()
}
/// 初始化配置
/// 初始化订阅
pub fn init_config() -> Result<()> {
crate::log_err!(Self::generate());
if let Err(err) = Self::generate_file(ConfigType::Run) {
@ -64,7 +64,7 @@ impl Config {
Ok(())
}
/// 将配置丢到对应的文件中
/// 将订阅丢到对应的文件中
pub fn generate_file(typ: ConfigType) -> Result<PathBuf> {
let path = match typ {
ConfigType::Run => dirs::app_home_dir()?.join(RUNTIME_CONFIG),
@ -82,7 +82,7 @@ impl Config {
Ok(path)
}
/// 生成配置存好
/// 生成订阅存好
pub fn generate() -> Result<()> {
let (config, exists_keys, logs) = enhance::enhance();

View File

@ -261,7 +261,7 @@ impl IProfiles {
Ok(current == uid)
}
/// 获取current指向的配置内容
/// 获取current指向的订阅内容
pub fn current_mapping(&self) -> Result<Mapping> {
match (self.current.as_ref(), self.items.as_ref()) {
(Some(current), Some(items)) => {

View File

@ -5,7 +5,7 @@ use std::collections::HashMap;
#[derive(Default, Debug, Clone, Deserialize, Serialize)]
pub struct IRuntime {
pub config: Option<Mapping>,
// 记录在配置包括merge和script生成的出现过的keys
// 记录在订阅包括merge和script生成的出现过的keys
// 这些keys不一定都生效
pub exists_keys: Vec<String>,
pub chain_logs: HashMap<String, Vec<(String, String)>>,

View File

@ -48,7 +48,7 @@ pub async fn get_proxy_delay(name: String, test_url: Option<String>) -> Result<D
let (url, headers) = clash_client_info()?;
let url = format!("{url}/proxies/{name}/delay");
let default_url = "http://www.gstatic.com/generate_204";
let default_url = "http://1.1.1.1";
let test_url = test_url
.map(|s| if s.is_empty() { default_url.into() } else { s })
.unwrap_or(default_url.into());

View File

@ -51,7 +51,7 @@ impl CoreManager {
Ok(())
}
/// 检查配置是否正确
/// 检查订阅是否正确
pub fn check_config(&self) -> Result<()> {
let config_path = Config::generate_file(ConfigType::Check)?;
let config_path = dirs::path_to_str(&config_path)?;
@ -267,7 +267,7 @@ impl CoreManager {
Config::verge().draft().clash_core = Some(clash_core);
// 更新配置
// 更新订阅
Config::generate()?;
self.check_config()?;
@ -295,13 +295,13 @@ impl CoreManager {
pub async fn update_config(&self) -> Result<()> {
log::debug!(target: "app", "try to update clash config");
// 更新配置
// 更新订阅
Config::generate()?;
// 检查配置是否正常
// 检查订阅是否正常
self.check_config()?;
// 更新运行时配置
// 更新运行时订阅
let path = Config::generate_file(ConfigType::Run)?;
let path = dirs::path_to_str(&path)?;

View File

@ -18,9 +18,9 @@ use std::collections::HashSet;
type ResultLog = Vec<(String, String)>;
/// Enhance mode
/// 返回最终配置、该配置包含的键、和script执行的结果
/// 返回最终订阅、该订阅包含的键、和script执行的结果
pub fn enhance() -> (Mapping, Vec<String>, HashMap<String, ResultLog>) {
// config.yaml 的配置
// config.yaml 的订阅
let clash_config = { Config::clash().latest().0.clone() };
let (clash_core, enable_tun, enable_builtin, enable_filter) = {

View File

@ -47,7 +47,7 @@ pub fn change_clash_mode(mode: String) {
match clash_api::patch_configs(&mapping).await {
Ok(_) => {
// 更新配置
// 更新订阅
Config::clash().data().patch_config(mapping);
if Config::clash().data().save_config().is_ok() {
@ -156,7 +156,7 @@ pub fn disable_tun_mode() {
});
}
/// 修改clash的配置
/// 修改clash的订阅
pub async fn patch_clash(patch: Mapping) -> Result<()> {
Config::clash().draft().patch_config(patch.clone());
@ -175,7 +175,7 @@ pub async fn patch_clash(patch: Mapping) -> Result<()> {
}
};
// 激活配置
// 激活订阅
if mixed_port.is_some()
|| patch.get("secret").is_some()
|| patch.get("external-controller").is_some()
@ -210,7 +210,7 @@ pub async fn patch_clash(patch: Mapping) -> Result<()> {
}
}
/// 修改verge的配置
/// 修改verge的订阅
/// 一般都是一个个的修改
pub async fn patch_verge(patch: IVerge) -> Result<()> {
Config::verge().draft().patch_config(patch.clone());
@ -278,7 +278,7 @@ pub async fn patch_verge(patch: IVerge) -> Result<()> {
}
/// 更新某个profile
/// 如果更新当前配置就激活配置
/// 如果更新当前订阅就激活订阅
pub async fn update_profile(uid: String, option: Option<PrfOption>) -> Result<()> {
let url_opt = {
let profiles = Config::profiles();
@ -316,7 +316,7 @@ pub async fn update_profile(uid: String, option: Option<PrfOption>) -> Result<()
Ok(())
}
/// 更新配置
/// 更新订阅
async fn update_core_config() -> Result<()> {
match CoreManager::global().update_config().await {
Ok(_) => {

View File

@ -197,7 +197,7 @@ pub fn init_resources(package_info: &PackageInfo) -> Result<()> {
}
#[cfg(target_os = "windows")]
let file_list = ["Country.mmdb", "geoip.dat", "geosite.dat", "wintun.dll"];
let file_list = ["Country.mmdb", "geoip.dat", "geosite.dat"];
#[cfg(not(target_os = "windows"))]
let file_list = ["Country.mmdb", "geoip.dat", "geosite.dat"];

View File

@ -1,7 +1,7 @@
{
"package": {
"productName": "Clash Verge",
"version": "1.3.8"
"version": "1.3.9"
},
"build": {
"distDir": "../dist",
@ -26,7 +26,7 @@
"icons/icon.ico"
],
"resources": ["resources"],
"externalBin": ["sidecar/clash", "sidecar/clash-meta"],
"externalBin": ["sidecar/clash-meta"],
"copyright": "© 2022 zzzgydi All Rights Reserved",
"category": "DeveloperTool",
"shortDescription": "A Clash GUI based on tauri.",
@ -53,11 +53,11 @@
"updater": {
"active": true,
"endpoints": [
"https://ghproxy.com/https://github.com/zzzgydi/clash-verge/releases/download/updater/update-proxy.json",
"https://github.com/zzzgydi/clash-verge/releases/download/updater/update.json"
"https://mirror.ghproxy.com/https://github.com/wonfen/clash-verge-rev/releases/download/updater/update-proxy.json",
"https://github.com/wonfen/clash-verge-rev/releases/download/updater/update.json"
],
"dialog": false,
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDExNUFBNTBBN0FDNEFBRTUKUldUbHFzUjZDcVZhRVRJM25NS3NkSFlFVElxUkNZMzZ6bHUwRVJjb2F3alJXVzRaeDdSaTA2YWYK"
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEQyOEMyRjBCQkVGOUJEREYKUldUZnZmbStDeStNMHU5Mmo1N24xQXZwSVRYbXA2NUpzZE5oVzlqeS9Bc0t6RVV4MmtwVjBZaHgK"
},
"allowlist": {
"shell": {

View File

@ -112,8 +112,8 @@ export const ProfileItem = (props: Props) => {
});
/// 0 不使用任何代理
/// 1 使用配置好的代理
/// 2 至少使用一个代理,根据配置,如果没配置,默认使用系统代理
/// 1 使用订阅好的代理
/// 2 至少使用一个代理,根据订阅,如果没订阅,默认使用系统代理
const onUpdate = useLockFn(async (type: 0 | 1 | 2) => {
setAnchorEl(null);
setLoadingCache((cache) => ({ ...cache, [itemData.uid]: true }));

View File

@ -21,7 +21,7 @@ export const MiscViewer = forwardRef<DialogRef>((props, ref) => {
const [values, setValues] = useState({
appLogLevel: "info",
autoCloseConnection: false,
enableClashFields: true,
enableClashFields: false,
enableBuiltinEnhanced: true,
proxyLayoutColumn: 6,
defaultLatencyTest: "",
@ -33,8 +33,8 @@ export const MiscViewer = forwardRef<DialogRef>((props, ref) => {
setOpen(true);
setValues({
appLogLevel: verge?.app_log_level ?? "info",
autoCloseConnection: verge?.auto_close_connection ?? false,
enableClashFields: verge?.enable_clash_fields ?? true,
autoCloseConnection: verge?.auto_close_connection ?? true,
enableClashFields: verge?.enable_clash_fields ?? false,
enableBuiltinEnhanced: verge?.enable_builtin_enhanced ?? true,
proxyLayoutColumn: verge?.proxy_layout_column || 6,
defaultLatencyTest: verge?.default_latency_test || "",
@ -187,7 +187,7 @@ export const MiscViewer = forwardRef<DialogRef>((props, ref) => {
spellCheck="false"
sx={{ width: 250 }}
value={values.defaultLatencyTest}
placeholder="http://www.gstatic.com/generate_204"
placeholder="http://1.1.1.1"
onChange={(e) =>
setValues((v) => ({ ...v, defaultLatencyTest: e.target.value }))
}

View File

@ -1,6 +1,6 @@
{
"Label-Proxies": "代 理",
"Label-Profiles": "配 置",
"Label-Profiles": "订 阅",
"Label-Connections": "连 接",
"Label-Logs": "日 志",
"Label-Rules": "规 则",
@ -16,11 +16,11 @@
"direct": "直连",
"script": "脚本",
"Profiles": "配置",
"Profile URL": "配置文件链接",
"Profiles": "订阅",
"Profile URL": "订阅文件链接",
"Import": "导入",
"New": "新建",
"Create Profile": "新建配置",
"Create Profile": "新建订阅",
"Choose File": "选择文件",
"Close All": "关闭全部",
"Select": "使用",
@ -35,9 +35,9 @@
"Refresh": "刷新",
"To Top": "移到最前",
"To End": "移到末尾",
"Update All Profiles": "更新所有配置",
"View Runtime Config": "查看运行时配置",
"Reactivate Profiles": "重新激活配置",
"Update All Profiles": "更新所有订阅",
"View Runtime Config": "查看运行时订阅",
"Reactivate Profiles": "重新激活订阅",
"Location": "当前节点",
"Delay check": "延迟测试",
@ -48,7 +48,7 @@
"Proxy detail": "展示节点细节",
"Filter": "过滤节点",
"Filter conditions": "过滤条件",
"Refresh profiles": "刷新配置",
"Refresh profiles": "刷新订阅",
"Type": "类型",
"Name": "名称",
@ -96,7 +96,7 @@
"theme.dark": "深色",
"theme.system": "系统",
"Clash Field": "Clash 字段",
"Runtime Config": "运行配置",
"Runtime Config": "运行订阅",
"ReadOnly": "只读",
"Restart": "重启内核",

View File

@ -8,7 +8,7 @@ export const defaultTheme = {
error_color: "#d32f2f",
warning_color: "#ed6c02",
success_color: "#2e7d32",
font_family: `"Roboto", "Helvetica", "Arial", sans-serif`,
font_family: `"Roboto", "Helvetica", "Arial", sans-serif, "twemoji mozilla"`,
};
// dark mode

View File

@ -168,7 +168,7 @@ const ProfilePage = () => {
mutateLogs();
});
// 更新所有配置
// 更新所有订阅
const setLoadingCache = useSetRecoilState(atomLoadingCache);
const onUpdateAll = useLockFn(async () => {
const throttleMutate = throttle(mutateProfiles, 2000, {
@ -185,7 +185,7 @@ const ProfilePage = () => {
return new Promise((resolve) => {
setLoadingCache((cache) => {
// 获取没有正在更新的配置
// 获取没有正在更新的订阅
const items = regularItems.filter(
(e) => e.type === "remote" && !cache[e.uid]
);

View File

@ -16,7 +16,7 @@ const SettingPage = () => {
};
const toGithubRepo = useLockFn(() => {
return openWebUrl("https://github.com/zzzgydi/clash-verge");
return openWebUrl("https://github.com/wonfen/clash-verge-rev");
});
return (
@ -26,7 +26,7 @@ const SettingPage = () => {
<IconButton
size="small"
color="inherit"
title="@zzzgydi/clash-verge"
title="@wonfen/clash-verge-rev"
onClick={toGithubRepo}
>
<GitHub fontSize="inherit" />

View File

@ -66,7 +66,7 @@ export const getRules = async () => {
export const getProxyDelay = async (name: string, url?: string) => {
const params = {
timeout: 10000,
url: url || "http://www.gstatic.com/generate_204",
url: url || "http://1.1.1.1",
};
const instance = await getAxios();
const result = await instance.get(

View File

@ -116,10 +116,10 @@ class DelayManager {
}
formatDelayColor(delay: number) {
if (delay <= 0) return "text.secondary";
if (delay >= 10000) return "error.main";
/*if (delay <= 0) return "text.secondary";
if (delay > 500) return "warning.main";
if (delay > 100) return "text.secondary";
if (delay > 100) return "text.secondary";*/
return "success.main";
}
}