From 796569727d4270ebc175e08374856d2e4affda86 Mon Sep 17 00:00:00 2001 From: cxfksword <718792+cxfksword@users.noreply.github.com> Date: Sat, 10 Jan 2026 14:49:21 +0800 Subject: [PATCH] chore: limit bilibili request frequently. #106 --- Jellyfin.Plugin.Danmu/Scrapers/Bilibili/BilibiliApi.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Jellyfin.Plugin.Danmu/Scrapers/Bilibili/BilibiliApi.cs b/Jellyfin.Plugin.Danmu/Scrapers/Bilibili/BilibiliApi.cs index d50fcf0..95f4f9a 100644 --- a/Jellyfin.Plugin.Danmu/Scrapers/Bilibili/BilibiliApi.cs +++ b/Jellyfin.Plugin.Danmu/Scrapers/Bilibili/BilibiliApi.cs @@ -21,7 +21,7 @@ public class BilibiliApi : AbstractApi { private static readonly object _lock = new object(); private TimeLimiter _timeConstraint = TimeLimiter.GetFromMaxCountByInterval(1, TimeSpan.FromMilliseconds(1000)); - private TimeLimiter _delayExecuteConstraint = TimeLimiter.GetFromMaxCountByInterval(1, TimeSpan.FromMilliseconds(100)); + private TimeLimiter _limitDownloadRequestConstraint = TimeLimiter.GetFromMaxCountByInterval(1, TimeSpan.FromSeconds(10)); private TimeLimiter _delayShortExecuteConstraint = TimeLimiter.GetFromMaxCountByInterval(1, TimeSpan.FromMilliseconds(10)); private static readonly Regex regBiliplusVideoInfo = new Regex(@"view\((.+?)\);", RegexOptions.Compiled); @@ -151,7 +151,7 @@ public class BilibiliApi : AbstractApi throw new ArgumentNullException(nameof(cid)); } - await this.LimitRequestFrequently(); + await this._limitDownloadRequestConstraint; var url = $"https://api.bilibili.com/x/v1/dm/list.so?oid={cid}"; using var response = await this.httpClient.GetAsync(url, cancellationToken).ConfigureAwait(false); @@ -322,6 +322,8 @@ public class BilibiliApi : AbstractApi danmaku.ChatServer = "api.bilibili.com"; danmaku.Items = new List(); + await this._limitDownloadRequestConstraint; + await this.EnsureSessionCookie(cancellationToken).ConfigureAwait(false); try