public IEnumerable <string> GetKeywords(IPartialRssItem rssItem) { foreach (var match in (IEnumerable <Match>) this._regex.Matches(rssItem.Title)) { if (match.Groups.ContainsKey("keyword")) { yield return(match.Groups["keyword"].Value); continue; } if (match.Groups.ContainsKey("kw")) { yield return(match.Groups["kw"].Value); continue; } if (match.Groups.Count > 1) { foreach (var gi in Enumerable.Range(1, match.Groups.Count - 1)) { yield return(match.Groups[gi].Value); } continue; } yield return(match.Groups[0].Value); } }
public string[] GetKeywords(IPartialRssItem rssItem) { var finders = this._finders; var excludes = this._excludes; return(finders.SelectMany(f => f.GetKeywords(rssItem)) .Where(z => !string.IsNullOrWhiteSpace(z)) .Distinct() .Where(k => !excludes.Contains(k)) .ToArray()); }
public IEnumerable <string> GetKeywords(IPartialRssItem item) { var magnetLink = item.GetPropertyOrDefault(RssItemProperties.MagnetLink); if (!string.IsNullOrWhiteSpace(magnetLink)) { yield return(magnetLink); if (MagnetUri.TryParse(magnetLink, out var ml)) { yield return(ml.InfoHash); } } }
private static string GetGroupName(IImmutableList <Regex> regexes, IPartialRssItem rssItem) { foreach (var re in regexes) { var match = re.Match(rssItem.Title); if (match.Success) { if (match.Groups.ContainsKey("name")) { return(match.Groups["name"].Value.Trim()); } if (match.Groups.Count > 1) { return(match.Groups[1].Value.Trim()); } return(match.Groups[0].Value); } } return(string.Empty); }
public IEnumerable <string> GetKeywords(IPartialRssItem item) { yield return(item.Title); }
public bool IsMatch(IPartialRssItem rssItem) => true;
public static (string, string) GetKey(this IPartialRssItem rssItem) => (rssItem.FeedId, rssItem.RssId);
public bool IsMatch(IPartialRssItem rssItem) => this._stringMatcher.IsMatch(rssItem.Title);
public RssItemViewModel(IPartialRssItem rssItem) : base() { this.RssItem = rssItem; }