diff --git a/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Dtos/GetSpaceInfoFullDto.cs b/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Dtos/GetSpaceInfoFullDto.cs
new file mode 100644
index 000000000..0f388ec9a
--- /dev/null
+++ b/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Dtos/GetSpaceInfoFullDto.cs
@@ -0,0 +1,12 @@
+namespace Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos;
+
+public class GetSpaceInfoDto
+{
+ public long mid { get; set; }
+}
+public class GetSpaceInfoFullDto : GetSpaceInfoDto
+{
+ public string w_rid { get; set; }
+
+ public long wts { get; set; }
+}
diff --git a/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IUserInfoApi.cs b/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IUserInfoApi.cs
index 1feb2176b..656972769 100644
--- a/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IUserInfoApi.cs
+++ b/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IUserInfoApi.cs
@@ -26,7 +26,7 @@ public interface IUserInfoApi : IBiliBiliApi
///
/// uid
///
- [HttpGet("/x/space/wbi/acc/info?mid={userId}")]
- Task> GetSpaceInfo(long userId);
+ [HttpGet("/x/space/wbi/acc/info")]
+ Task> GetSpaceInfo([PathQuery] GetSpaceInfoFullDto request);
}
}
diff --git a/src/Ray.BiliBiliTool.DomainService/LiveDomainService.cs b/src/Ray.BiliBiliTool.DomainService/LiveDomainService.cs
index 389d2e36a..71e9fe23f 100644
--- a/src/Ray.BiliBiliTool.DomainService/LiveDomainService.cs
+++ b/src/Ray.BiliBiliTool.DomainService/LiveDomainService.cs
@@ -33,7 +33,7 @@ public class LiveDomainService : ILiveDomainService
private readonly DailyTaskOptions _dailyTaskOptions;
private readonly SecurityOptions _securityOptions;
private readonly BiliCookie _biliCookie;
-
+ private readonly IWbiDomainService _wbiDomainService;
public LiveDomainService(ILogger logger,
ILiveApi liveApi,
@@ -44,6 +44,7 @@ public LiveDomainService(ILogger logger,
IOptionsMonitor liveLotteryTaskOptions,
IOptionsMonitor liveFansMedalTaskOptions,
IOptionsMonitor securityOptions,
+ IWbiDomainService wbiDomainService,
BiliCookie biliCookie)
{
_logger = logger;
@@ -55,6 +56,7 @@ public LiveDomainService(ILogger logger,
_dailyTaskOptions = dailyTaskOptions.CurrentValue;
_liveFansMedalTaskOptions = liveFansMedalTaskOptions.CurrentValue;
_securityOptions = securityOptions.CurrentValue;
+ _wbiDomainService = wbiDomainService;
_biliCookie = biliCookie;
}
@@ -407,7 +409,20 @@ public async Task SendDanmakuToFansMedalLive()
// 通过空间主页信息获取直播间 id
var liveHostUserId = medal.Medal_info.Target_id;
- var spaceInfo = await _userInfoApi.GetSpaceInfo(liveHostUserId);
+ var req = new GetSpaceInfoDto()
+ {
+ mid = liveHostUserId
+ };
+
+
+ var w_ridDto = await _wbiDomainService.GetWridAsync(req);
+ var fullDto = new GetSpaceInfoFullDto()
+ {
+ mid = liveHostUserId,
+ w_rid = w_ridDto.w_rid,
+ wts = w_ridDto.wts
+ };
+ var spaceInfo = await _userInfoApi.GetSpaceInfo(fullDto);
if (spaceInfo.Code != 0)
{
_logger.LogError("【获取直播间信息】失败");
@@ -578,7 +593,20 @@ private async Task> GetFansMedalInfoList()
// 通过空间主页信息获取直播间 id
var liveHostUserId = medal.Medal_info.Target_id;
- var spaceInfo = await _userInfoApi.GetSpaceInfo(liveHostUserId);
+ var req = new GetSpaceInfoDto()
+ {
+ mid = liveHostUserId
+ };
+
+
+ var w_ridDto = await _wbiDomainService.GetWridAsync(req);
+ var fullDto = new GetSpaceInfoFullDto()
+ {
+ mid = liveHostUserId,
+ w_rid = w_ridDto.w_rid,
+ wts = w_ridDto.wts
+ };
+ var spaceInfo = await _userInfoApi.GetSpaceInfo(fullDto);
if (spaceInfo.Code != 0)
{
_logger.LogError("【获取空间信息】失败");
diff --git a/test/BiliAgentTest/LiveApiTest.cs b/test/BiliAgentTest/LiveApiTest.cs
index c1114748c..5cbf686d8 100644
--- a/test/BiliAgentTest/LiveApiTest.cs
+++ b/test/BiliAgentTest/LiveApiTest.cs
@@ -10,6 +10,7 @@
using System.Threading.Tasks;
using Ray.BiliBiliTool.Infrastructure.Cookie;
using Xunit;
+using Ray.BiliBiliTool.DomainService.Interfaces;
namespace BiliAgentTest
{
@@ -123,7 +124,7 @@ public void WearMedalWall_Normal_Success()
}
[Fact]
- public void GetSpaceInfo_Normal_Success()
+ public async Task GetSpaceInfo_Normal_Success()
{
using var scope = Global.ServiceProviderRoot.CreateScope();
@@ -131,7 +132,25 @@ public void GetSpaceInfo_Normal_Success()
var api = scope.ServiceProvider.GetRequiredService();
var biliCookie = scope.ServiceProvider.GetRequiredService();
- BiliApiResponse re = api.GetSpaceInfo(919174).Result;
+ var domainService = scope.ServiceProvider.GetRequiredService();
+
+ var req = new GetSpaceInfoDto()
+ {
+ mid = 919174L
+ };
+
+ var w_ridDto = await domainService.GetWridAsync(req);
+
+ var fullDto = new GetSpaceInfoFullDto()
+ {
+ mid = 919174L,
+ w_rid = w_ridDto.w_rid,
+ wts = w_ridDto.wts
+ };
+
+
+
+ BiliApiResponse re = api.GetSpaceInfo(fullDto).Result;
Assert.True(re.Code == 0);
Assert.NotNull(re.Data);