예제 #1
0
        public void hchan_searchparts(string site_link)
        {
            {
                int start = 0;//стартовая позиця для indexof шаг1
                int buf_start = 0;//буферный счетчик. начало
                int buf_end = 0;//буферный счетчик. конец
                int i = 1;//счетчик массива
                int k=0;//счетчик глав
                string text;//буферная строка
                string link;//ссылка на главу манги
                int j = 0;
                string name;//название главы full
                string sn;//название для папки главы
                string parts;
                string site_link_buf;
                string site_link_buf_while;

                //полученик кода страницы
                HTML_first_page = func_saver.get_HTML(site_link);
                status.Text = "Статус ОК";
                status.ForeColor = Color.Green;

                //получить название манги
                buf_start = HTML_first_page.IndexOf("title_top_a");
                buf_start = HTML_first_page.IndexOf("\">", buf_start + 1);
                buf_end = HTML_first_page.IndexOf("</a>", buf_start + 1);
                name = HTML_first_page.Substring(buf_start + 2, buf_end - buf_start - 2);//получение имени из заголовка
                Console.WriteLine(name);
                //получение глав
                if (HTML_first_page.IndexOf("Все главы") != -1)
                {   
                    //название корневой папки
                    buf_start = name.IndexOf(" - г");//название папки
                    global_name = name.Substring(0, buf_start);

                    //фильтр на ссылку. изменение на страницу с главами
                    buf_start = site_link.IndexOf(@"html?", 0);//отсеять после html
                    if (buf_start != -1) site_link = site_link.Substring(0, buf_start + 4);

                    buf_start = site_link.IndexOf(@"/", 10);//старт поиска /
                    site_link_buf = site_link.Remove(buf_start + 1, 5);//замена manga на related
                    site_link_buf = site_link_buf.Insert(buf_start + 1, "related");//замена manga на related

                    //получение и вывод числа глав
                    HTML_first_page = func_saver.get_HTML(site_link_buf + "?offset=" + 0);
                    buf_start = HTML_first_page.IndexOf("pagination_related");
                    buf_start = HTML_first_page.IndexOf("<b>", buf_start+1);
                    buf_end = HTML_first_page.IndexOf("Резул", buf_start + 1);
                    parts = HTML_first_page.Substring(buf_start + 3, buf_end - buf_start - 4);
                    Console.WriteLine(parts);
                    About_found.Text = "Найдено глав " + parts;
                    
                   //поиск ссылок и названий глав
                    while (i!=0)
                    {   

                        i = 0;
                        site_link_buf_while = site_link_buf + "?offset=" + j;
                        HTML_first_page = func_saver.get_HTML(site_link_buf_while);

                        while ((start = HTML_first_page.IndexOf("<div class=\"related\">", start + 1)) != -1)
                        {
                            buf_start = HTML_first_page.IndexOf("<a href=", start + 1);
                            buf_start = HTML_first_page.IndexOf("\"", buf_start);
                            buf_end = HTML_first_page.IndexOf("\"", buf_start + 1);
                            text = HTML_first_page.Substring(buf_start + 8, buf_end - buf_start-8);//получение относительного пути к ссылке
                            link = "http://hentaichan.ru/online/" + text;//ссылка на онлайн читалку для одной главы
                            Console.WriteLine(link);

                            //получить название главы
                            buf_start = HTML_first_page.IndexOf("<h2><a href=", buf_start);
                            buf_start = HTML_first_page.IndexOf(">", buf_start+5);
                            buf_end = HTML_first_page.IndexOf("<", buf_start + 1);
                            sn = HTML_first_page.Substring(buf_start + 1, buf_end - buf_start - 1);

                            Console.WriteLine(sn);
                            i++;//количество глав в возвращенной странице
                            arr_mang_inf[k] = new mang_info(link, name, sn);//создание массива объектов -глав
                            k++;//счетчик глав
                            Found_parts.Items.Add(sn, true);//добавление глав в chekbox found_parts

                        }
                        j=j + 10;//параметр поиска глав

                    }
                }
                else 
                {
                    i = 0;
                    //если сингл 
                    global_name = name;
                    buf_start = site_link.IndexOf(@"/", 10);//старт поиска слеш1
                    site_link = site_link.Remove(buf_start+1, 5);
                    site_link = site_link.Insert(buf_start + 1, "online");//замена manga на online
                    //фильтр адреса
                    buf_start = site_link.IndexOf(@"html?", 0);
                    if (buf_start != -1) site_link = site_link.Substring(0, buf_start + 4);
                    link = site_link;//ссылка на онлайн читалку
                    sn = name;//название главы=название сингла
                    Console.WriteLine(name);
                    arr_mang_inf[i] = new mang_info(link, name, sn);//создание массива объектов -глав
                    Found_parts.Items.Add(sn, true);//добавление глав в chekbox found_parts
                    About_found.Text = "Найдено глав" + 1;

                }
            }//конец hentaichan
        }
예제 #2
0
        public void manga24_searchparts(string site_link)
        {
            {
                int start = 0;//стартовая позиця для indexof шаг1
                int buf_start = 0;//буферный счетчик. начало
                int buf_end = 0;//буферный счетчик. конец
                int i = 0;//счетчик массива
                int length;//длина строки буфера
                string text;//буферная строка
                string link;//ссылка на главу манги
                int j = 0;
                string name;//название главы full
                string sn;//название для папки главы

                //логика поиска глав manga24
                //получение названия для корневой папки
                j = site_link.IndexOf(@"/", 10);
                name = site_link.Substring(j + 1, site_link.Length - j - 1);
                //полученик кода страницы
                HTML_first_page = func_saver.get_HTML(site_link);
                status.Text = "Статус ОК";
                status.ForeColor = Color.Green;

                //поиск подстроки с названием и ссылкой
                while ((start = HTML_first_page.IndexOf("</span>            <a href=", start + 1)) != -1)
                {
                    length = HTML_first_page.IndexOf("</a>", start) - start;
                    text = HTML_first_page.Substring(start, length);//блок с сылкой и названием
                    buf_start = text.IndexOf("<a href=");
                    buf_end = text.IndexOf("title");
                    link = text.Substring(buf_start + 9, buf_end - buf_start - 11);//получить адрес главы
                    j = link.IndexOf("/", 1);
                    link = link.Substring(j, link.Length - j);
                    link = site_link + link;
                    global_name = name;
                    buf_start = buf_end; ;//title
                    buf_end = text.IndexOf(">", buf_start + 1);
                    sn = text.Substring(buf_start + 7, buf_end - buf_start - 8);//получение имени
                    arr_mang_inf[i] = new mang_info(link, name, sn);//создание массива объектов -глав
                    Found_parts.Items.Add(sn, true);//добавление глав в chekbox found_parts
                    i++;
                    About_found.Text = "Найдено глав" + i.ToString();
                }
            }//конец manga24
        }
예제 #3
0
        public void mangachan_searchparts(string site_link)
        {
            {
                int start = 0;//стартовая позиця для indexof шаг1
                int i = 0;//счетчик массива
                string link;//ссылка на главу манги
                int j = 0;
                string name;//название главы full
                string sn;//название для папки главы

                //логика поиска глав mangachan
                string substr;
                int pos_substr1;
                int pos_substr2;
                string table_html;//код таблицы с главами
                int t_count = 0;//счетчик найденых таблиц

                HTML_first_page = func_saver.get_HTML(site_link);
                substr = "href='" + site_link;//маска названия

                //получение названия для корневой папки
                pos_substr1 = HTML_first_page.IndexOf(substr);
                pos_substr1 = HTML_first_page.IndexOf(">", pos_substr1);
                pos_substr2 = HTML_first_page.IndexOf("</a>", pos_substr1);
                global_name = HTML_first_page.Substring(pos_substr1 + 1, pos_substr2 - pos_substr1 - 1);
                name = global_name;
                Console.WriteLine(global_name);

                status.Text = "Статус ОК";
                status.ForeColor = Color.Green;

                //поиск таблицы с главами
                substr = "<table class=\"table_cha\"";//маска начала таблицы
                while (HTML_first_page.IndexOf(substr, t_count) != -1)//пока находятся страницы
                {
                    pos_substr1 = HTML_first_page.IndexOf(substr, t_count);
                    t_count = pos_substr1 + 1;
                    pos_substr1 = HTML_first_page.IndexOf("<td><tr", pos_substr1);
                    pos_substr2 = HTML_first_page.IndexOf("</table>", pos_substr1);
                    table_html = HTML_first_page.Substring(pos_substr1 + 1, pos_substr2 - pos_substr1 - 1);

                    //разбор таблицы. поиск подстроки с главой : названием и ссылкой
                    while ((start = table_html.IndexOf("<a href='", start + 1)) != -1)
                    {
                        pos_substr1 = table_html.IndexOf("' title", start);
                        pos_substr2 = pos_substr1 - start - 9;
                        link = table_html.Substring(start + 9, pos_substr2);//блок с сылкой
                        Console.WriteLine(link);
                        link = "http://mangachan.ru" + link;
                        Console.WriteLine(link);
                        //получение названия главы
                        start = table_html.IndexOf(">", pos_substr1);
                        pos_substr1 = table_html.IndexOf("</", pos_substr1);
                        pos_substr2 = pos_substr1 - start - 1;
                        sn = table_html.Substring(start + 1, pos_substr2);//блок с названием главы
                        sn = sn.Replace("&nbsp;", "");
                        Console.WriteLine(sn);
                        arr_mang_inf[i] = new mang_info(link, name, sn);//создание массива объектов -глав
                        Found_parts.Items.Add(sn, true);//добавление глав в chekbox found_parts
                        i++;
                        About_found.Text = "Найдено глав" + i.ToString();
                    }

                }
            }//конец mangachan
        }
예제 #4
0
        //функционал формы

        //поиск глав
        public void readmanga_searchparts(string site_link)
        {
            {
                int start = 0;//стартовая позиця для indexof шаг1
                int buf_start = 0;//буферный счетчик. начало
                int buf_end = 0;//буферный счетчик. конец
                int i = 0;//счетчик массива
                int length;//длина строки буфера
                string text;//буферная строка
                string link;//ссылка на главу манги
                int j = 0;
                string name;//название главы full
                string sn;//название для папки главы
                int buf1;
                int buf2;
                //логика поиска глав mintmanga и readmanga
                HTML_first_page = func_saver.get_HTML(site_link);
                status.Text = "Статус ОК";
                status.ForeColor = Color.Green;

                //поиск подстроки с названием и ссылкой
                while ((start = HTML_first_page.IndexOf("<td class=", start + 1)) != -1)
                {
                    length = HTML_first_page.IndexOf("</td>", start) - start;
                    text = HTML_first_page.Substring(start, length);//блок с сылкой и названием
                    buf_start = text.IndexOf("<a href=");
                    buf_end = text.IndexOf("title");
                    link = text.Substring(buf_start + 9, buf_end - buf_start - 11);//получить адрес главы
                    j = link.IndexOf("/", 1);
                    link = link.Substring(j, link.Length - j);
                    link = site_link + link;
                    buf_start = buf_end;//title
                    if ((buf1 = text.IndexOf("<sup>", buf_start + 11)) == -1)
                    {
                        buf2 = 4;
                        buf_end = text.IndexOf("</a>");

                    }
                    else
                    {
                        buf2 = 5;
                        buf_end = text.IndexOf("<", buf_start + 11);

                    }
                    name = text.Substring(buf_start + 51, buf_end - buf_start - 67);//получение имени
                    buf_start = name.IndexOf("  ");//позиция первый двойной пробел 
                    buf_end = name.LastIndexOf("  ");//позиция последний двойной пробел 
                    global_name = name.Substring(0, buf_start - 2);
                    sn = name.Substring(buf_end + 2, name.Length - buf_end - buf2);
                    name = name.Remove(buf_start - 2, buf_end - buf_start + 4);//удаление ненужных пробелов
                    name = name.Insert(buf_start - 2, "  ");//название+глава
                    arr_mang_inf[i] = new mang_info(link, name, sn);//создание массива объектов -глав
                    Found_parts.Items.Add(name, true);//добавление глав в chekbox found_parts
                    i++;
                }
                About_found.Text = "Найдено глав" + i.ToString();//количество найденых глав

            }//конец readmanga и minitmanga
        }