コード例 #1
0
ファイル: FeedChecker.cs プロジェクト: pixiegnom/hadouken
        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
            });
        }
コード例 #2
0
ファイル: FeedChecker.cs プロジェクト: DNIDNL/hadouken
        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});
        }