diff --git a/Jellyfin.Plugin.Danmu/ScheduledTasks/RefreshDanmakuTask.cs b/Jellyfin.Plugin.Danmu/ScheduledTasks/RefreshDanmakuTask.cs
deleted file mode 100644
index 45aa830..0000000
--- a/Jellyfin.Plugin.Danmu/ScheduledTasks/RefreshDanmakuTask.cs
+++ /dev/null
@@ -1,151 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using Jellyfin.Data.Enums;
-using Jellyfin.Plugin.Danmu.Model;
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Entities.Movies;
-using MediaBrowser.Controller.Entities.TV;
-using MediaBrowser.Model.Tasks;
-using MediaBrowser.Model.Entities;
-using Microsoft.Extensions.Logging;
-using Jellyfin.Plugin.Danmu.Core.Extensions;
-using Jellyfin.Plugin.Danmu.Scrapers;
-using System.Collections.ObjectModel;
-
-namespace Jellyfin.Plugin.Danmu.ScheduledTasks
-{
- public class RefreshDanmuTask : IScheduledTask
- {
- private readonly ILibraryManager _libraryManager;
- private readonly ScraperManager _scraperManager;
- private readonly ILogger _logger;
- private readonly LibraryManagerEventsHelper _libraryManagerEventsHelper;
-
-
- public string Key => $"{Plugin.Instance.Name}RefreshDanmu";
-
- public string Name => "更新弹幕文件";
-
- public string Description => $"根据视频元数据下载最新的弹幕文件。";
-
- public string Category => Plugin.Instance.Name;
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// Instance of the interface.
- /// Instance of the interface.
- public RefreshDanmuTask(ILoggerFactory loggerFactory, ILibraryManager libraryManager, LibraryManagerEventsHelper libraryManagerEventsHelper, ScraperManager scraperManager)
- {
- _logger = loggerFactory.CreateLogger();
- _libraryManager = libraryManager;
- _scraperManager = scraperManager;
- _libraryManagerEventsHelper = libraryManagerEventsHelper;
- }
-
- public IEnumerable GetDefaultTriggers()
- {
- return new List();
- // yield return new TaskTriggerInfo
- // {
- // Type = TaskTriggerInfo.TriggerWeekly,
- // DayOfWeek = DayOfWeek.Monday,
- // TimeOfDayTicks = TimeSpan.FromHours(4).Ticks
- // };
- }
-
- public async Task ExecuteAsync(IProgress progress, CancellationToken cancellationToken)
- {
- await Task.Yield();
-
- progress?.Report(0);
-
- var scrapers = this._scraperManager.All();
- var items = _libraryManager.GetItemList(new InternalItemsQuery
- {
- // MediaTypes = new[] { MediaType.Video },
- HasAnyProviderId = GetScraperFilter(scrapers),
- IncludeItemTypes = new[] { BaseItemKind.Movie, BaseItemKind.Season }
- }).ToList();
-
- _logger.LogInformation("Refresh danmu for {0} videos.", items.Count);
-
- var successCount = 0;
- var failCount = 0;
- foreach (var (item, idx) in items.WithIndex())
- {
- cancellationToken.ThrowIfCancellationRequested();
- progress?.Report((double)idx / items.Count * 100);
-
- try
- {
- // 没epid元数据的不处理
- if (!this.HasAnyScraperProviderId(scrapers, item))
- {
- successCount++;
- continue;
- }
-
- // item所在的媒体库不启用弹幕插件,忽略处理
- if (_libraryManagerEventsHelper.IsIgnoreItem(item))
- {
- continue;
- }
-
-
- // 推送下载最新的xml (season刷新会同时刷新episode,所以不需要再推送episode,而且season是bv号的,只能通过season来刷新)
- switch (item)
- {
- case Movie:
- await _libraryManagerEventsHelper.ProcessQueuedMovieEvents(new List() { new LibraryEvent { Item = item, EventType = EventType.Update } }, EventType.Update).ConfigureAwait(false);
- break;
- case Season:
- await _libraryManagerEventsHelper.ProcessQueuedSeasonEvents(new List() { new LibraryEvent { Item = item, EventType = EventType.Update } }, EventType.Update).ConfigureAwait(false);
- break;
- }
- successCount++;
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Refresh danmu failed for video {0}: {1}", item.Name, ex.Message);
- failCount++;
- }
- }
-
- progress?.Report(100);
- _logger.LogInformation("Exectue task completed. success: {0} fail: {1}", successCount, failCount);
- }
-
- private bool HasAnyScraperProviderId(ReadOnlyCollection scrapers, BaseItem item)
- {
- foreach (var scraper in scrapers)
- {
- var providerVal = item.GetProviderId(scraper.ProviderId);
- if (!string.IsNullOrEmpty(providerVal))
- {
- return true;
- }
- }
-
- return false;
- }
-
- private Dictionary GetScraperFilter(ReadOnlyCollection scrapers)
- {
- var filter = new Dictionary();
- foreach (var scraper in scrapers)
- {
- filter.Add(scraper.ProviderId, string.Empty);
- }
-
- return filter;
- }
- }
-}
diff --git a/README.md b/README.md
index a7c6d64..38a600e 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,6 @@ jellyfin弹幕自动下载插件,已支持的弹幕来源:b站,弹弹play
* 自动下载xml格式弹幕
* 生成ass格式弹幕
-* 可配置定时更新
* 支持api访问弹幕

@@ -38,7 +37,6 @@ jellyfin弹幕自动下载插件,已支持的弹幕来源:b站,弹弹play
4. 假如弹幕匹配错误,请在电影或剧集中使用**修改字幕**功能搜索修正
5. 对于电视剧或动画,需要保证每季视频集数一致,并正确填写集号,这样每季视频的弹幕才会自动获取
6. 同时生成ass弹幕,需要在插件配置中打开,默认是关闭的
-7. 定时更新需要自己到计划任务中添加定时时间,默认手工执行更新
> B站电影或季元数据也支持手动指定BV/AV号,来匹配UP主上传的视频弹幕。多P视频和剧集是按顺序一一对应匹配的,所以保证jellyfin中剧集有正确的集号很重要