SubredditLinkFlairTemplates

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

Provide functions to interact with link flair templates.

Parameters:

subreddit (models.Subreddit)

__init__(subreddit)

Initialize a SubredditFlairTemplates instance.

Parameters:

subreddit (Subreddit) – The subreddit whose flair templates to work with.

Return type:

None

Note

This class should not be initialized directly. Instead, obtain an instance via: reddit.subreddit("test").flair.templates or reddit.subreddit("test").flair.link_templates.

__iter__()

Iterate through the link flair templates as a moderator.

For example:

for template in reddit.subreddit("test").flair.link_templates:
    print(template)
Return type:

Iterator[dict[str, str | int | bool | list[dict[str, str]]]]

add(text, *, allowable_content=None, background_color=None, css_class='', max_emojis=None, mod_only=None, text_color=None, text_editable=False)

Add a link flair template to the associated subreddit.

Parameters:
  • text (str) – The flair template’s text.

  • allowable_content (str | None) – If specified, most be one of "all", "emoji", or "text" to restrict content to that type. If set to "emoji" then the "text" param must be a valid emoji string, for example, ":snoo:".

  • background_color (str | None) – The flair template’s new background color, as a hex color.

  • css_class (str) – The flair template’s css_class (default: "").

  • max_emojis (int | None) – Maximum emojis in the flair (Reddit defaults this value to 10).

  • mod_only (bool | None) – Indicate if the flair can only be used by moderators.

  • text_color (str | None) – The flair template’s new text color, either "light" or "dark".

  • text_editable (bool) – Indicate if the flair text can be modified for each redditor that sets it (default: False).

Return type:

None

For example, to add an editable link flair try:

reddit.subreddit("test").flair.link_templates.add(
    "PRAW",
    css_class="praw",
    text_editable=True,
)
clear()

Remove all link flair templates from the subreddit.

For example:

reddit.subreddit("test").flair.link_templates.clear()
Return type:

None

delete(template_id)

Remove a flair template provided by template_id.

For example, to delete the first Redditor flair template listed, try:

template_info = list(subreddit.flair.templates)[0]
subreddit.flair.templates.delete(template_info["id"])
Return type:

None

Parameters:

template_id (str)

static flair_type(*, is_link)

Return "LINK_FLAIR" or "USER_FLAIR" depending on is_link value.

Return type:

str

Parameters:

is_link (bool)

reorder(flair_list)

Reorder a list of flairs.

Parameters:

flair_list (list[str]) – A list of flair IDs.

Return type:

None

For example, to reverse the order of the link flair list try:

subreddit = reddit.subreddit("test")
flairs = [flair["id"] for flair in subreddit.flair.link_templates]
subreddit.flair.link_templates.reorder(list(reversed(flairs)))
update(template_id, *, allowable_content=None, background_color=None, css_class=None, fetch=True, max_emojis=None, mod_only=None, text=None, text_color=None, text_editable=None)

Update the flair template provided by template_id.

Parameters:
  • template_id (str) – The flair template to update. If not valid then an exception will be thrown.

  • allowable_content (str | None) – If specified, most be one of "all", "emoji", or "text" to restrict content to that type. If set to "emoji" then the "text" param must be a valid emoji string, for example, ":snoo:".

  • background_color (str | None) – The flair template’s new background color, as a hex color.

  • css_class (str | None) – The flair template’s new css_class (default: "").

  • fetch (bool) – Whether PRAW will fetch existing information on the existing flair before updating (default: True).

  • max_emojis (int | None) – Maximum emojis in the flair (Reddit defaults this value to 10).

  • mod_only (bool | None) – Indicate if the flair can only be used by moderators.

  • text (str | None) – The flair template’s new text.

  • text_color (str | None) – The flair template’s new text color, either "light" or "dark".

  • text_editable (bool | None) – Indicate if the flair text can be modified for each redditor that sets it (default: False).

Return type:

None

Warning

If parameter fetch is set to False, all parameters not provided will be reset to their default (None or False) values.

For example, to make a user flair template text editable, try:

template_info = list(subreddit.flair.templates)[0]
subreddit.flair.templates.update(
    template_info["id"],
    text=template_info["flair_text"],
    text_editable=True,
)
user_selectable()

Iterate through the link flair templates as a regular user.

For example:

for template in reddit.subreddit("test").flair.link_templates.user_selectable():
    print(template)
Return type:

Iterator[dict[str, str | bool]]