mirror of
https://github.com/idanoo/go-mastodon-matrix-webhooks.git
synced 2024-11-22 08:25:17 +00:00
228 lines
9.0 KiB
Go
228 lines
9.0 KiB
Go
package main
|
|
|
|
import "time"
|
|
|
|
type MatrixWebhook struct {
|
|
Body string `json:"body"`
|
|
Key string `json:"key"`
|
|
}
|
|
|
|
type MastodonEvent struct {
|
|
Event string `json:"event"`
|
|
Object struct {
|
|
ID string `json:"id"`
|
|
Username string `json:"username"`
|
|
Email string `json:"email"`
|
|
IP string `json:"ip"`
|
|
Notes string `json:"invite_request"`
|
|
Comment string `json:"comment"`
|
|
Account struct {
|
|
ID string `json:"id"`
|
|
Username string `json:"username"`
|
|
Domain interface{} `json:"domain"`
|
|
} `json:"account"`
|
|
TargetAccount struct {
|
|
ID string `json:"id"`
|
|
Username string `json:"username"`
|
|
Domain string `json:"domain"`
|
|
Account struct {
|
|
ID string `json:"id"`
|
|
Username string `json:"username"`
|
|
Acct string `json:"acct"`
|
|
DisplayName string `json:"display_name"`
|
|
Note string `json:"note"`
|
|
URL string `json:"url"`
|
|
} `json:"account"`
|
|
} `json:"target_account"`
|
|
} `json:"object"`
|
|
}
|
|
|
|
type MastodonReportEvent struct {
|
|
Event string `json:"event"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
Object struct {
|
|
ID string `json:"id"`
|
|
ActionTaken bool `json:"action_taken"`
|
|
ActionTakenAt interface{} `json:"action_taken_at"`
|
|
Category string `json:"category"`
|
|
Comment string `json:"comment"`
|
|
Forwarded bool `json:"forwarded"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
Account struct {
|
|
ID string `json:"id"`
|
|
Username string `json:"username"`
|
|
Domain interface{} `json:"domain"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
Email string `json:"email"`
|
|
IP string `json:"ip"`
|
|
Role struct {
|
|
ID int `json:"id"`
|
|
Name string `json:"name"`
|
|
Color string `json:"color"`
|
|
Position int `json:"position"`
|
|
Permissions int `json:"permissions"`
|
|
Highlighted bool `json:"highlighted"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
} `json:"role"`
|
|
Confirmed bool `json:"confirmed"`
|
|
Suspended bool `json:"suspended"`
|
|
Silenced bool `json:"silenced"`
|
|
Sensitized bool `json:"sensitized"`
|
|
Disabled bool `json:"disabled"`
|
|
Approved bool `json:"approved"`
|
|
Locale string `json:"locale"`
|
|
InviteRequest interface{} `json:"invite_request"`
|
|
Ips []struct {
|
|
IP string `json:"ip"`
|
|
UsedAt time.Time `json:"used_at"`
|
|
} `json:"ips"`
|
|
Account struct {
|
|
ID string `json:"id"`
|
|
Username string `json:"username"`
|
|
Acct string `json:"acct"`
|
|
DisplayName string `json:"display_name"`
|
|
Locked bool `json:"locked"`
|
|
Bot bool `json:"bot"`
|
|
Discoverable bool `json:"discoverable"`
|
|
Group bool `json:"group"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
Note string `json:"note"`
|
|
URL string `json:"url"`
|
|
Avatar string `json:"avatar"`
|
|
AvatarStatic string `json:"avatar_static"`
|
|
Header string `json:"header"`
|
|
HeaderStatic string `json:"header_static"`
|
|
FollowersCount int `json:"followers_count"`
|
|
FollowingCount int `json:"following_count"`
|
|
StatusesCount int `json:"statuses_count"`
|
|
LastStatusAt string `json:"last_status_at"`
|
|
Noindex bool `json:"noindex"`
|
|
Emojis []interface{} `json:"emojis"`
|
|
Fields []interface{} `json:"fields"`
|
|
} `json:"account"`
|
|
} `json:"account"`
|
|
TargetAccount struct {
|
|
ID string `json:"id"`
|
|
Username string `json:"username"`
|
|
Domain string `json:"domain"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
Email interface{} `json:"email"`
|
|
IP interface{} `json:"ip"`
|
|
Role interface{} `json:"role"`
|
|
Confirmed interface{} `json:"confirmed"`
|
|
Suspended bool `json:"suspended"`
|
|
Silenced bool `json:"silenced"`
|
|
Sensitized bool `json:"sensitized"`
|
|
Disabled interface{} `json:"disabled"`
|
|
Approved interface{} `json:"approved"`
|
|
Locale interface{} `json:"locale"`
|
|
InviteRequest interface{} `json:"invite_request"`
|
|
Ips interface{} `json:"ips"`
|
|
Account struct {
|
|
ID string `json:"id"`
|
|
Username string `json:"username"`
|
|
Acct string `json:"acct"`
|
|
DisplayName string `json:"display_name"`
|
|
Locked bool `json:"locked"`
|
|
Bot bool `json:"bot"`
|
|
Discoverable bool `json:"discoverable"`
|
|
Group bool `json:"group"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
Note string `json:"note"`
|
|
URL string `json:"url"`
|
|
Avatar string `json:"avatar"`
|
|
AvatarStatic string `json:"avatar_static"`
|
|
Header string `json:"header"`
|
|
HeaderStatic string `json:"header_static"`
|
|
FollowersCount int `json:"followers_count"`
|
|
FollowingCount int `json:"following_count"`
|
|
StatusesCount int `json:"statuses_count"`
|
|
LastStatusAt string `json:"last_status_at"`
|
|
Emojis []interface{} `json:"emojis"`
|
|
Fields []struct {
|
|
Name string `json:"name"`
|
|
Value string `json:"value"`
|
|
VerifiedAt interface{} `json:"verified_at"`
|
|
} `json:"fields"`
|
|
} `json:"account"`
|
|
} `json:"target_account"`
|
|
AssignedAccount interface{} `json:"assigned_account"`
|
|
ActionTakenByAccount interface{} `json:"action_taken_by_account"`
|
|
Statuses []struct {
|
|
ID string `json:"id"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
InReplyToID interface{} `json:"in_reply_to_id"`
|
|
InReplyToAccountID interface{} `json:"in_reply_to_account_id"`
|
|
Sensitive bool `json:"sensitive"`
|
|
SpoilerText string `json:"spoiler_text"`
|
|
Visibility string `json:"visibility"`
|
|
Language string `json:"language"`
|
|
URI string `json:"uri"`
|
|
URL string `json:"url"`
|
|
RepliesCount int `json:"replies_count"`
|
|
ReblogsCount int `json:"reblogs_count"`
|
|
FavouritesCount int `json:"favourites_count"`
|
|
EditedAt time.Time `json:"edited_at"`
|
|
Content string `json:"content"`
|
|
Reblog interface{} `json:"reblog"`
|
|
Account struct {
|
|
ID string `json:"id"`
|
|
Username string `json:"username"`
|
|
Acct string `json:"acct"`
|
|
DisplayName string `json:"display_name"`
|
|
Locked bool `json:"locked"`
|
|
Bot bool `json:"bot"`
|
|
Discoverable bool `json:"discoverable"`
|
|
Group bool `json:"group"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
Note string `json:"note"`
|
|
URL string `json:"url"`
|
|
Avatar string `json:"avatar"`
|
|
AvatarStatic string `json:"avatar_static"`
|
|
Header string `json:"header"`
|
|
HeaderStatic string `json:"header_static"`
|
|
FollowersCount int `json:"followers_count"`
|
|
FollowingCount int `json:"following_count"`
|
|
StatusesCount int `json:"statuses_count"`
|
|
LastStatusAt string `json:"last_status_at"`
|
|
Emojis []interface{} `json:"emojis"`
|
|
Fields []struct {
|
|
Name string `json:"name"`
|
|
Value string `json:"value"`
|
|
VerifiedAt interface{} `json:"verified_at"`
|
|
} `json:"fields"`
|
|
} `json:"account"`
|
|
MediaAttachments []interface{} `json:"media_attachments"`
|
|
Mentions []interface{} `json:"mentions"`
|
|
Tags []struct {
|
|
Name string `json:"name"`
|
|
URL string `json:"url"`
|
|
} `json:"tags"`
|
|
Emojis []interface{} `json:"emojis"`
|
|
Card struct {
|
|
URL string `json:"url"`
|
|
Title string `json:"title"`
|
|
Description string `json:"description"`
|
|
Type string `json:"type"`
|
|
AuthorName string `json:"author_name"`
|
|
AuthorURL string `json:"author_url"`
|
|
ProviderName string `json:"provider_name"`
|
|
ProviderURL string `json:"provider_url"`
|
|
HTML string `json:"html"`
|
|
Width int `json:"width"`
|
|
Height int `json:"height"`
|
|
Image string `json:"image"`
|
|
EmbedURL string `json:"embed_url"`
|
|
Blurhash string `json:"blurhash"`
|
|
} `json:"card"`
|
|
Poll interface{} `json:"poll"`
|
|
} `json:"statuses"`
|
|
Rules []struct {
|
|
ID string `json:"id"`
|
|
Text string `json:"text"`
|
|
} `json:"rules"`
|
|
} `json:"object"`
|
|
}
|