SubredditFlair#

class praw.models.reddit.subreddit.SubredditFlair(subreddit: praw.models.Subreddit)#

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

__call__(redditor: praw.models.Redditor | str | None = None, **generator_kwargs: Any) Iterator[praw.models.Redditor]#

Return a ListingGenerator for Redditors and their flairs.

Parameters:

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

Additional keyword arguments are passed in the initialization of ListingGenerator.

Usage:

for flair in reddit.subreddit("test").flair(limit=None):
    print(flair)
__init__(subreddit: praw.models.Subreddit)#

Initialize a SubredditFlair instance.

Parameters:

subreddit – The subreddit whose flair to work with.

configure(*, link_position: str = 'left', link_self_assign: bool = False, position: str = 'right', self_assign: bool = False, **settings: Any)#

Update the Subreddit’s flair configuration.

Parameters:
  • link_position – One of "left", "right", or False to disable (default: "left").

  • link_self_assign – Permit self assignment of link flair (default: False).

  • position – One of "left", "right", or False to disable (default: "right").

  • self_assign – Permit self assignment of user flair (default: False).

subreddit = reddit.subreddit("test")
subreddit.flair.configure(link_position="right", self_assign=True)

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

delete(redditor: praw.models.Redditor | str)#

Delete flair for a Redditor.

Parameters:

redditor – A redditor name or Redditor instance.

See also

update() to delete the flair of many redditors at once.

delete_all() list[dict[str, str | bool | dict[str, str]]]#

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("test").flair.link_templates:
    print(template)
set(redditor: praw.models.Redditor | str, *, css_class: str = '', flair_template_id: str | None = None, text: str = '')#

Set flair for a Redditor.

Parameters:
  • redditor – A redditor name 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("test").flair.set("bboe", text="PRAW author", css_class="mods")
template = "6bd28436-1aa7-11e9-9902-0e05ab0fad46"
reddit.subreddit("test").flair.set(
    "spez", text="Reddit CEO", flair_template_id=template
)
templates() praw.models.reddit.subreddit.SubredditRedditorFlairTemplates#

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("test").flair.templates:
    print(template)
update(flair_list: Iterator[str | praw.models.Redditor | dict[str, str | praw.models.Redditor]], *, text: str = '', css_class: str = '') list[dict[str, str | bool | dict[str, str]]]#

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.

    • 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 either "flair_text" or "flair_css_class" keys, the default values will come from the other arguments.

  • css_class – The css class to use when not explicitly provided in flair_list (default: "").

  • text – The flair text 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")