Exemple #1
0
        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++;
            }
        }
Exemple #2
0
            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);
            }