1
0
Fork 0
mirror of synced 2024-09-28 07:12:07 +12:00

Re-implement --limit option

This commit is contained in:
Serene-Arc 2021-02-15 13:55:33 +10:00 committed by Ali Parlakci
parent 866d94f37e
commit 8e54986357
2 changed files with 19 additions and 10 deletions

View file

@ -76,6 +76,7 @@ def _add_options():
parser.add_argument("--limit",
help="default: unlimited",
metavar="Limit",
default=None,
type=int)
parser.add_argument("--time",
help="Either hour, day, week, month, year or all. default: all",

View file

@ -104,18 +104,22 @@ class RedditDownloader:
if self.args.search:
return [reddit.search(self.args.search, sort=self.sort_filter.name.lower()) for reddit in subreddits]
else:
if self.sort_filter is RedditTypes.SortType.NEW:
sort_function = praw.models.Subreddit.new
elif self.sort_filter is RedditTypes.SortType.RISING:
sort_function = praw.models.Subreddit.rising
elif self.sort_filter is RedditTypes.SortType.CONTROVERSIAL:
sort_function = praw.models.Subreddit.controversial
else:
sort_function = praw.models.Subreddit.hot
return [sort_function(reddit) for reddit in subreddits]
sort_function = self._determine_sort_function()
return [sort_function(reddit, limit=self.args.limit) for reddit in subreddits]
else:
return []
def _determine_sort_function(self):
if self.sort_filter is RedditTypes.SortType.NEW:
sort_function = praw.models.Subreddit.new
elif self.sort_filter is RedditTypes.SortType.RISING:
sort_function = praw.models.Subreddit.rising
elif self.sort_filter is RedditTypes.SortType.CONTROVERSIAL:
sort_function = praw.models.Subreddit.controversial
else:
sort_function = praw.models.Subreddit.hot
return sort_function
def _get_multireddits(self) -> list[praw.models.ListingGenerator]:
if self.args.multireddit:
if self.authenticated:
@ -129,10 +133,14 @@ class RedditDownloader:
if any((self.args.upvoted, self.args.submitted, self.args.saved)):
if self.authenticated:
generators = []
sort_function = self._determine_sort_function()
if self.args.upvoted:
generators.append(self.reddit_instance.redditor(self.args.user).upvoted)
if self.args.submitted:
generators.append(self.reddit_instance.redditor(self.args.user).submissions)
generators.append(
sort_function(
self.reddit_instance.redditor(self.args.user).submissions,
limit=self.args.limit))
if self.args.saved:
generators.append(self.reddit_instance.redditor(self.args.user).saved)