SubredditWidgets

class praw.models.SubredditWidgets(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 via widgets(), then set the attribute progressive_images to True 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 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:

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:

Parameters:

subreddit (models.Subreddit)

__init__(subreddit)

Initialize a SubredditWidgets instance.

Parameters:

subreddit (Subreddit) – The Subreddit the widgets belong to.

Return type:

None

id_card()

Get this Subreddit’s IDCard widget.

Return type:

IDCard

items()

Get this Subreddit’s widgets as a dict from ID to widget.

Return type:

dict[str, Widget]

mod()

Get an instance of SubredditWidgetsModeration.

Note

Using any of the methods of SubredditWidgetsModeration will likely result in the data of this SubredditWidgets being outdated. To re-sync, call refresh().

Return type:

SubredditWidgetsModeration

moderators_widget()

Get this Subreddit’s ModeratorsWidget.

Return type:

ModeratorsWidget

classmethod parse(data, reddit)

Return an instance of cls from data.

Parameters:
Return type:

PRAWBase

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 to True prior to calling refresh().

widgets = reddit.subreddit("test").widgets
widgets.progressive_images = True
widgets.refresh()
Return type:

None

sidebar()

Get a list of Widgets that make up the sidebar.

Return type:

list[Widget]

topbar()

Get a list of Widgets that make up the top bar.

Return type:

list[Menu]