SubredditWidgets
- class praw.models.SubredditWidgets(subreddit: praw.models.Subreddit)
Class to represent a
Subreddit
’s widgets.Create an instance like so:
widgets = reddit.subreddit("test").widgets
Data will be lazy-loaded. By default, PRAW will not request progressively loading images from Reddit. To enable this, instantiate a
SubredditWidgets
object viawidgets()
, then set the attributeprogressive_images
toTrue
before performing any action that would result in a network request.widgets = reddit.subreddit("test").widgets widgets.progressive_images = True for widget in widgets.sidebar: # do something ...
Access a
Subreddit
’s widgets with the following attributes:print(widgets.id_card) print(widgets.moderators_widget) print(widgets.sidebar) print(widgets.topbar)
The attribute
id_card
contains theSubreddit
’s ID card, which displays information like the number of subscribers.The attribute
moderators_widget
contains theSubreddit
’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, usemod
. For example: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
.mod
on the widget. For example:for widget in widgets.sidebar: widget.mod.update(shortName="Exciting new name")
For more information, see
WidgetModeration
.Currently available widgets:
- __init__(subreddit: praw.models.Subreddit)
Initialize a
SubredditWidgets
instance.- Parameters
subreddit – The
Subreddit
the widgets belong to.
- id_card() praw.models.IDCard
- items() Dict[str, praw.models.Widget]
Get this
Subreddit
’s widgets as a dict from ID to widget.
- mod() praw.models.SubredditWidgetsModeration
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()
.
- moderators_widget() praw.models.ModeratorsWidget
Get this
Subreddit
’sModeratorsWidget
.
- classmethod parse(data: Dict[str, Any], reddit: praw.Reddit) Any
Return an instance of
cls
fromdata
.- Parameters
data – The structured data.
reddit – An instance of
Reddit
.
- refresh()
Refresh the
Subreddit
’s widgets.By default, PRAW will not request progressively loading images from Reddit. To enable this, set the attribute
progressive_images
toTrue
prior to callingrefresh()
.widgets = reddit.subreddit("test").widgets widgets.progressive_images = True widgets.refresh()
- sidebar() List[praw.models.Widget]
Get a list of
Widget
s that make up the sidebar.
- topbar() List[praw.models.Menu]
Get a list of
Widget
s that make up the top bar.