Multireddit¶
-
class
asyncpraw.models.Multireddit(reddit: Reddit, _data: Dict[str, Any])¶ A class for users’ Multireddits.
This is referred to as a Custom Feed on the Reddit UI.
Typical Attributes
This table describes attributes that typically belong to objects of this class. Since attributes are dynamically provided (see Determine Available Attributes of an Object), there is not a guarantee that these attributes will always be present, nor is this list necessarily complete.
Attribute
Description
can_editA
boolrepresenting whether or not the authenticated user may edit the multireddit.copied_fromThe multireddit that the multireddit was copied from, if it exists, otherwise
None.created_utcWhen the multireddit was created, in Unix Time.
description_htmlThe description of the multireddit, as HTML.
description_mdThe description of the multireddit, as Markdown.
display_nameThe display name of the multireddit.
nameThe name of the multireddit.
over_18A
boolrepresenting whether or not the multireddit is restricted for users over 18.subredditsA
listofSubreddits that make up the multireddit.visibilityThe visibility of the multireddit, either
private,public, orhidden.-
__init__(reddit: Reddit, _data: Dict[str, Any])¶ Construct an instance of the Multireddit object.
-
await
add(subreddit: asyncpraw.models.reddit.subreddit.Subreddit)¶ Add a subreddit to this multireddit.
- Parameters
subreddit – The subreddit to add to this multi.
For example, to add subreddit
r/testto multiredditbboe/test:subreddit = await reddit.subreddit("test") multireddit = await reddit.multireddit("bboe", "test") await multireddit.add(subreddit)
-
comments¶ Provide an instance of
CommentHelper.For example, to output the author of the 25 most recent comments of
r/redditdevexecute:subreddit = await reddit.subreddit("redditdev") async for comment in subreddit.comments(limit=25): print(comment.author)
-
controversial(time_filter: str = 'all', **generator_kwargs: Union[str, int, Dict[str, str]]) → AsyncIterator[Any]¶ Return a
ListingGeneratorfor controversial submissions.- Parameters
time_filter – Can be one of: all, day, hour, month, week, year (default: all).
- Raises
ValueErroriftime_filteris invalid.
Additional keyword arguments are passed in the initialization of
ListingGenerator.This method can be used like:
reddit.domain("imgur.com").controversial("week") multireddit = await reddit.multireddit("samuraisam", "programming") multireddit.controversial("day") redditor = await reddit.redditor("spez") redditor.controversial("month") redditor = await reddit.redditor("spez") redditor.comments.controversial("year") redditor = await reddit.redditor("spez") redditor.submissions.controversial("all") subreddit = await reddit.subreddit("all") subreddit.controversial("hour")
-
await
copy(display_name: Optional[str] = None) → asyncpraw.models.reddit.multi.Multireddit¶ Copy this multireddit and return the new multireddit.
- Parameters
display_name – (optional) The display name for the copied multireddit. Reddit will generate the
namefield from this display name. When not provided the copy will use the same display name and name as this multireddit.
To copy the multireddit
bboe/testwith a name oftesting:multireddit = await reddit.multireddit("bboe", "test") await multireddit.copy("testing")
-
await
delete()¶ Delete this multireddit.
For example, to delete multireddit``bboe/test``:
multireddit = await reddit.multireddit("bboe", "test") await multireddit.delete()
-
gilded(**generator_kwargs: Union[str, int, Dict[str, str]]) → AsyncIterator[Any]¶ Return a
ListingGeneratorfor gilded items.Additional keyword arguments are passed in the initialization of
ListingGenerator.For example, to get gilded items in subreddit
r/test:subreddit = await reddit.subreddit("test") async for item in subreddit.gilded(): print(item.id)
-
hot(**generator_kwargs: Union[str, int, Dict[str, str]]) → AsyncIterator[Any]¶ Return a
ListingGeneratorfor hot items.Additional keyword arguments are passed in the initialization of
ListingGenerator.This method can be used like:
reddit.domain("imgur.com").hot() multireddit = await reddit.multireddit("samuraisam", "programming") multireddit.hot() redditor = await reddit.redditor("spez") redditor.hot() redditor = await reddit.redditor("spez") redditor.comments.hot() redditor = await reddit.redditor("spez") redditor.submissions.hot() subreddit = await reddit.subreddit("all") subreddit.hot()
-
await
load()¶ Re-fetches the object.
This is used to explicitly fetch or re-fetch the object from reddit. This method can be used on any
RedditBaseobject.await reddit_base_object.load()
-
new(**generator_kwargs: Union[str, int, Dict[str, str]]) → AsyncIterator[Any]¶ Return a
ListingGeneratorfor new items.Additional keyword arguments are passed in the initialization of
ListingGenerator.This method can be used like:
reddit.domain("imgur.com").new() multireddit = await reddit.multireddit("samuraisam", "programming") multireddit.new() redditor = await reddit.redditor("spez") redditor.new() redditor = await reddit.redditor("spez") redditor.comments.new() redditor = await reddit.redditor("spez") redditor.submissions.new() subreddit = await reddit.subreddit("all") subreddit.new()
-
classmethod
parse(data: Dict[str, Any], reddit: Reddit) → Any¶ Return an instance of
clsfromdata.- Parameters
data – The structured data.
reddit – An instance of
Reddit.
-
random_rising(**generator_kwargs: Union[str, int, Dict[str, str]]) → AsyncIterator[Submission]¶ Return a
ListingGeneratorfor random rising submissions.Additional keyword arguments are passed in the initialization of
ListingGenerator.For example, to get random rising submissions for subreddit
r/test:subreddit = await reddit.subreddit("test") async for submission in subreddit.random_rising(): print(submission.title)
-
await
remove(subreddit: asyncpraw.models.reddit.subreddit.Subreddit)¶ Remove a subreddit from this multireddit.
- Parameters
subreddit – The subreddit to remove from this multi.
For example, to remove subreddit
r/testfrom multiredditbboe/test:subreddit = await reddit.subreddit("test") multireddit = await reddit.multireddit("bboe", "test") await multireddit.remove(subreddit)
-
rising(**generator_kwargs: Union[str, int, Dict[str, str]]) → AsyncIterator[Submission]¶ Return a
ListingGeneratorfor rising submissions.Additional keyword arguments are passed in the initialization of
ListingGenerator.For example, to get rising submissions for subreddit
r/test:subreddit = await reddit.subreddit("test") async for submission in subreddit.rising(): print(submission.title)
-
staticmethod
sluggify(title: str)¶ Return a slug version of the title.
- Parameters
title – The title to make a slug of.
Adapted from reddit’s utils.py.
-
stream¶ Provide an instance of
SubredditStream.Streams can be used to indefinitely retrieve new comments made to a multireddit, like:
multireddit = await reddit.multireddit("spez", "fun") async for comment in multireddit.stream.comments(): print(comment)
Additionally, new submissions can be retrieved via the stream. In the following example all new submissions to the multireddit are fetched:
multireddit = await reddit.multireddit("bboe", "games") async for submission in multireddit.stream.submissions(): print(submission)
-
top(time_filter: str = 'all', **generator_kwargs: Union[str, int, Dict[str, str]]) → AsyncIterator[Any]¶ Return a
ListingGeneratorfor top submissions.- Parameters
time_filter – Can be one of: all, day, hour, month, week, year (default: all).
- Raises
ValueErroriftime_filteris invalid.
Additional keyword arguments are passed in the initialization of
ListingGenerator.This method can be used like:
reddit.domain("imgur.com").top("week") multireddit = await reddit.multireddit("samuraisam", "programming") multireddit.top("day") redditor = await reddit.redditor("spez") redditor.top("month") redditor = await reddit.redditor("spez") redditor.comments.top("year") redditor = await reddit.redditor("spez") redditor.submissions.top("all") subreddit = await reddit.subreddit("all") subreddit.top("hour")
-
await
update(**updated_settings: Union[str, List[Union[str, asyncpraw.models.reddit.subreddit.Subreddit, Dict[str, str]]]])¶ Update this multireddit.
Keyword arguments are passed for settings that should be updated. They can any of:
- Parameters
display_name – The display name for this multireddit. Must be no longer than 50 characters.
subreddits – Subreddits for this multireddit.
description_md – Description for this multireddit, formatted in Markdown.
icon_name – Can be one of:
art and design,ask,books,business,cars,comics,cute animals,diy,entertainment,food and drink,funny,games,grooming,health,life advice,military,models pinup,music,news,philosophy,pictures and gifs,science,shopping,sports,style,tech,travel,unusual stories,video, orNone.key_color – RGB hex color code of the form
"#FFFFFF".visibility – Can be one of:
hidden,private,public.weighting_scheme – Can be one of:
classic,fresh.
For example, to rename multireddit
bboe/testtobboe/testing:multireddit = await reddit.multireddit("bboe", "test") await multireddit.update(display_name="testing")
-
Note
This list of attributes is not complete. Async PRAW dynamically provides the attributes that Reddit returns via the API. Because those attributes are subject to change on Reddit’s end, Async PRAW makes no effort to document them, other than to instruct you on how to discover what is available. See Determine Available Attributes of an Object for detailed information.