Source code for redditwarp.models.flair


from __future__ import annotations
from typing import Any, Mapping, Sequence, Iterator, Union, overload

from dataclasses import dataclass

from .datamemento import DatamementoDataclassesMixin


[docs]@dataclass(repr=False, eq=False) class FlairTemplate(DatamementoDataclassesMixin): d: Mapping[str, Any] uuid: str text_mode: str (""" Either `text` or `richtext`. """) text: str css_class: str bg_color: str (""" A background color hex string. E.g., `#46d160`. If a user flair template and the background color is unset then the value is an empty string. The value cannot be empty for post flair templates. """) fg_color_scheme: str (""" Either `dark` or `light`. """) mod_only: bool (""" Whether flair is only available for mods to select. """) text_editable: bool (""" Whether users are able to edit the flair text. """) allowable_content: str (""" Either: `all`, `emoji`, `text`. Value `all` if both text and emojis are allowed in the flair text, `emoji` if only emojis are allowed, `text` if only text is allowed. """) max_emojis: int (""" Maximum number of emojis allowed in a flair. An integer from 1 to 10. """)
[docs]@dataclass(repr=False, eq=False) class FlairTemplateChoice: uuid: str text: str css_class: str text_editable: bool
[docs]@dataclass(repr=False, eq=False) class FlairTemplateChoices(Sequence[FlairTemplateChoice]): choices: Sequence[FlairTemplateChoice] subreddit_flair_user_position: str (""" Either: `left`, `right`, or empty string. """) def __len__(self) -> int: return len(self.choices) def __contains__(self, item: object) -> bool: return item in self.choices def __iter__(self) -> Iterator[FlairTemplateChoice]: return iter(self.choices) @overload def __getitem__(self, index: int) -> FlairTemplateChoice: ... @overload def __getitem__(self, index: slice) -> Sequence[FlairTemplateChoice]: ... def __getitem__(self, index: Union[int, slice]) -> Union[FlairTemplateChoice, Sequence[FlairTemplateChoice]]: return self.choices[index]
[docs]@dataclass(repr=False, eq=False) class UserFlairAssociation: user: str text: str css_class: str has_had_flair_css_class_assigned_before_in_subreddit_when_no_flair_template_assigned: bool