SubredditWidgets
- class asyncpraw.models.SubredditWidgets(subreddit: asyncpraw.models.Subreddit)
Class to represent a
Subreddit’s widgets.Create an instance like so:
subreddit = await reddit.subreddit("test") 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
SubredditWidgetsobject viawidgets(), then set the attributeprogressive_imagestoTruebefore performing any action that would result in a network request.subreddit = await reddit.subreddit("test") 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_cardcontains theSubreddit’s ID card, which displays information like the number of subscribers.The attribute
moderators_widgetcontains theSubreddit’s moderators widget, which lists the moderators of the subreddit.The attribute
sidebarcontains a list of widgets which make up the sidebar of the subreddit.The attribute
topbarcontains a list of widgets which make up the top bar of the subreddit.To edit a
Subreddit’s widgets, usemod. For example:await widgets.mod.add_text_area( short_name="My title", text="**bold text**", styles={"backgroundColor": "#FFFF66", "headerColor": "#3333EE"}, )
For more information, see
SubredditWidgetsModeration.To edit a particular widget, use
.modon 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: asyncpraw.models.Subreddit)
Initialize a
SubredditWidgetsinstance.- Parameters
subreddit – The
Subredditthe widgets belong to.
- await id_card() asyncpraw.models.IDCard
- await items() Dict[str, asyncpraw.models.Widget]
Get this
Subreddit’s widgets as a dict from ID to widget.
- mod() asyncpraw.models.SubredditWidgetsModeration
Get an instance of
SubredditWidgetsModeration.Note
Using any of the methods of
SubredditWidgetsModerationwill likely result in the data of thisSubredditWidgetsbeing outdated. To re-sync, callrefresh().
- await moderators_widget() asyncpraw.models.ModeratorsWidget
Get this
Subreddit’sModeratorsWidget.
- classmethod parse(data: Dict[str, Any], reddit: asyncpraw.Reddit) Any
Return an instance of
clsfromdata.- 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_imagestoTrueprior to callingrefresh().subreddit = await reddit.subreddit("test") widgets = subreddit.widgets widgets.progressive_images = True await widgets.refresh()
- async for ... in sidebar() List[asyncpraw.models.Widget]
Get a list of
Widgets that make up the sidebar.
- async for ... in topbar() List[asyncpraw.models.Menu]
Get a list of
Widgets that make up the top bar.