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 }
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 }
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(" ", ""); 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 }
//функционал формы //поиск глав 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 }