private void Download(Filter filter, SyndicationItem item) { var args = new TorrentArguments(); var pattern = filter.IncludePattern; var input = item.Title.Text; var modifiers = _rssRepository.GetModifiersByFilterId(filter.Id); if (modifiers != null) { foreach (var modifier in modifiers) { var regex = new Regex(pattern, RegexOptions.ExplicitCapture); var match = regex.Match(input); var value = modifier.Value; foreach (var groupName in regex.GetGroupNames().Skip(1)) { var group = match.Groups[groupName]; value = value.Replace(string.Format("${{{0}}}", groupName), group.Value); } switch (modifier.Target) { case ModifierTarget.Label: args.Label = value; break; case ModifierTarget.SavePath: args.SavePath = value; break; } } } var data = _httpClient.GetByteArrayAsync(item.Links.First().Uri).Result; _messageBus.Publish(new AddTorrentMessage(data) { Label = args.Label, SavePath = args.SavePath }); }
private void Download(Filter filter, SyndicationItem item) { var args = new TorrentArguments(); var pattern = filter.IncludePattern; var input = item.Title.Text; var modifiers = _rssRepository.GetModifiersByFilterId(filter.Id); if (modifiers != null) { foreach (var modifier in modifiers) { var regex = new Regex(pattern, RegexOptions.ExplicitCapture); var match = regex.Match(input); var value = modifier.Value; foreach (var groupName in regex.GetGroupNames().Skip(1)) { var group = match.Groups[groupName]; value = value.Replace(string.Format("${{{0}}}", groupName), group.Value); } switch (modifier.Target) { case ModifierTarget.Label: args.Label = value; break; case ModifierTarget.SavePath: args.SavePath = value; break; } } } var data = _httpClient.GetByteArrayAsync(item.Links.First().Uri).Result; _messageBus.Publish(new AddTorrentMessage(data) {Label = args.Label, SavePath = args.SavePath}); }