Documentation
¶
Index ¶
- Constants
- type AuthNodeInfo
- type Chat
- type ChatMessage
- type Device
- type Error
- type Filter
- type FilterAction
- type FilterContext
- type FilterKeyword
- type ID
- type Identity
- type Like
- type ModelType
- type ModerationObjectType
- type ModerationResult
- type Notification
- type NotificationType
- type Owner
- type ReplyNode
- type Tweet
- type TweetEdit
- type TweetModeration
- type User
- type UserModeration
Constants ¶
const QRByteModeCapacity = 2953
QRByteModeCapacity is the maximum payload (bytes) that fits in a QR code at version 40 with error correction level 'L' in byte mode. The desktop UI renders the AuthNodeInfo envelope as a pairing QR; JSON payloads larger than this cannot be encoded and the QR modal renders blank.
const RetweetPrefix = "RT:"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthNodeInfo ¶
type AuthNodeInfo struct {
UserId string `json:"user_id"`
Token string `json:"token"`
PSK string `json:"psk"`
ID string `json:"node_id"`
Addresses []string `json:"addresses"`
Role string `json:"role"`
BootstrapPeers []string `json:"bootstrap_peers"`
Network string `json:"network,omitempty"`
}
AuthNodeInfo defines model for AuthNodeInfo.
func (AuthNodeInfo) LogSize ¶ added in v0.6.249
func (a AuthNodeInfo) LogSize()
LogSize logs the JSON-encoded size of the AuthNodeInfo and warns when it exceeds QRByteModeCapacity, surfacing pairing-QR overflow in node logs before users hit a blank QR modal.
type Chat ¶
type Chat struct {
CreatedAt time.Time `json:"created_at"`
Id string `json:"id"`
OtherUserId string `json:"other_user_id"`
OwnerId string `json:"owner_id"`
LastMessage string `json:"last_message"`
UpdatedAt time.Time `json:"updated_at"`
}
Chat defines model for Chat.
type ChatMessage ¶
type ChatMessage struct {
ChatId string `json:"chat_id"`
CreatedAt time.Time `json:"created_at"`
Id string `json:"id"`
ReceiverId string `json:"receiver_id"`
SenderId string `json:"sender_id"`
Text string `json:"text"`
Status string `json:"status,omitempty"`
}
ChatMessage defines model for ChatMessage.
type Filter ¶ added in v0.7.26
type Filter struct {
Id string `json:"id"`
UserId string `json:"user_id"`
Title string `json:"title"`
Context []FilterContext `json:"context"`
Action FilterAction `json:"action"`
ExpiresAt *time.Time `json:"expires_at,omitempty"`
Keywords []FilterKeyword `json:"keywords"`
}
type FilterAction ¶ added in v0.7.26
type FilterAction string
FilterAction is what happens to a tweet that matches a filter.
const ( FilterActionWarn FilterAction = "warn" FilterActionHide FilterAction = "hide" )
type FilterContext ¶ added in v0.7.26
type FilterContext string
Filter is a per-user keyword/regex filter. Filters apply at timeline-read time; they're never replicated to peers. Keywords are stored as an embedded slice (Mastodon models them as a sub-resource with their own ids — we keep the same shape on the wire but the storage is one record per filter). FilterContext is where a content filter applies. Closed enum — only these values are accepted on the wire. Note: there is no "account" context in Warpnet — Warpnet has users and nodes, not accounts. Warpnet has no "public" context either — every tweet is public by default, so a filter on a "public" timeline would be redundant.
const ( FilterContextHome FilterContext = "home" FilterContextNotifications FilterContext = "notifications" FilterContextThread FilterContext = "thread" )
type FilterKeyword ¶ added in v0.7.26
type FilterKeyword struct {
Id string `json:"id"`
Keyword string `json:"keyword"`
WholeWord bool `json:"whole_word"`
}
FilterKeyword is a single match rule on a filter.
type Identity ¶
type Identity struct {
Owner Owner `json:"owner"`
Token string `json:"token"`
PSK string `json:"psk"`
}
Identity defines model for Identity.
type ModerationObjectType ¶ added in v0.5.30
type ModerationObjectType int
const ( ModerationUserType ModerationObjectType = iota ModerationTweetType ModerationReplyType ModerationImageType )
func (ModerationObjectType) String ¶ added in v0.5.134
func (t ModerationObjectType) String() string
type ModerationResult ¶ added in v0.5.30
type ModerationResult bool
const ( OK ModerationResult = true FAIL ModerationResult = false )
type Notification ¶ added in v0.5.30
type NotificationType ¶ added in v0.5.30
type NotificationType string
const ( NotificationModerationType NotificationType = "moderation" NotificationRetweetType NotificationType = "retweet" NotificationFollowType NotificationType = "follow" NotificationLikeType NotificationType = "like" NotificationMentionType NotificationType = "mention" NotificationReplyType NotificationType = "reply" )
func (NotificationType) String ¶ added in v0.5.30
func (n NotificationType) String() string
type Owner ¶
type Owner struct {
CreatedAt time.Time `json:"created_at"`
NodeId string `json:"node_id"`
UserId string `json:"user_id"`
RedundantUserID string `json:"id"`
Username string `json:"username"`
}
Owner defines model for Owner.
type Tweet ¶
type Tweet struct {
CreatedAt time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
Id string `json:"id"`
ParentId *string `json:"parent_id,omitempty"`
// RetweetedBy retweeted by user id
RetweetedBy *string `json:"retweeted_by,omitempty"`
RootId string `json:"root_id"`
Text string `json:"text"`
UserId string `json:"user_id"`
Username string `json:"username"`
ImageKeys []string `json:"image_keys,omitempty"`
Network string `json:"network"`
Moderation *TweetModeration `json:"moderation,omitempty"`
Pinned bool `json:"pinned,omitempty"`
QuotedTweetId *string `json:"quoted_tweet_id,omitempty"`
QuotedUserId *string `json:"quoted_user_id,omitempty"`
}
Tweet defines model for Tweet.
ParentId is the parent TWEET id (not a user id) for replies; nil for top-level tweets and for replies that hang directly off RootId.
func (*Tweet) IsModerated ¶ added in v0.5.134
type TweetEdit ¶ added in v0.7.26
type TweetEdit struct {
Id string `json:"id"`
OriginalTweetId string `json:"original_tweet_id"`
UserId string `json:"user_id"`
Text string `json:"text"`
EditedAt time.Time `json:"edited_at"`
}
TweetEdit is an immutable revision row. Tweets are mutated in-place (Tweet.Text rewritten) and a TweetEdit is appended for each edit so the client can show "edited at X" history. EditedAt = the moment the edit was committed; the original tweet's CreatedAt stays untouched.
type TweetModeration ¶ added in v0.3.147
type User ¶
type User struct {
// Avatar mime type + "," + base64
AvatarKey string `json:"avatar_key,omitempty"`
// BackgroundImage mime type + "," + base64
BackgroundImageKey string `json:"background_image_key"`
Bio string `json:"bio"`
Birthdate string `json:"birthdate"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
FollowingsCount int64 `json:"followings_count"`
FollowersCount int64 `json:"followers_count"`
Id string `json:"id"`
IsOffline bool `json:"isOffline"`
NodeId string `json:"node_id"`
Network string `json:"network"`
// Role mirrors NodeInfo.Role: "" for a regular user, "business" for a
// business account. Stamped from the node's NodeInfo when the user is
// cached (discovery) so clients can badge business accounts.
Role string `json:"role,omitempty"`
RoundTripTime int64 `json:"rtt"`
TweetsCount int64 `json:"tweets_count"`
Username string `json:"username"`
Website *string `json:"website,omitempty"`
Moderation *UserModeration `json:"moderation"`
Metadata map[string]string `json:"metadata"`
// Locked is the "manually-approve followers" flag. When true, an
// inbound follow lands in the follow-request queue instead of being
// accepted automatically.
Locked bool `json:"locked,omitempty"`
}
User defines model for User.