mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-05 01:13:44 +08:00
fix: #2609, avoid URL encoding issues by directly parsing query parameters
This commit is contained in:
parent
b5952f320b
commit
d3958594d9
@ -16,8 +16,10 @@
|
|||||||
- Linux 在系统服务模式下无法拉起 Mihomo 内核
|
- Linux 在系统服务模式下无法拉起 Mihomo 内核
|
||||||
- 使用异步操作,避免获取系统信息和切换代理模式可能带来的崩溃
|
- 使用异步操作,避免获取系统信息和切换代理模式可能带来的崩溃
|
||||||
- 相同节点名称可能导致的页面渲染出错
|
- 相同节点名称可能导致的页面渲染出错
|
||||||
|
- URL Schemes被截断的问题
|
||||||
|
|
||||||
#### 新增了:
|
#### 新增了:
|
||||||
|
- Mihomo(Meta)内核升级至 1.19.4
|
||||||
- Clash Verge Rev 从现在开始不再强依赖系统服务和管理权限
|
- Clash Verge Rev 从现在开始不再强依赖系统服务和管理权限
|
||||||
- 支持根据用户偏好选择Sidecar(用户空间)模式或安装服务
|
- 支持根据用户偏好选择Sidecar(用户空间)模式或安装服务
|
||||||
- 增加载入初始配置文件的错误提示,防止切换到错误的订阅配置
|
- 增加载入初始配置文件的错误提示,防止切换到错误的订阅配置
|
||||||
@ -37,6 +39,7 @@
|
|||||||
- MacOS 托盘速率更好的显示样式和更新逻辑
|
- MacOS 托盘速率更好的显示样式和更新逻辑
|
||||||
- 首页仅在有流量图表时显示流量图表区域
|
- 首页仅在有流量图表时显示流量图表区域
|
||||||
- 更新DNS默认覆写配置
|
- 更新DNS默认覆写配置
|
||||||
|
- 移除测试目录,简化资源初始化逻辑
|
||||||
|
|
||||||
## v2.2.2
|
## v2.2.2
|
||||||
|
|
||||||
|
@ -293,16 +293,22 @@ pub async fn resolve_scheme(param: String) -> Result<()> {
|
|||||||
.find(|(key, _)| key == "name")
|
.find(|(key, _)| key == "name")
|
||||||
.map(|(_, value)| value.into_owned());
|
.map(|(_, value)| value.into_owned());
|
||||||
|
|
||||||
let encode_url = link_parsed
|
// 通过直接获取查询部分并解析特定参数来避免 URL 转义问题
|
||||||
.query_pairs()
|
let url_param = if let Some(query) = link_parsed.query() {
|
||||||
.find(|(key, _)| key == "url")
|
let prefix = "url=";
|
||||||
.map(|(_, value)| value.into_owned());
|
if let Some(pos) = query.find(prefix) {
|
||||||
|
let raw_url = &query[pos + prefix.len()..];
|
||||||
|
Some(percent_decode_str(raw_url).decode_utf8_lossy().to_string())
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
};
|
||||||
|
|
||||||
match encode_url {
|
match url_param {
|
||||||
Some(url) => {
|
Some(url) => {
|
||||||
let url = percent_decode_str(url.as_ref())
|
log::info!(target:"app", "decoded subscription url: {}", url);
|
||||||
.decode_utf8_lossy()
|
|
||||||
.to_string();
|
|
||||||
|
|
||||||
create_window();
|
create_window();
|
||||||
match PrfItem::from_url(url.as_ref(), name, None, None).await {
|
match PrfItem::from_url(url.as_ref(), name, None, None).await {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user