feat: only query userinfo once

This commit is contained in:
Xinrea
2025-10-28 23:31:15 +08:00
parent 55d872a38c
commit 4058b425c8
4 changed files with 18 additions and 15 deletions

View File

@@ -1,7 +1,7 @@
{
"name": "bili-shadowreplay",
"private": true,
"version": "2.15.4",
"version": "2.15.5",
"type": "module",
"scripts": {
"dev": "vite",

2
src-tauri/Cargo.lock generated
View File

@@ -541,7 +541,7 @@ checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba"
[[package]]
name = "bili-shadowreplay"
version = "2.15.4"
version = "2.15.5"
dependencies = [
"async-ffmpeg-sidecar 0.0.1",
"async-std",

View File

@@ -4,7 +4,7 @@ resolver = "2"
[package]
name = "bili-shadowreplay"
version = "2.15.4"
version = "2.15.5"
description = "BiliBili ShadowReplay"
authors = ["Xinrea"]
license = ""

View File

@@ -109,19 +109,22 @@ impl BiliRecorder {
room_cover: room_info.room_cover_url.clone(),
status: room_info.live_status == 1,
};
let user_id = room_info.user_id;
let user_info = api::get_user_info(&self.client, &self.account, user_id).await;
if let Ok(user_info) = user_info {
*self.user_info.write().await = UserInfo {
user_id: user_id.to_string(),
user_name: user_info.user_name,
user_avatar: user_info.user_avatar_url,
// Only update user info once
if self.user_info.read().await.user_id != room_info.user_id.to_string() {
let user_id = room_info.user_id;
let user_info = api::get_user_info(&self.client, &self.account, user_id).await;
if let Ok(user_info) = user_info {
*self.user_info.write().await = UserInfo {
user_id: user_id.to_string(),
user_name: user_info.user_name,
user_avatar: user_info.user_avatar_url,
}
} else {
self.log_error(&format!(
"Failed to get user info: {}",
user_info.err().unwrap()
));
}
} else {
self.log_error(&format!(
"Failed to get user info: {}",
user_info.err().unwrap()
));
}
let live_status = room_info.live_status == 1;