private async Task PrepareUserFeeds(FeedItemResponse item) { var seriesName = item.GetSeriesName(); var quality = item.GetQuality(); var subscriptions = await this.subscriptionDAO.LoadAsync(seriesName, quality); this.logger.Info($"{subscriptions.Count()} subscriptions should be updated for series '{seriesName}' with quality '{quality}'"); foreach (var subscription in subscriptions) { var torrentId = item.GetTorrentId(); var link = Extensions.GenerateTorrentLink(this.configuration.BaseUrl, subscription.UserId, torrentId); var userFeedItem = new FeedItem(item.Title, link, item.PublishDateParsed); var userFeed = await this.feedDAO.LoadUserFeedAsync(subscription.UserId); if (userFeed == null) { userFeed = new SortedSet <FeedItem>(); } userFeed.Add(userFeedItem); await this.feedDAO.SaveUserFeedAsync(subscription.UserId, userFeed.Take(15).ToArray()); this.logger.Info($"Feed for user {subscription.UserId} updated."); } }
private Series ParseSeries(FeedItemResponse feedItem) { var series = new Series() { Name = feedItem.GetSeriesName(), LastEpisodeName = feedItem.GetEpisodeName(), LastEpisode = feedItem.PublishDateParsed, }; var quality = feedItem.GetQuality(); switch (quality) { case Quality.H1080: series.LastEpisodeTorrentLink1080 = feedItem.Link; break; case Quality.H720: series.LastEpisodeTorrentLinkMP4 = feedItem.Link; break; case Quality.SD: series.LastEpisodeTorrentLinkSD = feedItem.Link; break; } return(series); }
/// <summary> /// Initializes a new instance of the <see cref="FeedItem"/> class. /// </summary> /// <param name="item">FeedItemResponse.</param> /// <param name="link">Link.</param> public FeedItem(FeedItemResponse item, string link) : this(item) { this.Link = link; }
/// <summary> /// Initializes a new instance of the <see cref="FeedItem"/> class. /// </summary> /// <param name="item">FeedItemResponse.</param> public FeedItem(FeedItemResponse item) { this.Link = item.Link; this.PublishDateParsed = item.PublishDateParsed; this.Title = item.Title; }