public List<TorrentDescription> GetEpisodeTorrents(Episode episode, string login, string password)
        {
            client = Login(login, password);
            string detailsContent = client.GetAsync(string.Format(DetailsUrl, episode.SiteId)).Result.Content.ReadAsStringAsync().Result;
            Match parametersMatch = ParametersRegex.Match(detailsContent);
            if (!parametersMatch.Success)
            {
                throw new Exception();
            }

            IEnumerable<TorrentDescription> torrents = GetTorrents(parametersMatch.Groups[1].Value, parametersMatch.Groups[2].Value, parametersMatch.Groups[3].Value);
            return torrents.ToList();
        }
示例#2
0
        private Episode CreateEpisode(string episodeId, string title, string date, Tuple<int, int> episodeNumber)
        {
            var episode = new Episode();
            episode.SiteId = int.Parse(episodeId);
            if (episode.SiteId <= LastStoredEpisodeId)
            {
                return null;
            }

            episode.SeasonNumber = episodeNumber.Item1;
            episode.EpisodeNumber = episodeNumber.Item2 != 99 ? episodeNumber.Item2 : 0;
            episode.Title = WebUtility.HtmlDecode(title);
            if (!string.IsNullOrEmpty(date))
            {
                DateTime tempDateTime;
                if (DateTime.TryParse(date, out tempDateTime))
                {
                    episode.Date = new DateTimeOffset(tempDateTime, SiteTimeZoneInfo.BaseUtcOffset);
                }
            }

            return episode;
        }
示例#3
0
        private Episode CreateEpisode(HtmlNode node, string detailsUrl, HtmlNode dateNode)
        {
            var episode = new Episode();
            episode.SiteId = int.Parse(EpisodeSiteIdRegex.Match(detailsUrl).Groups[1].Value);
            if (episode.SiteId <= LastStoredEpisodeId)
            {
                return null;
            }

            episode.SeasonNumber = GetSeasonNumber(node);
            episode.EpisodeNumber = GetEpisodeNumber(node);
            episode.Title = GetEpisodeTitle(detailsUrl);
            var dateMatch = EpisodeDateRegex.Match(dateNode.InnerText);
            string date = $"{dateMatch.Groups[1].Value} {dateMatch.Groups[2].Value}";
            if (!string.IsNullOrEmpty(date))
            {
                DateTime tempDateTime;
                if (DateTime.TryParse(date, out tempDateTime))
                {
                    episode.Date = new DateTimeOffset(tempDateTime, SiteTimeZoneInfo.BaseUtcOffset);
                }
            }

            return episode;
        }