Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        public ThreadScan(BLThread threadToScan)
        {
            InitializeComponent();
            lblScanningThread.Text = "Scanning thread: " + threadToScan.ThreadName;
            var maxPage = threadToScan.OpeningPost.GetPageMax();

            progressBar1.Minimum = 0;
            progressBar1.Maximum = maxPage;
            bwScanner            = new BackgroundWorker {
                WorkerReportsProgress = true, WorkerSupportsCancellation = true
            };
            bwScanner.DoWork          += (sender, args) => ScanThread(threadToScan, bwScanner);
            bwScanner.ProgressChanged += (sender, args) =>
            {
                if (args.ProgressPercentage != -1)
                {
                    progressBar1.Value = args.ProgressPercentage > progressBar1.Maximum ? progressBar1.Maximum : args.ProgressPercentage;
                }


                lblThreadScanProgress.Text = string.Format(ScannedPagesFormat, args.ProgressPercentage,
                                                           maxPage, (int)args.UserState);
            };
            bwScanner.RunWorkerCompleted += (sender, args) =>
            {
                MessageBox.Show("Scan completed.");
                DialogResult = bwScanner.CancellationPending ? DialogResult.Abort : DialogResult.OK;
                threadToScan.ImagesAmount = threadToScan.LoadedPages.Sum(lp => lp.Images.Count);
                button1.Enabled           = true;
                Close();
            };
        }
Exemplo n.º 3
0
        public DownloadForm(BLThread thread)
        {
            InitializeComponent();
            _myThread     = thread;
            _postsPerPage = DefaultPostsPerPage;
            _pageMax      = thread.OpeningPost.GetPageMax();

            numFromPage.Minimum = 1;
            numFromPage.Maximum = _pageMax;
            numFromPage.Value   = 1;

            numToPage.Minimum = 1;
            numToPage.Maximum = _pageMax;
            numToPage.Value   = _pageMax;

            cmbPostsPerPage.SelectedIndex = 1;
        }
Exemplo n.º 4
0
 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.RowIndex < 0)
     {
         return;
     }
     _selectedThread = _selectedForum.ForumThreads[e.RowIndex];
     if (_selectedThread.OpeningPost == null)
     {
         _selectedThread.OpeningPost = new BLPage(_selectedThread.OpeningPostUrl);
         _selectedThread.LoadedPages.Add(_selectedThread.OpeningPost);
     }
     pictureBox1.Image = null;
     _currentPageIndex = 0;
     InitThreadDetails();
     UpdateListAsync();
 }