Skip to content

Commit

Permalink
fix: refresh cookies won't use option's web baseurl
Browse files Browse the repository at this point in the history
  • Loading branch information
Misaka-L committed Aug 4, 2024
1 parent 772bbdd commit b33d743
Showing 1 changed file with 22 additions and 10 deletions.
32 changes: 22 additions & 10 deletions MisakaBiliCore/Services/BiliPassportService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
using System.Net.Http.Json;
using System.Text.RegularExpressions;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using MisakaBiliCore.Models;
using MisakaBiliCore.Models.BiliApi;
using MisakaBiliCore.Options;
using MisakaBiliCore.Services.BiliApi;
using MisakaBiliCore.Utils;

Expand All @@ -14,6 +16,7 @@ public partial class BiliPassportService(
IBiliApiServices biliApiServices,
IHttpClientFactory httpClientFactory,
BiliApiSecretStorageService biliApiSecretStorageService,
IOptions<ApiBaseUrlOptions> apiBaseUrlOptions,
ILogger<BiliPassportService> logger)
{
public event EventHandler? Login;
Expand Down Expand Up @@ -86,8 +89,9 @@ public async Task RefreshCookiesAsync()

logger.LogInformation("Start Refresh Cookies");

var correnspondPath = "https://www.bilibili.com/correspond/1/" +
CorrespondPathUtils.GetCorrespondPath(DateTimeOffset.Now - TimeSpan.FromMinutes(1));
var correnspondPath = new Uri(apiBaseUrlOptions.Value.BiliWebBaseUrl + "/correspond/1/" +
CorrespondPathUtils.GetCorrespondPath(
DateTimeOffset.Now - TimeSpan.FromMinutes(1)));

logger.LogDebug("Correspond Path: {Path}", correnspondPath);

Expand Down Expand Up @@ -136,7 +140,11 @@ public async Task<BiliTicketResponse> GetBiliTicketAsync()
{ "hexsign", message },
{ "context[ts]", dateTime.ToUnixTimeSeconds().ToString() },
{ "key_id", "ec02" },
{ "csrf", biliApiSecretStorageService.CookieContainer.GetAllCookies().FirstOrDefault(cookie => cookie.Name == "bili_jct")?.Value ?? "" }
{
"csrf",
biliApiSecretStorageService.CookieContainer.GetAllCookies()
.FirstOrDefault(cookie => cookie.Name == "bili_jct")?.Value ?? ""
}
}).ReadAsStringAsync();

logger.LogInformation("Getting BiliTicket...");
Expand All @@ -152,11 +160,13 @@ await httpClient.SendAsync(new HttpRequestMessage(HttpMethod.Post,
DateTimeOffset.FromUnixTimeSeconds(biliTicketResponse.Data.CreatedAt) +
TimeSpan.FromSeconds(biliTicketResponse.Data.Ttl);

biliApiSecretStorageService.CookieContainer.Add(new Cookie("bili_ticket", biliTicketResponse.Data.Ticket, "/", ".bilibili.com")
{
Expires = expiresAt.DateTime
});
biliApiSecretStorageService.CookieContainer.Add(new Cookie("bili_ticket_expires", expiresAt.ToUnixTimeSeconds().ToString(), "/",
biliApiSecretStorageService.CookieContainer.Add(
new Cookie("bili_ticket", biliTicketResponse.Data.Ticket, "/", ".bilibili.com")
{
Expires = expiresAt.DateTime
});
biliApiSecretStorageService.CookieContainer.Add(new Cookie("bili_ticket_expires",
expiresAt.ToUnixTimeSeconds().ToString(), "/",
".bilibili.com")
{
Expires = expiresAt.DateTime
Expand All @@ -174,8 +184,10 @@ public async Task<BiliNavMenuWbiImage> GetWbiKeysAsync()
{
var navMenu = await biliApiServices.GetNavMenu();

biliApiSecretStorageService.WbiImgKey = Path.GetFileNameWithoutExtension(new Uri(navMenu.Data.WbiImage.ImgUrl).AbsolutePath);
biliApiSecretStorageService.WbiSubKey = Path.GetFileNameWithoutExtension(new Uri(navMenu.Data.WbiImage.SubUrl).AbsolutePath);
biliApiSecretStorageService.WbiImgKey =
Path.GetFileNameWithoutExtension(new Uri(navMenu.Data.WbiImage.ImgUrl).AbsolutePath);
biliApiSecretStorageService.WbiSubKey =
Path.GetFileNameWithoutExtension(new Uri(navMenu.Data.WbiImage.SubUrl).AbsolutePath);

return navMenu.Data.WbiImage;
}
Expand Down

0 comments on commit b33d743

Please sign in to comment.