153 lines
2.6 KiB
Python
153 lines
2.6 KiB
Python
|
|
# retoor <retoor@molodetz.nl>
|
||
|
|
|
||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from typing import Any
|
||
|
|
|
||
|
|
from pydantic import BaseModel, Field
|
||
|
|
|
||
|
|
|
||
|
|
class InvokeIn(BaseModel):
|
||
|
|
fn: str
|
||
|
|
args: list[Any] = Field(default_factory=list)
|
||
|
|
kwargs: dict[str, Any] = Field(default_factory=dict)
|
||
|
|
write: bool = False
|
||
|
|
|
||
|
|
|
||
|
|
class CacheBumpIn(BaseModel):
|
||
|
|
name: str
|
||
|
|
|
||
|
|
|
||
|
|
class UsersByUidsIn(BaseModel):
|
||
|
|
uids: list[str]
|
||
|
|
|
||
|
|
|
||
|
|
class CommentCountsIn(BaseModel):
|
||
|
|
post_uids: list[str]
|
||
|
|
|
||
|
|
|
||
|
|
class VoteCountsIn(BaseModel):
|
||
|
|
target_uids: list[str]
|
||
|
|
|
||
|
|
|
||
|
|
class ReactionsIn(BaseModel):
|
||
|
|
target_type: str
|
||
|
|
target_uids: list[str]
|
||
|
|
user: dict[str, Any] | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class BookmarksIn(BaseModel):
|
||
|
|
user_uid: str
|
||
|
|
target_type: str
|
||
|
|
target_uids: list[str]
|
||
|
|
|
||
|
|
|
||
|
|
class PollsIn(BaseModel):
|
||
|
|
post_uids: list[str]
|
||
|
|
user: dict[str, Any] | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class RecentCommentsIn(BaseModel):
|
||
|
|
post_uids: list[str]
|
||
|
|
limit: int = 3
|
||
|
|
user: dict[str, Any] | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class CommentsIn(BaseModel):
|
||
|
|
target_type: str
|
||
|
|
target_uid: str
|
||
|
|
user: dict[str, Any] | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class FollowBundleIn(BaseModel):
|
||
|
|
user_uid: str
|
||
|
|
target_uids: list[str] | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class RelationsIn(BaseModel):
|
||
|
|
viewer_uid: str | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class OnlineUsersIn(BaseModel):
|
||
|
|
cutoff_iso: str
|
||
|
|
limit: int = 30
|
||
|
|
|
||
|
|
|
||
|
|
class NotificationPrefsIn(BaseModel):
|
||
|
|
user_uid: str
|
||
|
|
|
||
|
|
|
||
|
|
class LeaderboardBundleIn(BaseModel):
|
||
|
|
limit: int = 50
|
||
|
|
offset: int = 0
|
||
|
|
viewer_uid: str | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class SiteSidebarIn(BaseModel):
|
||
|
|
authors_limit: int = 5
|
||
|
|
|
||
|
|
|
||
|
|
class AwardsBundleIn(BaseModel):
|
||
|
|
receiver_uid: str
|
||
|
|
page: int = 1
|
||
|
|
per_page: int = 12
|
||
|
|
profile_user: dict[str, Any] | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class AttachmentsIn(BaseModel):
|
||
|
|
resource_type: str
|
||
|
|
resource_uids: list[str]
|
||
|
|
|
||
|
|
|
||
|
|
class UserMediaIn(BaseModel):
|
||
|
|
user_uid: str
|
||
|
|
page: int = 1
|
||
|
|
per_page: int = 24
|
||
|
|
|
||
|
|
|
||
|
|
class SeoMetaIn(BaseModel):
|
||
|
|
target_type: str
|
||
|
|
uids: list[str]
|
||
|
|
|
||
|
|
|
||
|
|
class FeedPageIn(BaseModel):
|
||
|
|
user: dict[str, Any] | None = None
|
||
|
|
tab: str = "all"
|
||
|
|
topic: str | None = None
|
||
|
|
search: str = ""
|
||
|
|
before: str | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class PostDetailIn(BaseModel):
|
||
|
|
post_uid: str
|
||
|
|
user: dict[str, Any] | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class ProfileBundleIn(BaseModel):
|
||
|
|
profile_uid: str
|
||
|
|
viewer: dict[str, Any] | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class MessagesPageIn(BaseModel):
|
||
|
|
user_uid: str
|
||
|
|
|
||
|
|
|
||
|
|
class NotificationsPageIn(BaseModel):
|
||
|
|
user_uid: str
|
||
|
|
|
||
|
|
|
||
|
|
class LeaderboardPageIn(BaseModel):
|
||
|
|
viewer_uid: str | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class ProjectDetailIn(BaseModel):
|
||
|
|
project_uid: str
|
||
|
|
|
||
|
|
|
||
|
|
class GistDetailIn(BaseModel):
|
||
|
|
gist_uid: str
|
||
|
|
user: dict[str, Any] | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class GameStateIn(BaseModel):
|
||
|
|
user_uid: str | None = None
|