Skip to content

Commit 7b113b7

Browse files
committed
added progress bar to archiver and cloner
1 parent 93cf4aa commit 7b113b7

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

bdfr/archiver.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from bdfr.configuration import Configuration
2020
from bdfr.connector import RedditConnector
2121
from bdfr.exceptions import ArchiverError
22+
from bdfr.progress_bar import Progress
2223
from bdfr.resource import Resource
2324

2425
logger = logging.getLogger(__name__)
@@ -29,7 +30,9 @@ def __init__(self, args: Configuration, logging_handlers: Iterable[logging.Handl
2930
super().__init__(args, logging_handlers)
3031

3132
def download(self) -> None:
33+
progress = Progress(self.args.progress_bar, len(self.reddit_lists))
3234
for generator in self.reddit_lists:
35+
progress.subreddit_new(generator)
3336
try:
3437
for submission in generator:
3538
try:
@@ -40,18 +43,22 @@ def download(self) -> None:
4043
f"Submission {submission.id} in {submission.subreddit.display_name} skipped due to"
4144
f" {submission.author.name if submission.author else 'DELETED'} being an ignored user"
4245
)
46+
progress.post_done(submission, False)
4347
continue
4448
if submission.id in self.excluded_submission_ids:
4549
logger.debug(f"Object {submission.id} in exclusion list, skipping")
50+
progress.post_done(submission, False)
4651
continue
4752
logger.debug(f"Attempting to archive submission {submission.id}")
4853
self.write_entry(submission)
54+
progress.post_done(submission, True)
4955
except prawcore.PrawcoreException as e:
5056
logger.error(f"Submission {submission.id} failed to be archived due to a PRAW exception: {e}")
5157
except prawcore.PrawcoreException as e:
5258
logger.error(f"The submission after {submission.id} failed to download due to a PRAW exception: {e}")
5359
logger.debug("Waiting 60 seconds to continue")
5460
sleep(60)
61+
progress.subreddit_done()
5562

5663
def get_submissions_from_link(self) -> list[list[praw.models.Submission]]:
5764
supplied_submissions = []

bdfr/cloner.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from bdfr.archiver import Archiver
1010
from bdfr.configuration import Configuration
1111
from bdfr.downloader import RedditDownloader
12+
from bdfr.progress_bar import Progress
1213

1314
logger = logging.getLogger(__name__)
1415

@@ -18,15 +19,20 @@ def __init__(self, args: Configuration, logging_handlers: Iterable[logging.Handl
1819
super().__init__(args, logging_handlers)
1920

2021
def download(self) -> None:
22+
progress = Progress(self.args.progress_bar, len(self.reddit_lists))
2123
for generator in self.reddit_lists:
24+
progress.subreddit_new(generator)
2225
try:
2326
for submission in generator:
2427
try:
25-
self._download_submission(submission)
28+
success = self._download_submission(submission)
2629
self.write_entry(submission)
2730
except prawcore.PrawcoreException as e:
2831
logger.error(f"Submission {submission.id} failed to be cloned due to a PRAW exception: {e}")
32+
success = False
33+
progress.post_done(submission, success)
2934
except prawcore.PrawcoreException as e:
3035
logger.error(f"The submission after {submission.id} failed to download due to a PRAW exception: {e}")
3136
logger.debug("Waiting 60 seconds to continue")
3237
sleep(60)
38+
progress.subreddit_done()

0 commit comments

Comments
 (0)