M207: UA 收成一份带联系方式 + 两处字符串副本(gh_proxy 键、用例注释)
1) UA 只有一份定义:core 的 `download::http::USER_AGENT` (`Unlucky-Launcher/<CARGO_PKG_VERSION> (+仓库 URL)`,不用邮箱)。 - 引擎侧:`EngineConfig::default().user_agent` 直接取它(config.rs 等量替换,仍是 400 行) - 带 header 侧:presenter 不再持有 UA 字面量,`get_with_headers` 发 `engine.config().user_agent` M205 复审核实过的缺口:Modrinth 收到的是引擎那份 `UnluckyLauncher/<ver>`(无连字符、无联系方式), 带联系方式的那份只发给 CurseForge 搜索 —— Modrinth 的 UA 政策在真正会被限流的路径上没被满足。 断言:core 一条钉形状(版本 == CARGO_PKG_VERSION、联系方式段 == 仓库 URL、不含 `@`); presenter 一条在回环上抓**发出去的字节**(两条路径的 UA 逐字节相同且 == EngineConfig::default())。 2) `app-iced/.../java/downloads/engine.rs`:`"download.gh_proxy"` 字面量改成 `KEY_GH_PROXY`。 3) `presenter/src/host/addon/http.rs` 的用例注释改成事实(Modrinth 走 core 的 EngineTransport, `get` 的无 header 分支生产零调用者),模块说明表格同步。 4) `docs/download-settings.md`:§6.1 / §6.1.1 / §7 按 M201(iced 真控件 + 快照通路)之后的现状重写。
This commit is contained in:
1 parent
a853986283
commit
e3ae71ac37
5 files changed
+184
-91
No files matched your search
@@ -24,6 +24,7 @@ use std::path::Path;
|
||||
use std::sync::Arc;
|
||||
|
||||
use unlucky_core::download::cache::now_ms;
|
||||
use unlucky_core::download::config::KEY_GH_PROXY;
|
||||
use unlucky_core::download::region::{decide_from, load_cached};
|
||||
use unlucky_core::download::region_system::detect_signals;
|
||||
use unlucky_core::download::{
|
||||
@@ -65,15 +66,14 @@ pub fn gh_proxy_from(raw: &str) -> GhProxy {
|
||||
}
|
||||
|
||||
/// 从 `launcher.json` 读 `download.gh_proxy`(读不到 / 没有文件 = 跟随内置默认)。
|
||||
///
|
||||
/// 键名走 core 的 [`KEY_GH_PROXY`],不写字面量:同一件事的第二个字符串就是下一次「改名只改一处」的种子
|
||||
/// (M207:重试次数、UA 之后又一处副本)。绑定关系由 core 的
|
||||
/// `setting::keys::proxy::the_gh_proxy_key_is_bound_to_the_schema_registration` 钉住。
|
||||
#[must_use]
|
||||
pub fn gh_proxy_of_config(config: &Path) -> GhProxy {
|
||||
let store = SettingStore::load(config, launcher_schema());
|
||||
gh_proxy_from(
|
||||
store
|
||||
.doc()
|
||||
.effective_str("download.gh_proxy")
|
||||
.unwrap_or_default(),
|
||||
)
|
||||
gh_proxy_from(store.doc().effective_str(KEY_GH_PROXY).unwrap_or_default())
|
||||
}
|
||||
|
||||
/// 带进度发射器的引擎(装配口径与 `download::shared::build` 一致,只多挂一个 emitter + gh-proxy 覆盖)。
|
||||
|
||||
Reference in new issue
Block a user