Exemple #1
0
        private void nextPageButton_Click(object sender, EventArgs e)
        {
            if (_selectedThread == null)
            {
                return;
            }
            btnNextPage.Enabled = false;
            btnPrevPage.Enabled = false;

            if (_currentPageIndex == _selectedThread.LoadedPages.Count - 1)
            {
                if (_selectedThread.LoadedPages.Last().GetNextPageUrl() == null)
                {
                    return;
                }
                _selectedThread.LoadedPages.Add(_selectedThread.RemoveQuotesAndRepeats(new BLPage(_selectedThread.LoadedPages.Last().GetNextPageUrl())));
                _currentPageIndex++;
                UpdateListAsync();
            }
            else
            {
                _currentPageIndex++;
                UpdateListAsync();
            }
        }
        private void ScanThread(BLThread threadToScan, BackgroundWorker bw)
        {
            if (threadToScan.LoadedPages == null)
            {
                threadToScan.LoadedPages = new List <BLPage>();
                threadToScan.OpeningPost = new BLPage(threadToScan.OpeningPostUrl);
                threadToScan.LoadedPages.Add(threadToScan.OpeningPost);
            }

            var lastPage = threadToScan.LoadedPages.Last();

            lastPage.Load();
            currentPage = lastPage.CurrentPageNumber;
            var nextPageUrl = lastPage.GetNextPageUrl();

            bw.ReportProgress(currentPage, lastPage.Images.Count);
            while (!bw.CancellationPending && !string.IsNullOrEmpty(nextPageUrl))
            {
                var nextPage = threadToScan.RemoveQuotesAndRepeats(new BLPage(nextPageUrl));
                threadToScan.LoadedPages.Add(nextPage);
                currentPage = nextPage.CurrentPageNumber;
                nextPageUrl = nextPage.GetNextPageUrl();
                bw.ReportProgress(currentPage, nextPage.Images.Count);
            }
        }