fix: 修复未登录时UP投稿搜索无法使用的问题

This commit is contained in:
lanyeeee
2025-08-19 07:22:18 +08:00
parent fa27007eb9
commit 703723dfaa
3 changed files with 23 additions and 0 deletions
+2
View File
@@ -286,6 +286,7 @@ name = "bilibili-video-downloader"
version = "0.1.0"
dependencies = [
"anyhow",
"base64 0.22.1",
"byteorder",
"bytes",
"chrono",
@@ -297,6 +298,7 @@ dependencies = [
"num_enum",
"parking_lot 0.12.4",
"prost",
"rand 0.9.1",
"reqwest",
"reqwest-middleware",
"reqwest-retry",
+2
View File
@@ -53,6 +53,8 @@ yaserde = { version = "0.12.0", features = ["yaserde_derive"] }
float-ord = { version = "0.3.2" }
memchr = { version = "2.7.5" }
md-5 = { version = "0.10.6" }
rand = { version = "0.9.1" }
base64 = { version = "0.22.1" }
[profile.release]
strip = true
+19
View File
@@ -1,6 +1,7 @@
use std::time::Duration;
use anyhow::{anyhow, Context};
use base64::{engine::general_purpose, Engine};
use bytes::Bytes;
use parking_lot::RwLock;
use prost::Message;
@@ -296,10 +297,28 @@ impl BiliClient {
&self,
params: GetUserVideoInfoParams,
) -> anyhow::Result<UserVideoInfo> {
const DM_IMG_INTER: &str = r#"{"ds":[],"wh":[0,0,0],"of":[0,0,0]}"#;
fn random_base64() -> String {
let random_bytes: Vec<u8> = (0..48).map(|_| rand::random_range(32..=127)).collect();
general_purpose::STANDARD.encode(&random_bytes)
}
let mut dm_img_str = random_base64();
dm_img_str.truncate(dm_img_str.len() - 2);
let mut dm_cover_img_str = random_base64();
dm_cover_img_str.truncate(dm_cover_img_str.len() - 2);
let mut params: Vec<(&str, String)> = vec![
("pn", params.pn.to_string()),
("ps", "42".to_string()),
("mid", params.mid.to_string()),
("dm_img_list", "[]".to_string()),
("dm_img_str", dm_img_str),
("dm_cover_img_str", dm_cover_img_str),
("dm_img_inter", DM_IMG_INTER.to_string()),
];
self.wbi(&mut params).await?;