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 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:

__init__(subreddit: praw.models.Subreddit)

Initialize a SubredditWidgets instance.

Parameters

subreddit – The Subreddit the widgets belong to.

id_card() praw.models.IDCard

Get this Subreddit’s IDCard widget.

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 this SubredditWidgets being outdated. To re-sync, call refresh().

moderators_widget() praw.models.ModeratorsWidget

Get this Subreddit’s ModeratorsWidget.

classmethod parse(data: Dict[str, Any], reddit: praw.Reddit) Any

Return an instance of cls from data.

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

widgets = reddit.subreddit("test").widgets
widgets.progressive_images = True
widgets.refresh()
sidebar() List[praw.models.Widget]

Get a list of Widgets that make up the sidebar.

topbar() List[praw.models.Menu]

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