SubredditWidgets¶
- class asyncpraw.models.SubredditWidgets(subreddit)¶
Class to represent a subreddit’s widgets.
Create an instance like so:
subreddit = await reddit.subreddit("redditdev") widgets = subreddit.widgets
Data will be lazy-loaded. By default, Async PRAW will not request progressively loading images from Reddit. To enable this, instantiate a SubredditWidgets object, then set the attribute
progressive_images
toTrue
before performing any action that would result in a network request.subreddit = await reddit.subreddit("redditdev") widgets = subreddit.widgets widgets.progressive_images = True async for widget in widgets.sidebar(): # do something ...
Access a subreddit’s widgets with the following attributes:
print(await widgets.id_card()) print(await widgets.moderators_widget()) print([widget async for widget in widgets.sidebar()]) print([widget async for widget in widgets.topbar()])
The attribute
id_card
contains the subreddit’s ID card, which displays information like the number of subscribers.The attribute
moderators_widget
contains the subreddit’s moderators widget, which lists the moderators of the subreddit.The attribute
sidebar
contains a list of widgets which make up the sidebar of the subreddit.The attribute
topbar
contains a list of widgets which make up the top bar of the subreddit.To edit a subreddit’s widgets, use
mod
. For example:await widgets.mod.add_text_area( "My title", "**bold text**", {"backgroundColor": "#FFFF66", "headerColor": "#3333EE"}, )
For more information, see
SubredditWidgetsModeration
.To edit a particular widget, use
.mod
on the widget. For example:async for widget in widgets.sidebar(): await widget.mod.update(shortName="Exciting new name")
For more information, see
WidgetModeration
.Currently available Widgets:
- __init__(subreddit)¶
Initialize the class.
- Parameters
subreddit – The
Subreddit
the widgets belong to.
- await items()¶
Get this subreddit’s widgets as a dict from ID to widget.
- mod()¶
Get an instance of
SubredditWidgetsModeration
.Note
Using any of the methods of
SubredditWidgetsModeration
will likely result in the data of thisSubredditWidgets
being outdated. To re-sync, callrefresh()
.
- await moderators_widget()¶
Get this subreddit’s
ModeratorsWidget
.
- classmethod parse(data: Dict[str, Any], reddit: asyncpraw.Reddit) Any ¶
Return an instance of
cls
fromdata
.- Parameters
data – The structured data.
reddit – An instance of
Reddit
.
- await refresh()¶
Refresh the subreddit’s widgets.
By default, Async PRAW will not request progressively loading images from Reddit. To enable this, set the attribute
progressive_images
toTrue
prior to callingrefresh()
.subreddit = await reddit.subreddit("redditdev") widgets = subreddit.widgets widgets.progressive_images = True await widgets.refresh()
- async for ... in sidebar()¶
Get a list of Widgets that make up the sidebar.
- async for ... in topbar()¶
Get a list of Widgets that make up the top bar.