SubredditFlair

class praw.models.reddit.subreddit.SubredditFlair(subreddit)

Provide a set of functions to interact with a Subreddit’s flair.

__call__(redditor=None, **generator_kwargs)

Return a generator for Redditors and their associated flair.

Parameters:redditor – When provided, yield at most a single Redditor instance (default: None).

This method is intended to be used like:

for flair in reddit.subreddit('NAME').flair(limit=None):
    print(flair)
__init__(subreddit)

Create a SubredditFlair instance.

Parameters:subreddit – The subreddit whose flair to work with.
configure(position='right', self_assign=False, link_position='left', link_self_assign=False, **settings)

Update the subreddit’s flair configuration.

Parameters:
  • position – One of left, right, or False to disable (default: right).
  • self_assign – (boolean) Permit self assignment of user flair (default: False).
  • link_position – One of left, right, or False to disable (default: left).
  • link_self_assign – (boolean) Permit self assignment of link flair (default: False).

Additional keyword arguments can be provided to handle new settings as Reddit introduces them.

delete(redditor)

Delete flair for a Redditor.

Parameters:redditor – A redditor name (e.g., 'spez') or Redditor instance.

Note

To delete the flair of many Redditors at once, please see update().

delete_all()

Delete all Redditor flair in the Subreddit.

Returns:List of dictionaries indicating the success or failure of each delete.

Provide an instance of SubredditLinkFlairTemplates.

Use this attribute for interacting with a subreddit’s link flair templates. For example to list all the link flair templates for a subreddit which you have the flair moderator permission on try:

for template in reddit.subreddit('NAME').flair.link_templates:
    print(template)
set(redditor=None, text='', css_class='', flair_template_id=None)

Set flair for a Redditor.

Parameters:
  • redditor – (Required) A redditor name (e.g., 'spez') or Redditor instance.
  • text – The flair text to associate with the Redditor or Submission (default: ‘’).
  • css_class – The css class to associate with the flair html (default: ‘’). Use either this or flair_template_id.
  • flair_template_id – The ID of the flair template to be used (default: None). Use either this or css_class.

This method can only be used by an authenticated user who is a moderator of the associated Subreddit.

For example:

reddit.subreddit('redditdev').flair.set('bboe', 'PRAW author',
                                        css_class='mods')
template = '6bd28436-1aa7-11e9-9902-0e05ab0fad46'
reddit.subreddit('redditdev').flair.set('spez', 'Reddit CEO',
                                        flair_template_id=template)
templates

Provide an instance of SubredditRedditorFlairTemplates.

Use this attribute for interacting with a subreddit’s flair templates. For example to list all the flair templates for a subreddit which you have the flair moderator permission on try:

for template in reddit.subreddit('NAME').flair.templates:
    print(template)
update(flair_list, text='', css_class='')

Set or clear the flair for many Redditors at once.

Parameters:
  • flair_list – Each item in this list should be either: the name of a Redditor, an instance of Redditor, or a dictionary mapping keys user, flair_text, and flair_css_class to their respective values. The user key should map to a Redditor, as described above. When a dictionary isn’t provided, or the dictionary is missing one of flair_text, or flair_css_class attributes the default values will come from the the following arguments.
  • text – The flair text to use when not explicitly provided in flair_list (default: ‘’).
  • css_class – The css class to use when not explicitly provided in flair_list (default: ‘’).
Returns:

List of dictionaries indicating the success or failure of each update.

For example to clear the flair text, and set the praw flair css class on a few users try:

subreddit.flair.update(['bboe', 'spez', 'spladug'],
                       css_class='praw')