コード例 #1
0
        private async Task <IEnumerable <Addic7edResult> > ParseMovie(string movie, CancellationToken cancellationToken)
        {
            using (var res = await GetResponse($"movie/{movie}", cancellationToken).ConfigureAwait(false))
            {
                var titlePattern = "<title>.*?Download (.+?) subtitles.*?</title>";
                var verPattern   = "Version (.+?),.*?MBs";
                var langPattern  = "class=\"language\">(.*?)<";
                var downPattern  = "<a class=\"buttonDownload\" href=\"/(.*?)\">";

                var matches = GetMatches(res.Content, new[] { verPattern, langPattern, downPattern, titlePattern });

                var results = new List <Addic7edResult>();
                for (int i = 0; i < matches.FirstOrDefault().Count; i++)
                {
                    var result = new Addic7edResult
                    {
                        Version  = matches[0][i].Groups[1].Value,
                        Language = NormalizeLanguage(matches[1][i].Groups[1].Value),
                        Download = matches[2][i].Groups[1].Value,
                        Title    = matches[3][0].Groups[1].Value
                    };
                    results.Add(result);
                }

                return(results);
            }
        }
コード例 #2
0
        private IEnumerable <Addic7edResult> ParseEpisode(HttpResponseInfo res)
        {
            var trPattern = "<tr class=\"epeven completed\">(.*?)</tr>";
            var tdPattern = "<td.*?>(.*?)</td>";

            var trMatches = GetMatches(res.Content, trPattern);
            var episodes  = new List <Addic7edResult>();

            foreach (Match tr in trMatches)
            {
                var tds    = Regex.Matches(tr.Groups[1].Value, tdPattern);
                var result = new Addic7edResult
                {
                    Season          = tds[0].Groups[1].Value,
                    Episode         = tds[1].Groups[1].Value,
                    Title           = (Regex.Match(tds[2].Groups[1].Value, "<a.*?>(.+?)</a>")).Groups[1].Value,
                    Language        = NormalizeLanguage(tds[3].Groups[1].Value),
                    Version         = tds[4].Groups[1].Value,
                    Completed       = tds[5].Groups[1].Value,
                    HearingImpaired = tds[6].Groups[1].Value,
                    Corrected       = tds[7].Groups[1].Value,
                    HD       = tds[8].Groups[1].Value,
                    Download = (Regex.Match(tds[9].Groups[1].Value, "<a href=\"/(.+?)\">Download</a>")).Groups[1].Value,
                    Multi    = tds[10].Groups[1].Value
                };
                episodes.Add(result);
            }

            return(episodes);
        }