feat: 1-to-1 message render + web data-lake backend
This commit is contained in:
1 parent
f0afb7ec5b
commit
75425d1bee
110 files changed
+10199
-54
No files matched your search
@@ -16,11 +16,139 @@ class Page(BaseModel):
|
||||
return min(self.limit, MAX_LIMIT)
|
||||
|
||||
|
||||
class AccountView(BaseModel):
|
||||
account_id: int
|
||||
label: str | None
|
||||
phone: str | None
|
||||
tg_user_id: int | None
|
||||
is_active: bool
|
||||
|
||||
|
||||
class ChatListItem(BaseModel):
|
||||
chat_id: int
|
||||
title: str | None
|
||||
kind: str
|
||||
has_avatar: bool
|
||||
is_bot: bool
|
||||
is_contact: bool
|
||||
is_broadcast: bool
|
||||
message_count: int
|
||||
last_date: datetime | None
|
||||
last_text: str | None
|
||||
last_sender_id: int | None
|
||||
|
||||
|
||||
class EntityView(BaseModel):
|
||||
type: str
|
||||
offset: int
|
||||
length: int
|
||||
url: str | None = None
|
||||
custom_emoji_id: str | None = None
|
||||
language: str | None = None
|
||||
|
||||
|
||||
class ReplyView(BaseModel):
|
||||
message_id: int | None = None
|
||||
sender_id: int | None = None
|
||||
sender_name: str | None = None
|
||||
text: str | None = None
|
||||
media_kind: str | None = None
|
||||
|
||||
|
||||
class ForwardView(BaseModel):
|
||||
kind: str
|
||||
from_id: int | None = None
|
||||
from_name: str | None = None
|
||||
chat_id: int | None = None
|
||||
chat_title: str | None = None
|
||||
message_id: int | None = None
|
||||
date: datetime | None = None
|
||||
signature: str | None = None
|
||||
|
||||
|
||||
class MediaRef(BaseModel):
|
||||
message_id: int
|
||||
id: int | None = None
|
||||
kind: str
|
||||
downloaded: bool = False
|
||||
width: int | None = None
|
||||
height: int | None = None
|
||||
duration: float | None = None
|
||||
mime: str | None = None
|
||||
file_size: int | None = None
|
||||
ttl_seconds: int | None = None
|
||||
|
||||
|
||||
class ReactionCount(BaseModel):
|
||||
emoji: str | None = None
|
||||
custom_emoji_id: str | None = None
|
||||
count: int
|
||||
chosen: bool = False
|
||||
|
||||
|
||||
class InlineButton(BaseModel):
|
||||
text: str
|
||||
kind: str
|
||||
url: str | None = None
|
||||
data: str | None = None
|
||||
|
||||
|
||||
class WebPageView(BaseModel):
|
||||
url: str
|
||||
display_url: str | None = None
|
||||
type: str | None = None
|
||||
site_name: str | None = None
|
||||
title: str | None = None
|
||||
description: str | None = None
|
||||
has_photo: bool = False
|
||||
|
||||
|
||||
class PollOption(BaseModel):
|
||||
text: str
|
||||
voter_count: int = 0
|
||||
vote_percentage: int = 0
|
||||
correct: bool | None = None
|
||||
|
||||
|
||||
class PollView(BaseModel):
|
||||
question: str
|
||||
options: list[PollOption] = []
|
||||
total_voter_count: int = 0
|
||||
quiz: bool = False
|
||||
closed: bool = False
|
||||
multiple: bool = False
|
||||
anonymous: bool = True
|
||||
|
||||
|
||||
class ContactView(BaseModel):
|
||||
user_id: int | None = None
|
||||
first_name: str | None = None
|
||||
last_name: str | None = None
|
||||
phone_number: str | None = None
|
||||
|
||||
|
||||
class LocationView(BaseModel):
|
||||
latitude: float | None = None
|
||||
longitude: float | None = None
|
||||
title: str | None = None
|
||||
address: str | None = None
|
||||
|
||||
|
||||
class ServiceView(BaseModel):
|
||||
kind: str
|
||||
member_ids: list[int] | None = None
|
||||
pinned_message_id: int | None = None
|
||||
duration: int | None = None
|
||||
|
||||
|
||||
class StickerView(BaseModel):
|
||||
emoji: str | None = None
|
||||
set_name: str | None = None
|
||||
width: int | None = None
|
||||
height: int | None = None
|
||||
mime: str | None = None
|
||||
is_animated: bool = False
|
||||
is_video: bool = False
|
||||
|
||||
|
||||
class MessageView(BaseModel):
|
||||
@@ -33,6 +161,23 @@ class MessageView(BaseModel):
|
||||
is_self_destruct: bool
|
||||
edited_at: datetime | None
|
||||
deleted_at: datetime | None
|
||||
entities: list[EntityView] = []
|
||||
quote: str | None = None
|
||||
reply: ReplyView | None = None
|
||||
forward: ForwardView | None = None
|
||||
media_group_id: str | None = None
|
||||
media: list[MediaRef] = []
|
||||
reactions: list[ReactionCount] = []
|
||||
inline_buttons: list[list[InlineButton]] = []
|
||||
web_page: WebPageView | None = None
|
||||
poll: PollView | None = None
|
||||
contact: ContactView | None = None
|
||||
location: LocationView | None = None
|
||||
service: ServiceView | None = None
|
||||
via_bot_id: int | None = None
|
||||
sticker: StickerView | None = None
|
||||
is_sticker: bool = False
|
||||
is_animated_emoji: bool = False
|
||||
|
||||
|
||||
class MessageVersionView(BaseModel):
|
||||
@@ -56,6 +201,22 @@ class MediaView(BaseModel):
|
||||
created_at: datetime
|
||||
|
||||
|
||||
class MediaVersionView(BaseModel):
|
||||
id: int
|
||||
kind: str
|
||||
storage_key: str
|
||||
file_size: int | None
|
||||
mime: str | None
|
||||
observed_at: datetime
|
||||
|
||||
|
||||
class AvatarRef(BaseModel):
|
||||
unique_id: str
|
||||
storage_key: str | None
|
||||
downloaded: bool
|
||||
mime: str | None
|
||||
|
||||
|
||||
class CallbackView(BaseModel):
|
||||
position: int
|
||||
label: str | None
|
||||
@@ -103,6 +264,7 @@ class PeerView(BaseModel):
|
||||
phone: str | None
|
||||
photo_unique_id: str | None
|
||||
is_deleted_account: bool
|
||||
has_avatar: bool
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user