kookxiang / jellyfin-plugin-bangumi

bgm.tv plugin for jellyfin
GNU General Public License v2.0
645 stars 24 forks source link

一直timeout #142

Open banned2054 opened 4 months ago

banned2054 commented 4 months ago

jellyfin版本:10.9.7 插件版本:1.6.1.0 网络:北京移动,没有使用代理

能通过curl访问bangumi的api: QQ_1721221540151 包括海报的下载: QQ_1721221572641 没有看具体的插件的实现代码,使用的哪些url,但最近一周经常获取不到元信息,尤其是最近三天,没能获取到一条元信息。

白天的时候能刮削元数据,有搜索结果,但应用对应元信息后就没有信息,看后台日志,是timeout了:

[2024-07-17 22:03:44.816 +09:00] [ERR] [40] MediaBrowser.Providers.Manager.ProviderManager: Provider "Bangumi" failed to retrieve search results
System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 5 seconds elapsing.
 ---> System.TimeoutException: A task was canceled.
 ---> System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.<SendCoreAsync>g__Core|5_0(HttpRequestMessage request, Boolean useAsync, CancellationToken cancellationToken)
   at Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler.<SendCoreAsync>g__Core|5_0(HttpRequestMessage request, Boolean useAsync, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpClient.HandleFailure(Exception e, Boolean telemetryStarted, HttpResponseMessage response, CancellationTokenSource cts, CancellationToken cancellationToken, CancellationTokenSource pendingRequestsCts)
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   at Jellyfin.Plugin.Bangumi.BangumiApi.SendRequest(HttpRequestMessage request, String accessToken, CancellationToken token)
   at Jellyfin.Plugin.Bangumi.BangumiApi.SendRequest[T](String url, String accessToken, CancellationToken token)
   at Jellyfin.Plugin.Bangumi.BangumiApi.SendRequest[T](String url, CancellationToken token)
   at Jellyfin.Plugin.Bangumi.BangumiApi.SearchSubject(String keyword, Nullable`1 type, CancellationToken token)
   at Jellyfin.Plugin.Bangumi.Providers.SeriesProvider.GetSearchResults(SeriesInfo searchInfo, CancellationToken token)
   at MediaBrowser.Providers.Manager.ProviderManager.GetRemoteSearchResults[TItemType,TLookupType](RemoteSearchQuery`1 searchInfo, BaseItem referenceItem, CancellationToken cancellationToken)
kookxiang commented 4 months ago

插件本身只依赖 api.bgm.tv 的接口,图片地址是取的 api 返回的地址,理论上应该也都是 lain.bgm.tv

理论上只有挂梯子能解,其他方法都没法保证 可以尝试设置中调整下超时时间,但不一定行

fiochen commented 4 months ago

有能力的话可以试试用服务器或者worker对接口反代,我这么处理后挺稳定的。 如果能把接口域名改成可配置化就更方便了