feat: 支持未进行URL编码的SESSDATA

This commit is contained in:
lanyeeee
2026-08-16 06:06:58 +08:00
parent 608366a0bd
commit e8f29aa371
3 changed files with 14 additions and 1 deletions
+7
View File
@@ -323,6 +323,7 @@ dependencies = [
"tracing-appender",
"tracing-error",
"tracing-subscriber",
"urlencoding",
"uuid",
"yaserde",
]
@@ -5133,6 +5134,12 @@ dependencies = [
"serde",
]
[[package]]
name = "urlencoding"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
[[package]]
name = "urlpattern"
version = "0.3.0"
+1
View File
@@ -61,6 +61,7 @@ md-5 = { version = "0.10.6" }
rand = { version = "0.9.1" }
base64 = { version = "0.22.1" }
rayon = { version = "1.12.0" }
urlencoding = { version = "2.1.3" }
[profile.release]
strip = true
+6 -1
View File
@@ -1098,7 +1098,12 @@ impl BiliClient {
pub fn get_cookie(&self) -> String {
let sessdata = self.app.get_config().read().sessdata.clone();
format!("SESSDATA={}", sessdata.trim_end_matches(';'))
let trimmed = sessdata.trim_end_matches(';');
let decoded = urlencoding::decode(trimmed).unwrap_or_else(|_| trimmed.into());
let encoded = urlencoding::encode(&decoded);
format!("SESSDATA={encoded}")
}
}