/// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="jsonSerializer"></param> /// <param name="userManager"></param> /// <param name="userDataManager"> </param> /// <param name="httpClient"></param> /// <param name="appHost"></param> /// <param name="fileSystem"></param> public SyncFromTraktTask(ILogManager logger, IJsonSerializer jsonSerializer, IUserManager userManager, IUserDataManager userDataManager, IHttpClient httpClient, IServerApplicationHost appHost, IFileSystem fileSystem) { _userManager = userManager; _userDataManager = userDataManager; _logger = logger.GetLogger("Trakt"); _traktApi = new TraktApi(jsonSerializer, _logger, httpClient, appHost, userDataManager, fileSystem); }
/// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="traktApi"></param> public UserDataManagerEventsHelper(ILogger logger, TraktApi traktApi, ITimerFactory timerFactory) { _userDataPackages = new List <UserDataPackage>(); _logger = logger; _traktApi = traktApi; _timerFactory = timerFactory; }
/// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="jsonSerializer"></param> /// <param name="userManager"></param> /// <param name="userDataManager"> </param> /// <param name="httpClient"></param> public SyncFromTraktTask(ILogManager logger, IJsonSerializer jsonSerializer, IUserManager userManager, IUserDataManager userDataManager, IHttpClient httpClient) { _userManager = userManager; _userDataManager = userDataManager; _logger = logger.GetLogger("Trakt"); _traktApi = new TraktApi(jsonSerializer, _logger, httpClient); }
/// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="fileSystem"></param> /// <param name="traktApi"></param> public LibraryManagerEventsHelper(ILogger logger, IFileSystem fileSystem, TraktApi traktApi) { _queuedEvents = new List <LibraryEvent>(); _logger = logger; _fileSystem = fileSystem; _traktApi = traktApi; }
/// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="traktApi"></param> public LibraryManagerEventsHelper(ILogger logger, TraktApi traktApi, ITimerFactory timerFactory) { _queuedEvents = new List <LibraryEvent>(); _logger = logger; _traktApi = traktApi; _timerFactory = timerFactory; }
/// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="jsonSerializer"></param> /// <param name="userManager"></param> /// <param name="userDataManager"> </param> /// <param name="httpClient"></param> /// <param name="appHost"></param> /// <param name="fileSystem"></param> public SyncFromTraktTask(ILoggerFactory loggerFactory, IJsonSerializer jsonSerializer, IUserManager userManager, IUserDataManager userDataManager, IHttpClient httpClient, IServerApplicationHost appHost, IFileSystem fileSystem, ILibraryManager libraryManager) { _userManager = userManager; _userDataManager = userDataManager; _libraryManager = libraryManager; _logger = loggerFactory.CreateLogger("Trakt"); _traktApi = new TraktApi(jsonSerializer, _logger, httpClient, appHost, userDataManager, fileSystem); }
public SyncLibraryTask(ILogManager logger, IJsonSerializer jsonSerializer, IUserManager userManager, IUserDataManager userDataManager, IHttpClient httpClient, IFileSystem fileSystem) { _userManager = userManager; _userDataManager = userDataManager; _logger = logger.GetLogger("Trakt"); _fileSystem = fileSystem; _traktApi = new TraktApi(jsonSerializer, _logger, httpClient); }
public ChannelP1(IHttpClient httpClient, ILogManager logManager, IJsonSerializer jsonSerializer, ILibraryManager lib, TraktApi traktApi, IUserManager userManager) { HttpClient = httpClient; Logger = logManager.GetLogger(GetType().Name); JsonSerializer = jsonSerializer; LibraryManager = lib; TraktApi = traktApi; UserManager = userManager; }
public SyncLibraryTask(Kernel kernel, ILogger logger, IHttpClient httpClient, IJsonSerializer jsonSerializer, IUserManager userManager) { _kernel = kernel; _jsonSerializer = jsonSerializer; _httpClient = httpClient; _userManager = userManager; _logger = logger; traktApi = new TraktApi(_httpClient, _jsonSerializer, _logger); }
/// <summary> /// /// </summary> /// <param name="kernel"></param> /// <param name="logger"></param> /// <param name="httpClient"></param> /// <param name="jsonSerializer"></param> /// <param name="userManager"></param> /// <param name="userDataRepository"> </param> public SyncFromTraktTask(Kernel kernel, ILogger logger, IHttpClient httpClient, IJsonSerializer jsonSerializer, IUserManager userManager, IUserDataRepository userDataRepository) { _jsonSerializer = jsonSerializer; _httpClient = httpClient; _userManager = userManager; _userDataRepository = userDataRepository; _logger = logger; _traktApi = new TraktApi(_httpClient, _jsonSerializer, _logger); }
/// <inheritdoc /> public void Dispose() { _userDataManager.UserDataSaved -= OnUserDataSaved; _sessionManager.PlaybackStart -= KernelPlaybackStart; _sessionManager.PlaybackStopped -= KernelPlaybackStopped; _libraryManager.ItemAdded -= LibraryManagerItemAdded; _libraryManager.ItemRemoved -= LibraryManagerItemRemoved; _traktApi = null; _libraryManagerEventsHelper = null; }
/// <summary> /// /// </summary> public void Dispose() { _sessionManager.PlaybackStart -= KernelPlaybackStart; _sessionManager.PlaybackProgress -= KernelPlaybackProgress; _sessionManager.PlaybackStopped -= KernelPlaybackStopped; _libraryManager.ItemAdded -= LibraryManagerItemAdded; _libraryManager.ItemRemoved -= LibraryManagerItemRemoved; _service = null; _traktApi = null; _libraryManagerEventsHelper = null; }
public void Run() { Console.WriteLine(TraktApi.GetMode); var missingEpisodes = TraktApi.GetMissingEpisodes(); foreach (var fetcher in Fetchers) { fetcher.getDlUrl(missingEpisodes); } }
/// <summary> /// Initializes a new instance of the <see cref="TraktController"/> class. /// </summary> /// <param name="userDataManager">Instance of the <see cref="IUserDataManager"/> interface.</param> /// <param name="loggerFactory">Instance of the <see cref="ILoggerFactory"/> interface.</param> /// <param name="fileSystem">Instance of the <see cref="IFileSystem"/> interface.</param> /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param> /// <param name="httpClient">Instance of the <see cref="IHttpClient"/> interface.</param> /// <param name="appHost">Instance of the <see cref="IServerApplicationHost"/> interface.</param> public TraktController( IUserDataManager userDataManager, ILoggerFactory loggerFactory, IHttpClientFactory httpClientFactory, IServerApplicationHost appHost, IFileSystem fileSystem, ILibraryManager libraryManager) { _logger = loggerFactory.CreateLogger <TraktController>(); _traktApi = new TraktApi(loggerFactory.CreateLogger <TraktApi>(), httpClientFactory, appHost, userDataManager, fileSystem); _libraryManager = libraryManager; }
/// <summary> /// /// </summary> /// <param name="jsonSerializer"></param> /// <param name="sessionManager"> </param> /// <param name="userDataManager"></param> /// <param name="libraryManager"> </param> /// <param name="logger"></param> /// <param name="httpClient"></param> /// <param name="appHost"></param> /// <param name="fileSystem"></param> public ServerMediator(IJsonSerializer jsonSerializer, ISessionManager sessionManager, IUserDataManager userDataManager, ILibraryManager libraryManager, ILogManager logger, IHttpClient httpClient, IServerApplicationHost appHost, IFileSystem fileSystem, ITimerFactory timerFactory) { Instance = this; _sessionManager = sessionManager; _libraryManager = libraryManager; _userDataManager = userDataManager; _logger = logger.GetLogger("Trakt"); _traktApi = new TraktApi(jsonSerializer, _logger, httpClient, appHost, userDataManager, fileSystem); _service = new TraktUriService(_traktApi, _logger, _libraryManager); _libraryManagerEventsHelper = new LibraryManagerEventsHelper(_logger, _traktApi, timerFactory); _userDataManagerEventsHelper = new UserDataManagerEventsHelper(_logger, _traktApi, timerFactory); }
/// <summary> /// /// </summary> /// <param name="httpClient"></param> /// <param name="jsonSerializer"></param> /// <param name="userManager"></param> /// <param name="sessionManager"> </param> /// <param name="userDataRepository"></param> /// <param name="libraryManager"> </param> /// <param name="logger"></param> public ServerMediator(IHttpClient httpClient, IJsonSerializer jsonSerializer, IUserManager userManager, ISessionManager sessionManager, IUserDataRepository userDataRepository, ILibraryManager libraryManager, ILogger logger) { _jsonSerializer = jsonSerializer; _httpClient = httpClient; _userManager = userManager; _sessionManager = sessionManager; _userDataRepository = userDataRepository; _libraryManager = libraryManager; _logger = logger; _traktApi = new TraktApi(_httpClient, _jsonSerializer, _logger); _service = new TraktUriService(_traktApi, _userManager); _libraryManagerEventsHelper = new LibraryManagerEventsHelper(_logger, _traktApi); }
protected virtual void Dispose(bool disposing) { if (disposing) { _userDataManager.UserDataSaved -= OnUserDataSaved; _sessionManager.PlaybackStart -= KernelPlaybackStart; _sessionManager.PlaybackStopped -= KernelPlaybackStopped; _libraryManager.ItemAdded -= LibraryManagerItemAdded; _libraryManager.ItemRemoved -= LibraryManagerItemRemoved; _traktApi = null; _libraryManagerEventsHelper.Dispose(); _libraryManagerEventsHelper = null; _userDataManagerEventsHelper.Dispose(); } }
/// <summary> /// /// </summary> /// <param name="jsonSerializer"></param> /// <param name="sessionManager"> </param> /// <param name="userDataManager"></param> /// <param name="libraryManager"> </param> /// <param name="logger"></param> /// <param name="httpClient"></param> /// <param name="appHost"></param> /// <param name="fileSystem"></param> public ServerMediator(IJsonSerializer jsonSerializer, ISessionManager sessionManager, IUserDataManager userDataManager, ILibraryManager libraryManager, ILogManager logger, IHttpClient httpClient, IServerApplicationHost appHost, IFileSystem fileSystem) { Instance = this; _sessionManager = sessionManager; _libraryManager = libraryManager; _logger = logger.GetLogger("Trakt"); _traktApi = new TraktApi(jsonSerializer, _logger, httpClient, appHost, userDataManager, fileSystem); _service = new TraktUriService(_traktApi, _logger, _libraryManager); _libraryManagerEventsHelper = new LibraryManagerEventsHelper(_logger, _traktApi); _progressEvents = new List <ProgressEvent>(); _userDataManagerEventsHelper = new UserDataManagerEventsHelper(_logger, _traktApi); userDataManager.UserDataSaved += _userDataManager_UserDataSaved; }
/// <summary> /// /// </summary> /// <param name="loggerFactory"></param> /// <param name="userManager"></param> /// <param name="userDataManager"> </param> /// <param name="httpClient"></param> /// <param name="appHost"></param> /// <param name="fileSystem"></param> public SyncFromTraktTask( ILoggerFactory loggerFactory, IUserManager userManager, IUserDataManager userDataManager, IHttpClientFactory httpClientFactory, IServerApplicationHost appHost, IFileSystem fileSystem, ILibraryManager libraryManager) { _userManager = userManager; _userDataManager = userDataManager; _libraryManager = libraryManager; _logger = loggerFactory.CreateLogger <SyncFromTraktTask>(); _traktApi = new TraktApi(loggerFactory.CreateLogger <TraktApi>(), httpClientFactory, appHost, userDataManager, fileSystem); }
/// <summary> /// /// </summary> /// <param name="sessionManager"> </param> /// <param name="userDataManager"></param> /// <param name="libraryManager"> </param> /// <param name="logger"></param> /// <param name="httpClient"></param> /// <param name="appHost"></param> /// <param name="fileSystem"></param> public ServerMediator( ISessionManager sessionManager, IUserDataManager userDataManager, ILibraryManager libraryManager, ILoggerFactory loggerFactory, IHttpClientFactory httpClientFactory, IServerApplicationHost appHost, IFileSystem fileSystem) { _sessionManager = sessionManager; _libraryManager = libraryManager; _userDataManager = userDataManager; _logger = loggerFactory.CreateLogger <ServerMediator>(); _traktApi = new TraktApi(loggerFactory.CreateLogger <TraktApi>(), httpClientFactory, appHost, userDataManager, fileSystem); _libraryManagerEventsHelper = new LibraryManagerEventsHelper(loggerFactory.CreateLogger <LibraryManagerEventsHelper>(), _traktApi); _userDataManagerEventsHelper = new UserDataManagerEventsHelper(loggerFactory.CreateLogger <UserDataManagerEventsHelper>(), _traktApi); }
/// <summary> /// /// </summary> /// <param name="jsonSerializer"></param> /// <param name="sessionManager"> </param> /// <param name="userDataManager"></param> /// <param name="libraryManager"> </param> /// <param name="logger"></param> /// <param name="httpClient"></param> /// <param name="appHost"></param> /// <param name="fileSystem"></param> public ServerMediator( IJsonSerializer jsonSerializer, ISessionManager sessionManager, IUserDataManager userDataManager, ILibraryManager libraryManager, ILoggerFactory logger, IHttpClient httpClient, IServerApplicationHost appHost, IFileSystem fileSystem) { _sessionManager = sessionManager; _libraryManager = libraryManager; _userDataManager = userDataManager; _logger = logger.CreateLogger("Trakt"); _traktApi = new TraktApi(jsonSerializer, _logger, httpClient, appHost, userDataManager, fileSystem); _libraryManagerEventsHelper = new LibraryManagerEventsHelper(_logger, _traktApi); _userDataManagerEventsHelper = new UserDataManagerEventsHelper(_logger, _traktApi); }
/// <summary> /// /// </summary> /// <param name="jsonSerializer"></param> /// <param name="sessionManager"> </param> /// <param name="userDataManager"></param> /// <param name="libraryManager"> </param> /// <param name="logger"></param> /// <param name="httpClient"></param> /// <param name="fileSystem"></param> public ServerMediator(IJsonSerializer jsonSerializer, ISessionManager sessionManager, IUserDataManager userDataManager, ILibraryManager libraryManager, ILogManager logger, IHttpClient httpClient, IFileSystem fileSystem) { Instance = this; _sessionManager = sessionManager; _userDataManager = userDataManager; _libraryManager = libraryManager; _logger = logger.GetLogger("Trakt"); _fileSystem = fileSystem; _traktApi = new TraktApi(jsonSerializer, _logger, httpClient); _service = new TraktUriService(_traktApi, _logger, _libraryManager); _libraryManagerEventsHelper = new LibraryManagerEventsHelper(_logger, _fileSystem, _traktApi); _progressEvents = new List <ProgressEvent>(); _userDataManagerEventsHelper = new UserDataManagerEventsHelper(_logger, _traktApi); // TODO This should probably be elsewhere. UpdateUserRatingFormat(); EnableUserDataSavedEventListener(); }
public async Task <IEnumerable <SearchTvShowViewModel> > MostWatches() { var result = await MemCache.GetOrAdd(CacheKeys.MostWatchesTv, async() => await TraktApi.GetMostWatchesShows(), DateTime.Now.AddHours(12)); var processed = await ProcessResults(result); return(processed); }
private async Task <ChannelItemResult> GetChannelItemsInternal() { var newItems = new List <ChannelItemInfo>(); /*return await Task.FromResult(new ChannelItemResult * { * Items = newItems.ToList() * });*/ var channel = LibraryManager.GetItemList(new InternalItemsQuery { Name = Name }); var libraryItems = LibraryManager.GetInternalItemIds(new InternalItemsQuery { ParentIds = new[] { channel[0].InternalId } }).ToList(); var users = UserManager.Users.Where(u => UserHelper.GetTraktUser(u) != null).ToList(); // No point going further if we don't have users. if (users.Count == 0) { Logger.Info("No Users returned"); return(new ChannelItemResult()); } foreach (var user in users) { Logger.Info(user.Name); } var adminUser = users.Single(x => x.Name == "Administrator"); var adminUserTraktUser = UserHelper.GetTraktUser(adminUser.Id); //var listData = client.Users.GetCustomListItemsAsync("movistapp", "horror").Result; var listData = await TraktApi.GetTraktUserListItems(adminUserTraktUser, ListConfig.ListUserName, ListConfig.ListName, new CancellationToken()); Logger.Info($"Count of items on list {listData.Count}"); //_logger.Info(_jsonSerializer.SerializeToString(data)); var mediaItems = LibraryManager.GetItemList( new InternalItemsQuery() { IncludeItemTypes = new[] { nameof(Movie) }, IsVirtualItem = false, OrderBy = new[] { new ValueTuple <string, SortOrder>(ItemSortBy.SeriesSortName, SortOrder.Ascending), new ValueTuple <string, SortOrder>(ItemSortBy.SortName, SortOrder.Ascending) } }) .ToList(); Logger.Info($"Count of items in emby {mediaItems.Count}"); foreach (var movie in mediaItems.OfType <Movie>()) { //Logger.Info($"Movie {movie.Name}"); if (libraryItems.Contains(movie.InternalId)) { continue; } var foundMovie = Match.FindMatch(movie, listData); if (foundMovie != null) { //Logger.Info($"Movie {movie.Name} found"); var embyMove = LibraryManager.GetItemById(movie.Id); if (embyMove != null) { Logger.Info($"Emby Movie {embyMove}"); // if(string.IsNullOrEmpty(embyMove.Path)){ var newMovie = new ChannelItemInfo { Name = embyMove.Name, ImageUrl = embyMove.PrimaryImagePath, Id = embyMove.Id.ToString(), Type = ChannelItemType.Media, ContentType = ChannelMediaContentType.Movie, MediaType = ChannelMediaType.Video, IsLiveStream = false, MediaSources = new List <MediaSourceInfo> { new ChannelMediaInfo { Path = embyMove.Path, Protocol = MediaProtocol.File }.ToMediaSource() }, OriginalTitle = embyMove.OriginalTitle }; newItems.Add(newMovie); // } } } else { //Logger.Debug($"Movie {movie.Name} not found"); } } Logger.Info($"Count of items in List to add {newItems.Count}"); return(await Task.FromResult(new ChannelItemResult { Items = newItems.ToList() })); }
public async Task <ChannelItemResult> GetChannelItemResult(IUserManager userManager, ILibraryManager libraryManager, TraktChannel channelToConfigure, ILogger logger, TraktApi traktApi, CancellationToken cancellationToken) { //await Plugin.Instance.SchedTaskResourcePool.WaitAsync(cancellationToken).ConfigureAwait(false); try { var users = userManager.Users; var channels = libraryManager.GetItemList(new InternalItemsQuery { Recursive = true, IncludeItemTypes = new[] { "Channel" } }).Where(x => !string.IsNullOrEmpty(x.Name)).ToList(); var currentChannel = channels.First(x => x.Name == channelToConfigure.ChannelName).Id.ToString() .Replace("-", string.Empty); if (!channelToConfigure.Enabled) { foreach (var user in users) { user.Policy.EnableAllChannels = false; var enabledChannels = user.Policy.EnabledChannels != null ? user.Policy.EnabledChannels.ToList() : new List <string>(); var disabledChannels = user.Policy.BlockedChannels != null ? user.Policy.BlockedChannels.ToList() : new List <string>(); //Logger.Info("Enabled " + string.Join(",", enabledChannels.Select(x => x.ToString()).ToArray())); //Logger.Info("Blocked " + string.Join(",", disabledChannels.Select(x => x.ToString()).ToArray())); if (!disabledChannels.Contains(currentChannel)) { disabledChannels.Add(currentChannel); } //Logger.Info("Added To Disabled " + currentChannel); if (enabledChannels.Any()) { if (enabledChannels.Contains(currentChannel)) { enabledChannels.Remove(currentChannel); } } else { foreach (var channel in channels.Where(x => x.Name != channelToConfigure.ChannelName)) { enabledChannels.Add(channel.Id.ToString().Replace("-", string.Empty)); } } user.Policy.EnabledChannels = enabledChannels.ToArray(); user.Policy.BlockedChannels = disabledChannels.ToArray(); logger.Info("Enabled " + string.Join(",", enabledChannels.Select(x => x.ToString()).ToArray())); logger.Info("Blocked " + string.Join(",", disabledChannels.Select(x => x.ToString()).ToArray())); userManager.UpdateUser(user); } } else { foreach (var user in users) { user.Policy.EnableAllChannels = false; var enabledChannels = user.Policy.EnabledChannels != null ? user.Policy.EnabledChannels.ToList() : new List <string>(); var disabledChannels = user.Policy.BlockedChannels != null ? user.Policy.BlockedChannels.ToList() : new List <string>(); //Logger.Info("Enabled " + string.Join(",", enabledChannels.Select(x => x.ToString()).ToArray())); //Logger.Info("Blocked " + string.Join(",", disabledChannels.Select(x => x.ToString()).ToArray())); if (disabledChannels.Contains(currentChannel)) { disabledChannels.Remove(currentChannel); } if (enabledChannels.Any()) { if (enabledChannels.Contains(currentChannel)) { continue; } enabledChannels.Add(currentChannel); } else { foreach (var channel in channels) { enabledChannels.Add(channel.Id.ToString().Replace("-", string.Empty)); } } user.Policy.EnabledChannels = enabledChannels.ToArray(); user.Policy.BlockedChannels = disabledChannels.ToArray(); logger.Info("Enabled " + string.Join(",", enabledChannels.Select(x => x.ToString()).ToArray())); logger.Info("Blocked " + string.Join(",", disabledChannels.Select(x => x.ToString()).ToArray())); userManager.UpdateUser(user); } } var newItems = new List <ChannelItemInfo>(); if (channelToConfigure.Enabled == false) { return(await Task.FromResult(new ChannelItemResult { Items = newItems.ToList() })); } if (string.IsNullOrEmpty(Plugin.Instance.PluginConfiguration.Pin) && string.IsNullOrEmpty(Plugin.Instance.PluginConfiguration.TraktUser.AccessToken)) { return(await Task.FromResult(new ChannelItemResult { Items = newItems.ToList() })); } var channelLibraryItem = libraryManager.GetItemList(new InternalItemsQuery { Name = channelToConfigure.ChannelName }); logger.Info(channelToConfigure.ChannelName); logger.Info("Found " + channelLibraryItem.Length.ToString()); var libraryItems = libraryManager.GetInternalItemIds(new InternalItemsQuery { ParentIds = new[] { channelLibraryItem[0].InternalId } }).ToList(); if (!string.IsNullOrEmpty(Plugin.Instance.PluginConfiguration.Pin)) { Plugin.Instance.PluginConfiguration.TraktUser.PIN = Plugin.Instance.PluginConfiguration.Pin; } var listData = await traktApi.GetTraktUserListItems(Plugin.Instance.PluginConfiguration.TraktUser, channelToConfigure.TraktListUserName, channelToConfigure.TraktListName, new CancellationToken()); logger.Info($"Count of items on list {listData.Count}"); var mediaItems = libraryManager.GetItemList( new InternalItemsQuery { IncludeItemTypes = new[] { nameof(Movie) }, IsVirtualItem = false, OrderBy = new[] { new ValueTuple <string, SortOrder>(ItemSortBy.SeriesSortName, SortOrder.Ascending), new ValueTuple <string, SortOrder>(ItemSortBy.SortName, SortOrder.Ascending) } }) .ToList(); logger.Info($"Count of items in emby {mediaItems.Count}"); var foundMovies = new List <string>(); //var notFoundMovies = new List<string>(); logger.Info("Internal Ids: " + string.Join(", ", libraryItems.Select(x => x.ToString()).ToArray())); foreach (var movie in mediaItems.OfType <Movie>().OrderBy(x => x.DateCreated)) { if (channels.Select(x => x.ParentId).Contains(movie.Parent.ParentId)) { continue; } //Logger.Info($"Movie {movie.Name}"); //logger.Info(movie.InternalId.ToString()); if (libraryItems.Contains(movie.InternalId)) { continue; } var foundMovie = Match.FindMatch(movie, listData); if (foundMovie != null) { //Logger.Info($"Movie {movie.Name} found"); var embyMove = libraryManager.GetItemById(movie.Id); if (embyMove != null) { foundMovies.Add(embyMove.Name); //logger.Info($"Emby Movie {embyMove} found!"); // if(string.IsNullOrEmpty(embyMove.Path)){ var newMovie = new ChannelItemInfo { Name = embyMove.Name, ImageUrl = embyMove.PrimaryImagePath, Id = embyMove.Id.ToString(), Type = ChannelItemType.Media, ContentType = ChannelMediaContentType.Movie, MediaType = ChannelMediaType.Video, IsLiveStream = false, MediaSources = new List <MediaSourceInfo> { new ChannelMediaInfo { Path = embyMove.Path, Protocol = MediaProtocol.File }.ToMediaSource() }, OriginalTitle = embyMove.OriginalTitle }; if (!newItems.Any(x => x.Id == embyMove.Id.ToString())) { newItems.Add(newMovie); } // } } } } logger.Info($"Count of items in List to add {newItems.Count}"); var distinctItems = newItems.Distinct().ToList(); logger.Info($"Count of distinct items in List to add {distinctItems.Count}"); logger.Info("Found Movies: " + string.Join(", ", foundMovies.Select(x => x.ToString()).ToArray())); //logger.Info("Not Found Movies: " + string.Join(", ", notFoundMovies.Select(x => x.ToString()).ToArray())); logger.Info( "Not Found Movies: " + string.Join(", ", distinctItems.Select(x => x.Id.ToString()).ToArray())); return(await Task.FromResult(new ChannelItemResult { Items = distinctItems.ToList() })); } finally { //Plugin.Instance.SchedTaskResourcePool.Release(); } }
/// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="traktApi"></param> public UserDataManagerEventsHelper(ILogger logger, TraktApi traktApi) { _userDataPackages = new List <UserDataPackage>(); _logger = logger; _traktApi = traktApi; }
public async Task <IEnumerable <TreeNode <SearchTvShowViewModel> > > Trending() { var result = await MemCache.GetOrAdd(CacheKeys.TrendingTv, async() => await TraktApi.GetTrendingShows(), DateTime.Now.AddHours(12)); var processed = await ProcessResults(result); return(processed.Select(ParseIntoTreeNode).ToList()); }
/// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="traktApi"></param> public LibraryManagerEventsHelper(ILogger logger, TraktApi traktApi) { _queuedEvents = new List <LibraryEvent>(); _logger = logger; _traktApi = traktApi; }