Add --subscribed option
This commit is contained in:
@@ -23,6 +23,7 @@ _common_options = [
|
||||
click.option('--saved', is_flag=True, default=None),
|
||||
click.option('--search', default=None, type=str),
|
||||
click.option('--submitted', is_flag=True, default=None),
|
||||
click.option('--subscribed', is_flag=True, default=None),
|
||||
click.option('--time-format', type=str, default=None),
|
||||
click.option('--upvoted', is_flag=True, default=None),
|
||||
click.option('-L', '--limit', default=None, type=int),
|
||||
|
||||
@@ -35,6 +35,7 @@ class Configuration(Namespace):
|
||||
self.skip_subreddit: list[str] = []
|
||||
self.sort: str = 'hot'
|
||||
self.submitted: bool = False
|
||||
self.subscribed: bool = True
|
||||
self.subreddit: list[str] = []
|
||||
self.time: str = 'all'
|
||||
self.time_format = None
|
||||
|
||||
@@ -243,9 +243,19 @@ class RedditConnector(metaclass=ABCMeta):
|
||||
return set(all_entries)
|
||||
|
||||
def get_subreddits(self) -> list[praw.models.ListingGenerator]:
|
||||
if self.args.subreddit:
|
||||
out = []
|
||||
for reddit in self.split_args_input(self.args.subreddit):
|
||||
out = []
|
||||
subscribed_subreddits = set()
|
||||
if self.args.subscribed:
|
||||
if self.args.authenticate:
|
||||
try:
|
||||
subscribed_subreddits = list(self.reddit_instance.user.subreddits(limit=None))
|
||||
subscribed_subreddits = set([s.display_name for s in subscribed_subreddits])
|
||||
except prawcore.InsufficientScope:
|
||||
logger.error('BDFR has insufficient scope to access subreddit lists')
|
||||
else:
|
||||
logger.error('Cannot find subscribed subreddits without an authenticated instance')
|
||||
if self.args.subreddit or subscribed_subreddits:
|
||||
for reddit in self.split_args_input(self.args.subreddit) | subscribed_subreddits:
|
||||
if reddit == 'friends' and self.authenticated is False:
|
||||
logger.error('Cannot read friends subreddit without an authenticated instance')
|
||||
continue
|
||||
@@ -270,9 +280,7 @@ class RedditConnector(metaclass=ABCMeta):
|
||||
logger.debug(f'Added submissions from subreddit {reddit}')
|
||||
except (errors.BulkDownloaderException, praw.exceptions.PRAWException) as e:
|
||||
logger.error(f'Failed to get submissions for subreddit {reddit}: {e}')
|
||||
return out
|
||||
else:
|
||||
return []
|
||||
return out
|
||||
|
||||
def resolve_user_name(self, in_name: str) -> str:
|
||||
if in_name == 'me':
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[DEFAULT]
|
||||
client_id = U-6gk4ZCh3IeNQ
|
||||
client_secret = 7CZHY6AmKweZME5s50SfDGylaPg
|
||||
scopes = identity, history, read, save
|
||||
scopes = identity, history, read, save, mysubreddits
|
||||
backup_log_count = 3
|
||||
max_wait_time = 120
|
||||
time_format = ISO
|
||||
Reference in New Issue
Block a user