private void FillProperties() { string description = this.Description; int counter = 0; while (description.Contains(" ")) { int nextSpace = description.IndexOf(": ") + 1; int secondSpace; if (counter != 0) { secondSpace = description.IndexOf(" ", nextSpace + 1); } else { secondSpace = description.IndexOf(": ", nextSpace + 2) - description.IndexOf(" ", nextSpace); } string val; if (secondSpace == -1) { val = description.Substring(nextSpace).Trim(); description = string.Empty; } else { val = description.Substring(nextSpace, secondSpace - nextSpace).Trim(); description = description.Substring(secondSpace); } switch (counter) { case 0: this.Size = ReleaseInfo.BytesFromMB(long.Parse(val.Substring(0, val.IndexOf(" ") - 1))); break; case 1: this.Seeders = int.Parse(val.Contains(",") ? val.Remove(val.IndexOf(","), 1) : val); break; case 2: this.Peers = int.Parse(val.Contains(",") ? val.Remove(val.IndexOf(","), 1) : val); break; case 3: this.hash = val; break; } counter++; } }
public MTReleaseInfo Extract(IHtmlDocument html) { var release = new MTReleaseInfo(); release.IsMovie = true; var selectors = html.QuerySelectorAll("b"); var titleSelector = html.QuerySelector("span>b"); try { var title = titleSelector.TextContent; if (title.Contains("(")) { title = title.Substring(0, title.IndexOf("(")).Trim(); } release.TitleOriginal = title; } catch { } try { var year = selectors.Where(s => s.TextContent.ToLower().Contains("año")) .First().NextSibling.TextContent.Trim(); release.Year = Int32.Parse(year); release.TitleOriginal += " (" + year + ")"; } catch { } try { var dateStr = selectors.Where(s => s.TextContent.ToLower().Contains("fecha")) .First().NextSibling.TextContent.Trim(); var date = Convert.ToDateTime(dateStr); release.PublishDate = date; } catch { } try { var sizeStr = selectors.Where(s => s.TextContent.ToLower().Contains("tamaño")) .First().NextSibling.TextContent.Trim(); Regex rgx = new Regex(@"[^0-9,.]"); long size; if (sizeStr.ToLower().Trim().EndsWith("mb")) { size = ReleaseInfo.BytesFromMB(float.Parse(rgx.Replace(sizeStr, ""))); } else { sizeStr = rgx.Replace(sizeStr, "").Replace(",", "."); size = ReleaseInfo.BytesFromGB(float.Parse(rgx.Replace(sizeStr, ""))); } release.Size = size; } catch { } try { var category = selectors.Where(s => s.TextContent.ToLower().Contains("formato")) .First().NextSibling.TextContent.Trim(); release.CategoryText = category; } catch { } try { var title = titleSelector.TextContent; if (title.Contains("(") && title.Contains(")") && title.Contains("4k")) { release.CategoryText = "2160p"; } } catch { } try { var link = html.QuerySelector("a[href*=\"sec=descargas\"]").GetAttribute("href"); release.Link = new Uri(WebUri, link); release.Guid = release.Link; } catch { } return(release); }