Skip to content

Commit

Permalink
Limit skipping missing entries as much as possible
Browse files Browse the repository at this point in the history
  • Loading branch information
timschumi committed Mar 3, 2024
1 parent 7ad26e3 commit 3dbe4cc
Showing 1 changed file with 32 additions and 24 deletions.
56 changes: 32 additions & 24 deletions archive.py
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,14 @@ def process_any(item, **kwargs):
logging.error("Trying to process unknown item type: %s", type(item))


def safe_iterable(func):
try:
return func()
except prawcore.exceptions.NotFound:
logging.exception("Failed to retrieve object list via the API, falling back to an empty list")
return []


def main():
parser = argparse.ArgumentParser()
parser.add_argument('--me', action='store_true')
Expand Down Expand Up @@ -339,40 +347,40 @@ def main():
for subreddit_name in args.subreddit:
try:
subreddit = reddit_client.subreddit(subreddit_name)
except prawcore.exceptions.NotFound:
logging.exception("Failed to find subreddit '%s'", subreddit_name)

for submission in subreddit.hot(limit=None):
process_submission(submission)
for submission in subreddit.new(limit=None):
for submission in subreddit.hot(limit=None):
process_submission(submission)
for submission in subreddit.new(limit=None):
process_submission(submission)
for submission in subreddit.rising(limit=None):
process_submission(submission)
for time_filter in ["all", "day", "hour", "month", "week", "year"]:
for submission in subreddit.top(time_filter=time_filter, limit=None):
process_submission(submission)
for submission in subreddit.rising(limit=None):
for submission in subreddit.controversial(time_filter=time_filter, limit=None):
process_submission(submission)
for time_filter in ["all", "day", "hour", "month", "week", "year"]:
for submission in subreddit.top(time_filter=time_filter, limit=None):
process_submission(submission)
for submission in subreddit.controversial(time_filter=time_filter, limit=None):
process_submission(submission)
for gilded_item in subreddit.gilded(limit=None):
process_any(gilded_item)
except prawcore.exceptions.NotFound:
logging.exception("Failed to find subreddit '%s'", subreddit_name)
for gilded_item in safe_iterable(lambda: subreddit.gilded(limit=None)):
process_any(gilded_item)

for redditor_name in args.redditor:
try:
redditor = reddit_client.redditor(redditor_name)
except prawcore.exceptions.NotFound:
logging.exception("Failed to find redditor '%s'", redditor_name)

for item in redditor.hot(limit=None):
for item in redditor.hot(limit=None):
process_any(item)
for item in redditor.new(limit=None):
process_any(item)
for time_filter in ["all", "day", "hour", "month", "week", "year"]:
for item in redditor.top(time_filter=time_filter, limit=None):
process_any(item)
for item in redditor.new(limit=None):
for item in redditor.controversial(time_filter=time_filter, limit=None):
process_any(item)
for time_filter in ["all", "day", "hour", "month", "week", "year"]:
for item in redditor.top(time_filter=time_filter, limit=None):
process_any(item)
for item in redditor.controversial(time_filter=time_filter, limit=None):
process_any(item)
for item in redditor.gilded(limit=None):
process_any(item)
except prawcore.exceptions.NotFound:
logging.exception("Failed to find redditor '%s'", redditor_name)
for item in safe_iterable(lambda: redditor.gilded(limit=None)):
process_any(item)

for submission in args.submission:
try:
Expand Down

0 comments on commit 3dbe4cc

Please sign in to comment.