Source code for redditwarp.models.message


from __future__ import annotations
from typing import TYPE_CHECKING, Mapping, Any, Optional
if TYPE_CHECKING:
    from datetime import datetime as DateTime

from dataclasses import dataclass
from enum import Enum, auto

from .datamemento import DatamementoDataclassesMixin

[docs]class CommentMessageCause(Enum): USERNAME_MENTION = auto() SUBMISSION_REPLY = auto() COMMENT_REPLY = auto()
[docs]@dataclass(repr=False, eq=False) class MailboxMessage(DatamementoDataclassesMixin): d: Mapping[str, Any] subject: str (""" Subject of the message. If a comment message (i.e., :class:`CommentMessage`) then the value will be: * `comment reply` if a comment reply. * `post reply` if a post reply. * `username mention` if a username mention. """) author_name: str (""" Author name. Unknown what happens if the user is deleted. Is the value `[deleted]`, an empty string, or does the field in the underlying object not exist? If you have any information about this, please open an issue report at `<https://github.com/Pyprohly/redditwarp/issues>`_. """) unread: bool
[docs]@dataclass(repr=False, eq=False) class ComposedMessage(MailboxMessage): id: int unixtime: int (""" Unix timestamp of when the composed message was sent. """) datetime: DateTime (""" A datetime object of when the composed message was sent. """) body: str (""" The message content. """) body_html: str (""" The message content as HTML. """) unread: bool (""" Whether the message is new. """) distinguished: str (""" Either: `moderator`, `admin`, `gold-auto`, or empty string. Empty string if not distinguished. """) src_user_name: Optional[str] (""" Username of the sender. """) src_subr_name: Optional[str] (""" Name of the subreddit in which the message was sent from. """) dst_user_name: Optional[str] (""" Username of the recipient. """) dst_subr_name: Optional[str] (""" Name of the subreddit in which the message was sent to. """) src_user_id: Optional[int] (""" ID of the user who sent the message. """)
[docs]@dataclass(repr=False, eq=False) class CommentMessage(MailboxMessage):
[docs] @dataclass(repr=False, eq=False) class Submission: id: int title: str permalink_path: str permalink: str comment_count: int
[docs] @dataclass(repr=False, eq=False) class Comment: id: int created_ut: int created_at: DateTime author_name: str (""" Author name. Unknown what happens if the user is deleted. Is the value `[deleted]`, an empty string, or does the field in the underlying object not exist? If you have any information about this, please open an issue report at `<https://github.com/Pyprohly/redditwarp/issues>`_. """) author_id: int (""" Author ID. Unknown what happens if the user is deleted. If you have any information about this, please open an issue report at `<https://github.com/Pyprohly/redditwarp/issues>`_. """) subreddit_name: str (""" Subreddit name. Unknown what happens if the subreddit is deleted. Is the value `[deleted]`, an empty string, or does the field in the underlying object not exist? If you have any information about this, please open an issue report at `<https://github.com/Pyprohly/redditwarp/issues>`_. """) permalink_path: str permalink: str is_top_level: bool has_parent_comment: bool parent_comment_id36: str parent_comment_idn: int parent_comment_id: int score: int body: str body_html: str voted: int
cause: CommentMessageCause submission: CommentMessage.Submission comment: CommentMessage.Comment