* start moving local scans to separate process * send progress updates to main process * move scanners and tests * simplify dependencies; sync search index * commit search index more often when scanning * support forced scan and cancellation * use scanner process for plex libraries * update changelog * update dockerfiles * fix search index for local folder scanning * rework plex scanners * rework scanner handlers * emby works again * sync jellyfin * cleanup * update build * update changelog * remove scanner dependency in pr and artifacts workflows * fix mac sed syntax * fix pr build
30 lines
1.1 KiB
C#
30 lines
1.1 KiB
C#
using Bugsnag;
|
|
using ErsatzTV.Core.Domain;
|
|
using ErsatzTV.Core.Interfaces.Metadata;
|
|
using ErsatzTV.Core.Interfaces.Repositories;
|
|
using ErsatzTV.Core.Interfaces.Repositories.Caching;
|
|
using ErsatzTV.Core.Search;
|
|
|
|
namespace ErsatzTV.Core.Interfaces.Search;
|
|
|
|
public interface ISearchIndex : IDisposable
|
|
{
|
|
public int Version { get; }
|
|
Task<bool> Initialize(ILocalFileSystem localFileSystem, IConfigElementRepository configElementRepository);
|
|
Task<Unit> Rebuild(ICachingSearchRepository searchRepository, IFallbackMetadataProvider fallbackMetadataProvider);
|
|
|
|
Task<Unit> RebuildItems(
|
|
ICachingSearchRepository searchRepository,
|
|
IFallbackMetadataProvider fallbackMetadataProvider,
|
|
IEnumerable<int> itemIds);
|
|
|
|
Task<Unit> UpdateItems(
|
|
ICachingSearchRepository searchRepository,
|
|
IFallbackMetadataProvider fallbackMetadataProvider,
|
|
List<MediaItem> items);
|
|
|
|
Task<Unit> RemoveItems(IEnumerable<int> ids);
|
|
SearchResult Search(IClient client, string query, int skip, int limit, string searchField = "");
|
|
void Commit();
|
|
}
|