コード例 #1
0
 public AnimuSeries()
 {
     AnimuData = new Animu[1];
     AnimuData[0] = new Animu("Animu Title Here", 0, "Animu Subber Here");
 }
コード例 #2
0
        static bool CheckAnimu(Animu animu, out string result_link, out string result_title)
        {
            result_link = LINK_NOT_FOUND;
            result_title = "";

            //Main search engine is nyaa
            StringBuilder sb = new StringBuilder();
            sb.Append("http://www.nyaa.se/?page=rss&term=");
            sb.Append(animu.Subber);
            sb.Append("+");
            string title = animu.Title.Replace(' ', '+');
            sb.Append(title);
            sb.Append("+");
            string episode = (animu.Episode < 10) ? "0" + animu.Episode : animu.Episode.ToString();
            sb.Append(episode);
            string url = sb.ToString();

            try
            {
                Console.WriteLine("Checking animu: " + url);

                HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                request.Timeout = Settings.Instance.SecondsToTimeout * 1000;

                using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                {
                    StreamReader reader = new StreamReader(response.GetResponseStream());

                    XmlDocument doc = new XmlDocument();
                    try
                    {
                        doc.Load(reader);

                        string episode_string = animu.FormattedString();

                        XmlNodeList nodes = doc.SelectNodes("/rss/channel/item");
                        XmlNode found_node = null;

                        foreach (XmlNode node in nodes)
                        {
                            XmlNode node_title = node.SelectSingleNode("title");

                            string title_text = node_title.InnerText;
                            title_text = title_text.Replace("_", " ");
                            bool resolution_found = false;

                            if (title_text.Contains(episode_string))
                            {
                                //Find resolution
                                if (title_text.Contains("480") || title_text.Contains("720") || title_text.Contains("1080"))
                                    resolution_found = true;

                                //Go download if there's no resolution (Note: usually Commie) or if 720p
                                if (!resolution_found || (resolution_found && title_text.Contains("720")))
                                {
                                    found_node = node;
                                    break;
                                }
                            }
                        }

                        if (found_node != null)
                        {
                            result_link = found_node.SelectSingleNode("link").InnerText;
                            result_title = found_node.SelectSingleNode("title").InnerText;

                            Console.WriteLine("Torrent Name: " + result_title);
                            Console.WriteLine("Torrent Link: " + result_link);

                            return true;
                        }
                        else
                        {
                            Console.WriteLine("Not found..");
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Parsing error: " + e.Message);
                    }

                    //Console.WriteLine("Response: \n" + reader.ReadToEnd());
                    reader.Close();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Checking error: " + e.Message);
            }

            return false;
        }