SubredditWidgets

class praw.models.SubredditWidgets(subreddit)

Class to represent a subreddit’s widgets.

Create an instance like so:

widgets = reddit.subreddit('redditdev').widgets

Data will be lazy-loaded. By default, PRAW will not request progressively loading images from Reddit. To enable this, instantiate a SubredditWidgets object, then set the attribute progressive_images to True before performing any action that would result in a network request.

widgets = reddit.subreddit('redditdev').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('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:

for widget in widgets.sidebar:
    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.
id_card

Get this subreddit’s IDCard widget.

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

moderators_widget

Get this subreddit’s ModeratorsWidget.

classmethod parse(data, reddit)

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('redditdev').widgets
widgets.progressive_images = True
widgets.refresh()
sidebar

Get a list of Widgets that make up the sidebar.

topbar

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