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(); }
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; }
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; }