示例#1
0
        bool hasNextPage;  //每一章是否分页
        /// <summary>
        /// 获取章节内容
        /// </summary>
        private void GetContent(bool forceRefresh = false)
        {
            //章节页地址
            page = textBox_page.Text.Trim();
            //非空判断
            if (string.IsNullOrEmpty(page))
            {
                return;
            }

            //不是强制刷新,如果本地有文件,则读取
            if (!forceRefresh)
            {
                List <Chapter> tmpList = chapters.Where(c => c.site == page).ToList();
                if (tmpList.Count > 0)  //寻找一样的章节,根据网址寻找
                {
                    string chapter1 = tmpList[0].chapter;
                    string path     = Application.StartupPath + "\\SavedNovels\\" + novelName + "\\" + chapter1 + ".novel";
                    if (File.Exists(path))  //读取本地内容
                    {
                        label_book.Text = "《" + novelName + "》 " + chapter1;
                        richTextBox1.Focus();
                        richTextBox1.SelectionStart = 0;
                        //将当期页的信息存入数据库
                        Chapter chapter = new Chapter(novelName, chapter1, page);
                        UpdateData(chapter);
                        int index = chapters.IndexOf(tmpList[0]);
                        if (index < chapters.Count - 1) //下一章地址
                        {
                            next_page = chapters[index + 1].site;
                        }
                        if (index > 0)  //上一章地址
                        {
                            preview_page = chapters[index - 1].site;
                        }
                        byte[] bytes = File.ReadAllBytes(path);
                        string text  = Compress.DecompressString(bytes);
                        if (text != null)
                        {
                            richTextBox1.Text = text;
                        }
                        else  //解压失败,有可能是未压缩,也有可能是数据损坏
                        {
                            richTextBox1.Text = Encoding.UTF8.GetString(bytes);
                        }
                        return;
                    }
                }
            }

            richTextBox1.Text    = "";
            label_book.Text      = "获取中……";
            textBox_page.Enabled = false;
            button1.Enabled      = false;
            button_next.Enabled  = false;
            button_pre.Enabled   = false;
            string url = GetContentPage(page); //章节页面地址

            tools.GetHtmlByThread(url, GetContentCode);
        }