go-mastodon: github.com/mattn/go-mastodon Index | Examples | Files | Directories

package mastodon

import "github.com/mattn/go-mastodon"

Package mastodon provides functions and structs for accessing the mastodon API.

Index

Examples

Package Files

accounts.go apps.go compat.go helper.go instance.go lists.go mastodon.go notification.go polls.go report.go status.go streaming.go streaming_ws.go unixtime.go

Constants

const (
    VisibilityPublic        = "public"
    VisibilityUnlisted      = "unlisted"
    VisibilityFollowersOnly = "private"
    VisibilityDirectMessage = "direct"
)

Convenience constants for Toot.Visibility

func Base64Encode Uses

func Base64Encode(file *os.File) (string, error)

Base64Encode returns the base64 data URI format string of the file.

func Base64EncodeFileName Uses

func Base64EncodeFileName(filename string) (string, error)

Base64EncodeFileName returns the base64 data URI format string of the file with the file name.

func String Uses

func String(v string) *string

String is a helper function to get the pointer value of a string.

type Account Uses

type Account struct {
    ID             ID        `json:"id"`
    Username       string    `json:"username"`
    Acct           string    `json:"acct"`
    DisplayName    string    `json:"display_name"`
    Locked         bool      `json:"locked"`
    CreatedAt      time.Time `json:"created_at"`
    FollowersCount int64     `json:"followers_count"`
    FollowingCount int64     `json:"following_count"`
    StatusesCount  int64     `json:"statuses_count"`
    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"`
    Emojis         []Emoji   `json:"emojis"`
    Moved          *Account  `json:"moved"`
    Fields         []Field   `json:"fields"`
    Bot            bool      `json:"bot"`
}

Account hold information for mastodon account.

type AccountSource Uses

type AccountSource struct {
    Privacy   *string  `json:"privacy"`
    Sensitive *bool    `json:"sensitive"`
    Language  *string  `json:"language"`
    Note      *string  `json:"note"`
    Fields    *[]Field `json:"fields"`
}

AccountSource is a Mastodon account profile field.

type AppConfig Uses

type AppConfig struct {
    http.Client
    Server     string
    ClientName string

    // Where the user should be redirected after authorization (for no redirect, use urn:ietf:wg:oauth:2.0:oob)
    RedirectURIs string

    // This can be a space-separated list of items listed on the /settings/applications/new page of any Mastodon
    // instance. "read", "write", and "follow" are top-level scopes that include all the permissions of the more
    // specific scopes like "read:favourites", "write:statuses", and "write:follows".
    Scopes string

    // Optional.
    Website string
}

AppConfig is a setting for registering applications.

type Application Uses

type Application struct {
    ID           ID     `json:"id"`
    RedirectURI  string `json:"redirect_uri"`
    ClientID     string `json:"client_id"`
    ClientSecret string `json:"client_secret"`

    // AuthURI is not part of the Mastodon API; it is generated by go-mastodon.
    AuthURI string `json:"auth_uri,omitempty"`
}

Application is mastodon application.

func RegisterApp Uses

func RegisterApp(ctx context.Context, appConfig *AppConfig) (*Application, error)

RegisterApp returns the mastodon application.

Code:

app, err := mastodon.RegisterApp(context.Background(), &mastodon.AppConfig{
    Server:     "https://mstdn.jp",
    ClientName: "client-name",
    Scopes:     "read write follow",
    Website:    "https://github.com/mattn/go-mastodon",
})
if err != nil {
    log.Fatal(err)
}
fmt.Printf("client-id    : %s\n", app.ClientID)
fmt.Printf("client-secret: %s\n", app.ClientSecret)

type Attachment Uses

type Attachment struct {
    ID          ID             `json:"id"`
    Type        string         `json:"type"`
    URL         string         `json:"url"`
    RemoteURL   string         `json:"remote_url"`
    PreviewURL  string         `json:"preview_url"`
    TextURL     string         `json:"text_url"`
    Description string         `json:"description"`
    Meta        AttachmentMeta `json:"meta"`
}

Attachment hold information for attachment.

type AttachmentMeta Uses

type AttachmentMeta struct {
    Original AttachmentSize `json:"original"`
    Small    AttachmentSize `json:"small"`
}

AttachmentMeta holds information for attachment metadata.

type AttachmentSize Uses

type AttachmentSize struct {
    Width  int64   `json:"width"`
    Height int64   `json:"height"`
    Size   string  `json:"size"`
    Aspect float64 `json:"aspect"`
}

AttachmentSize holds information for attatchment size.

type Card Uses

type Card struct {
    URL          string `json:"url"`
    Title        string `json:"title"`
    Description  string `json:"description"`
    Image        string `json:"image"`
    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        int64  `json:"width"`
    Height       int64  `json:"height"`
}

Card hold information for mastodon card.

type Client Uses

type Client struct {
    http.Client
    Config    *Config
    UserAgent string
}

Client is a API client for mastodon.

Code:

c := mastodon.NewClient(&mastodon.Config{
    Server:       "https://mstdn.jp",
    ClientID:     "client-id",
    ClientSecret: "client-secret",
})
err := c.Authenticate(context.Background(), "your-email", "your-password")
if err != nil {
    log.Fatal(err)
}
timeline, err := c.GetTimelineHome(context.Background(), nil)
if err != nil {
    log.Fatal(err)
}
for i := len(timeline) - 1; i >= 0; i-- {
    fmt.Println(timeline[i])
}

func NewClient Uses

func NewClient(config *Config) *Client

NewClient return new mastodon API client.

func (*Client) AccountBlock Uses

func (c *Client) AccountBlock(ctx context.Context, id ID) (*Relationship, error)

AccountBlock block the account.

func (*Client) AccountFollow Uses

func (c *Client) AccountFollow(ctx context.Context, id ID) (*Relationship, error)

AccountFollow follow the account.

func (*Client) AccountMute Uses

func (c *Client) AccountMute(ctx context.Context, id ID) (*Relationship, error)

AccountMute mute the account.

func (*Client) AccountUnblock Uses

func (c *Client) AccountUnblock(ctx context.Context, id ID) (*Relationship, error)

AccountUnblock unblock the account.

func (*Client) AccountUnfollow Uses

func (c *Client) AccountUnfollow(ctx context.Context, id ID) (*Relationship, error)

AccountUnfollow unfollow the account.

func (*Client) AccountUnmute Uses

func (c *Client) AccountUnmute(ctx context.Context, id ID) (*Relationship, error)

AccountUnmute unmute the account.

func (*Client) AccountUpdate Uses

func (c *Client) AccountUpdate(ctx context.Context, profile *Profile) (*Account, error)

AccountUpdate updates the information of the current user.

func (*Client) AccountsSearch Uses

func (c *Client) AccountsSearch(ctx context.Context, q string, limit int64) ([]*Account, error)

AccountsSearch search accounts by query.

func (*Client) AddPushSubscription Uses

func (c *Client) AddPushSubscription(ctx context.Context, endpoint string, public ecdsa.PublicKey, shared []byte, alerts PushAlerts) (*PushSubscription, error)

AddPushSubscription adds a new push subscription.

func (*Client) AddToList Uses

func (c *Client) AddToList(ctx context.Context, list ID, accounts ...ID) error

AddToList adds accounts to a list.

Only accounts already followed by the user can be added to a list.

func (*Client) Authenticate Uses

func (c *Client) Authenticate(ctx context.Context, username, password string) error

Authenticate get access-token to the API.

func (*Client) AuthenticateToken Uses

func (c *Client) AuthenticateToken(ctx context.Context, authCode, redirectURI string) error

AuthenticateToken logs in using a grant token returned by Application.AuthURI.

redirectURI should be the same as Application.RedirectURI.

func (*Client) ClearNotifications Uses

func (c *Client) ClearNotifications(ctx context.Context) error

ClearNotifications clear notifications.

func (*Client) CreateList Uses

func (c *Client) CreateList(ctx context.Context, title string) (*List, error)

CreateList creates a new list with a given title.

func (*Client) DeleteConversation Uses

func (c *Client) DeleteConversation(ctx context.Context, id ID) error

DeleteConversation delete the conversation specified by id.

func (*Client) DeleteList Uses

func (c *Client) DeleteList(ctx context.Context, id ID) error

DeleteList removes a list.

func (*Client) DeleteStatus Uses

func (c *Client) DeleteStatus(ctx context.Context, id ID) error

DeleteStatus delete the toot.

func (*Client) DismissNotification Uses

func (c *Client) DismissNotification(ctx context.Context, id ID) error

DismissNotification deletes a single notification.

func (*Client) Favourite Uses

func (c *Client) Favourite(ctx context.Context, id ID) (*Status, error)

Favourite is favourite the toot of id and return status of the favourite toot.

func (*Client) FollowRemoteUser Uses

func (c *Client) FollowRemoteUser(ctx context.Context, uri string) (*Account, error)

FollowRemoteUser send follow-request.

func (*Client) FollowRequestAuthorize Uses

func (c *Client) FollowRequestAuthorize(ctx context.Context, id ID) error

FollowRequestAuthorize is authorize the follow request of user with id.

func (*Client) FollowRequestReject Uses

func (c *Client) FollowRequestReject(ctx context.Context, id ID) error

FollowRequestReject is rejects the follow request of user with id.

func (*Client) GetAccount Uses

func (c *Client) GetAccount(ctx context.Context, id ID) (*Account, error)

GetAccount return Account.

func (*Client) GetAccountCurrentUser Uses

func (c *Client) GetAccountCurrentUser(ctx context.Context) (*Account, error)

GetAccountCurrentUser return Account of current user.

func (*Client) GetAccountFollowers Uses

func (c *Client) GetAccountFollowers(ctx context.Context, id ID, pg *Pagination) ([]*Account, error)

GetAccountFollowers return followers list.

func (*Client) GetAccountFollowing Uses

func (c *Client) GetAccountFollowing(ctx context.Context, id ID, pg *Pagination) ([]*Account, error)

GetAccountFollowing return following list.

func (*Client) GetAccountLists Uses

func (c *Client) GetAccountLists(ctx context.Context, id ID) ([]*List, error)

GetAccountLists returns the lists containing a given account.

func (*Client) GetAccountRelationships Uses

func (c *Client) GetAccountRelationships(ctx context.Context, ids []string) ([]*Relationship, error)

GetAccountRelationships return relationship for the account.

func (*Client) GetAccountStatuses Uses

func (c *Client) GetAccountStatuses(ctx context.Context, id ID, pg *Pagination) ([]*Status, error)

GetAccountStatuses return statuses by specified accuont.

func (*Client) GetBlocks Uses

func (c *Client) GetBlocks(ctx context.Context, pg *Pagination) ([]*Account, error)

GetBlocks return block list.

func (*Client) GetConversations Uses

func (c *Client) GetConversations(ctx context.Context, pg *Pagination) ([]*Conversation, error)

GetConversations return direct conversations.

func (*Client) GetFavouritedBy Uses

func (c *Client) GetFavouritedBy(ctx context.Context, id ID, pg *Pagination) ([]*Account, error)

GetFavouritedBy returns the account list of the user who liked the toot of id.

func (*Client) GetFavourites Uses

func (c *Client) GetFavourites(ctx context.Context, pg *Pagination) ([]*Status, error)

GetFavourites return the favorite list of the current user.

func (*Client) GetFollowRequests Uses

func (c *Client) GetFollowRequests(ctx context.Context, pg *Pagination) ([]*Account, error)

GetFollowRequests return follow-requests.

func (*Client) GetInstance Uses

func (c *Client) GetInstance(ctx context.Context) (*Instance, error)

GetInstance return Instance.

func (*Client) GetInstanceActivity Uses

func (c *Client) GetInstanceActivity(ctx context.Context) ([]*WeeklyActivity, error)

GetInstanceActivity return instance activity.

func (*Client) GetInstancePeers Uses

func (c *Client) GetInstancePeers(ctx context.Context) ([]string, error)

GetInstancePeers return instance peers.

func (*Client) GetList Uses

func (c *Client) GetList(ctx context.Context, id ID) (*List, error)

GetList retrieves a list by ID.

func (*Client) GetListAccounts Uses

func (c *Client) GetListAccounts(ctx context.Context, id ID) ([]*Account, error)

GetListAccounts returns the accounts in a given list.

func (*Client) GetLists Uses

func (c *Client) GetLists(ctx context.Context) ([]*List, error)

GetLists returns all the lists on the current account.

func (*Client) GetMutes Uses

func (c *Client) GetMutes(ctx context.Context, pg *Pagination) ([]*Account, error)

GetMutes returns the list of users muted by the current user.

func (*Client) GetNotification Uses

func (c *Client) GetNotification(ctx context.Context, id ID) (*Notification, error)

GetNotification return notification.

func (*Client) GetNotifications Uses

func (c *Client) GetNotifications(ctx context.Context, pg *Pagination) ([]*Notification, error)

GetNotifications return notifications.

func (*Client) GetPushSubscription Uses

func (c *Client) GetPushSubscription(ctx context.Context) (*PushSubscription, error)

GetPushSubscription retrieves information about the active push subscription.

func (*Client) GetRebloggedBy Uses

func (c *Client) GetRebloggedBy(ctx context.Context, id ID, pg *Pagination) ([]*Account, error)

GetRebloggedBy returns the account list of the user who reblogged the toot of id.

func (*Client) GetReports Uses

func (c *Client) GetReports(ctx context.Context) ([]*Report, error)

GetReports return report of the current user.

func (*Client) GetStatus Uses

func (c *Client) GetStatus(ctx context.Context, id ID) (*Status, error)

GetStatus return status specified by id.

func (*Client) GetStatusCard Uses

func (c *Client) GetStatusCard(ctx context.Context, id ID) (*Card, error)

GetStatusCard return status specified by id.

func (*Client) GetStatusContext Uses

func (c *Client) GetStatusContext(ctx context.Context, id ID) (*Context, error)

GetStatusContext return status specified by id.

func (*Client) GetTimelineDirect Uses

func (c *Client) GetTimelineDirect(ctx context.Context, pg *Pagination) ([]*Status, error)

GetTimelineDirect return statuses from direct timeline.

func (*Client) GetTimelineHashtag Uses

func (c *Client) GetTimelineHashtag(ctx context.Context, tag string, isLocal bool, pg *Pagination) ([]*Status, error)

GetTimelineHashtag return statuses from tagged timeline.

func (*Client) GetTimelineHome Uses

func (c *Client) GetTimelineHome(ctx context.Context, pg *Pagination) ([]*Status, error)

GetTimelineHome return statuses from home timeline.

func (*Client) GetTimelineList Uses

func (c *Client) GetTimelineList(ctx context.Context, id ID, pg *Pagination) ([]*Status, error)

GetTimelineList return statuses from a list timeline.

func (*Client) GetTimelineMedia Uses

func (c *Client) GetTimelineMedia(ctx context.Context, isLocal bool, pg *Pagination) ([]*Status, error)

GetTimelineMedia return statuses from media timeline. NOTE: This is an experimental feature of pawoo.net.

func (*Client) GetTimelinePublic Uses

func (c *Client) GetTimelinePublic(ctx context.Context, isLocal bool, pg *Pagination) ([]*Status, error)

GetTimelinePublic return statuses from public timeline.

func (*Client) MarkConversationAsRead Uses

func (c *Client) MarkConversationAsRead(ctx context.Context, id ID) error

MarkConversationAsRead mark the conversation as read.

func (*Client) NewWSClient Uses

func (c *Client) NewWSClient() *WSClient

NewWSClient return WebSocket client.

func (*Client) PostStatus Uses

func (c *Client) PostStatus(ctx context.Context, toot *Toot) (*Status, error)

PostStatus post the toot.

func (*Client) Reblog Uses

func (c *Client) Reblog(ctx context.Context, id ID) (*Status, error)

Reblog is reblog the toot of id and return status of reblog.

func (*Client) RemoveFromList Uses

func (c *Client) RemoveFromList(ctx context.Context, list ID, accounts ...ID) error

RemoveFromList removes accounts from a list.

func (*Client) RemovePushSubscription Uses

func (c *Client) RemovePushSubscription(ctx context.Context) error

RemovePushSubscription deletes the active push subscription.

func (*Client) RenameList Uses

func (c *Client) RenameList(ctx context.Context, id ID, title string) (*List, error)

RenameList assigns a new title to a list.

func (*Client) Report Uses

func (c *Client) Report(ctx context.Context, accountID ID, ids []ID, comment string) (*Report, error)

Report reports the report

func (*Client) Search Uses

func (c *Client) Search(ctx context.Context, q string, resolve bool) (*Results, error)

Search search content with query.

func (*Client) StreamingHashtag Uses

func (c *Client) StreamingHashtag(ctx context.Context, tag string, isLocal bool) (chan Event, error)

StreamingHashtag return channel to read events on tagged timeline.

func (*Client) StreamingList Uses

func (c *Client) StreamingList(ctx context.Context, id ID) (chan Event, error)

StreamingList return channel to read events on a list.

func (*Client) StreamingPublic Uses

func (c *Client) StreamingPublic(ctx context.Context, isLocal bool) (chan Event, error)

StreamingPublic return channel to read events on public.

func (*Client) StreamingUser Uses

func (c *Client) StreamingUser(ctx context.Context) (chan Event, error)

StreamingUser return channel to read events on home.

func (*Client) Unfavourite Uses

func (c *Client) Unfavourite(ctx context.Context, id ID) (*Status, error)

Unfavourite is unfavourite the toot of id and return status of the unfavourite toot.

func (*Client) Unreblog Uses

func (c *Client) Unreblog(ctx context.Context, id ID) (*Status, error)

Unreblog is unreblog the toot of id and return status of the original toot.

func (*Client) UpdatePushSubscription Uses

func (c *Client) UpdatePushSubscription(ctx context.Context, alerts *PushAlerts) (*PushSubscription, error)

UpdatePushSubscription updates which type of notifications are sent for the active push subscription.

func (*Client) UploadMedia Uses

func (c *Client) UploadMedia(ctx context.Context, file string) (*Attachment, error)

UploadMedia upload a media attachment from a file.

func (*Client) UploadMediaFromMedia Uses

func (c *Client) UploadMediaFromMedia(ctx context.Context, media *Media) (*Attachment, error)

UploadMediaFromMedia uploads a media attachment from a Media struct.

func (*Client) UploadMediaFromReader Uses

func (c *Client) UploadMediaFromReader(ctx context.Context, reader io.Reader) (*Attachment, error)

UploadMediaFromReader uploads a media attachment from a io.Reader.

type Config Uses

type Config struct {
    Server       string
    ClientID     string
    ClientSecret string
    AccessToken  string
}

Config is a setting for access mastodon APIs.

type Context Uses

type Context struct {
    Ancestors   []*Status `json:"ancestors"`
    Descendants []*Status `json:"descendants"`
}

Context hold information for mastodon context.

type Conversation Uses

type Conversation struct {
    ID         ID         `json:"id"`
    Accounts   []*Account `json:"accounts"`
    Unread     bool       `json:"unread"`
    LastStatus *Status    `json:"last_status"`
}

Conversation hold information for mastodon conversation.

type DeleteEvent Uses

type DeleteEvent struct{ ID ID }

DeleteEvent is struct for passing deletion event to app.

type Emoji Uses

type Emoji struct {
    ShortCode       string `json:"shortcode"`
    StaticURL       string `json:"static_url"`
    URL             string `json:"url"`
    VisibleInPicker bool   `json:"visible_in_picker"`
}

Emoji hold information for CustomEmoji.

type ErrorEvent Uses

type ErrorEvent struct {
    // contains filtered or unexported fields
}

ErrorEvent is struct for passing errors to app.

func (*ErrorEvent) Error Uses

func (e *ErrorEvent) Error() string

type Event Uses

type Event interface {
    // contains filtered or unexported methods
}

Event is interface passing events to app.

type Field Uses

type Field struct {
    Name       string    `json:"name"`
    Value      string    `json:"value"`
    VerifiedAt time.Time `json:"verified_at"`
}

Field is a Mastodon account profile field.

type History Uses

type History struct {
    Day      string `json:"day"`
    Uses     string `json:"uses"`
    Accounts string `json:"accounts"`
}

History hold information for history.

type ID Uses

type ID string

func (*ID) UnmarshalJSON Uses

func (id *ID) UnmarshalJSON(data []byte) error

type Instance Uses

type Instance struct {
    URI            string            `json:"uri"`
    Title          string            `json:"title"`
    Description    string            `json:"description"`
    EMail          string            `json:"email"`
    Version        string            `json:"version,omitempty"`
    Thumbnail      string            `json:"thumbnail,omitempty"`
    URLs           map[string]string `json:"urls,omitempty"`
    Stats          *InstanceStats    `json:"stats,omitempty"`
    Languages      []string          `json:"languages"`
    ContactAccount *Account          `json:"contact_account"`
}

Instance hold information for mastodon instance.

type InstanceStats Uses

type InstanceStats struct {
    UserCount   int64 `json:"user_count"`
    StatusCount int64 `json:"status_count"`
    DomainCount int64 `json:"domain_count"`
}

InstanceStats hold information for mastodon instance stats.

type List Uses

type List struct {
    ID    ID     `json:"id"`
    Title string `json:"title"`
}

List is metadata for a list of users.

type Media Uses

type Media struct {
    File        io.Reader
    Thumbnail   io.Reader
    Description string
    Focus       string
}

Media is struct to hold media.

type Mention Uses

type Mention struct {
    URL      string `json:"url"`
    Username string `json:"username"`
    Acct     string `json:"acct"`
    ID       ID     `json:"id"`
}

Mention hold information for mention.

type Notification Uses

type Notification struct {
    ID        ID        `json:"id"`
    Type      string    `json:"type"`
    CreatedAt time.Time `json:"created_at"`
    Account   Account   `json:"account"`
    Status    *Status   `json:"status"`
}

Notification hold information for mastodon notification.

type NotificationEvent Uses

type NotificationEvent struct {
    Notification *Notification `json:"notification"`
}

NotificationEvent is struct for passing notification event to app.

type Pagination Uses

type Pagination struct {
    MaxID   ID
    SinceID ID
    MinID   ID
    Limit   int64
}

Pagination is a struct for specifying the get range.

Code:

c := mastodon.NewClient(&mastodon.Config{
    Server:       "https://mstdn.jp",
    ClientID:     "client-id",
    ClientSecret: "client-secret",
})
var followers []*mastodon.Account
var pg mastodon.Pagination
for {
    fs, err := c.GetAccountFollowers(context.Background(), "1", &pg)
    if err != nil {
        log.Fatal(err)
    }
    followers = append(followers, fs...)
    if pg.MaxID == "" {
        break
    }
    time.Sleep(10 * time.Second)
}
for _, f := range followers {
    fmt.Println(f.Acct)
}

type Poll Uses

type Poll struct {
    ID         ID           `json:"id"`
    ExpiresAt  time.Time    `json:"expires_at"`
    Expired    bool         `json:"expired"`
    Multiple   bool         `json:"multiple"`
    VotesCount int64        `json:"votes_count"`
    Options    []PollOption `json:"options"`
    Voted      bool         `json:"voted"`
}

Poll hold information for mastodon polls.

type PollOption Uses

type PollOption struct {
    Title      string `json:"title"`
    VotesCount int64  `json:"votes_count"`
}

Poll hold information for a mastodon poll option.

type Profile Uses

type Profile struct {
    // If it is nil it will not be updated.
    // If it is empty, update it with empty.
    DisplayName *string
    Note        *string
    Locked      *bool
    Fields      *[]Field
    Source      *AccountSource

    // Set the base64 encoded character string of the image.
    Avatar string
    Header string
}

Profile is a struct for updating profiles.

type PushAlerts Uses

type PushAlerts struct {
    Follow    *Sbool `json:"follow"`
    Favourite *Sbool `json:"favourite"`
    Reblog    *Sbool `json:"reblog"`
    Mention   *Sbool `json:"mention"`
}

type PushSubscription Uses

type PushSubscription struct {
    ID        ID          `json:"id"`
    Endpoint  string      `json:"endpoint"`
    ServerKey string      `json:"server_key"`
    Alerts    *PushAlerts `json:"alerts"`
}

type Relationship Uses

type Relationship struct {
    ID                  ID   `json:"id"`
    Following           bool `json:"following"`
    FollowedBy          bool `json:"followed_by"`
    Blocking            bool `json:"blocking"`
    Muting              bool `json:"muting"`
    MutingNotifications bool `json:"muting_notifications"`
    Requested           bool `json:"requested"`
    DomainBlocking      bool `json:"domain_blocking"`
    ShowingReblogs      bool `json:"showing_reblogs"`
    Endorsed            bool `json:"endorsed"`
}

Relationship hold information for relation-ship to the account.

type Report Uses

type Report struct {
    ID          int64 `json:"id"`
    ActionTaken bool  `json:"action_taken"`
}

Report hold information for mastodon report.

type Results Uses

type Results struct {
    Accounts []*Account `json:"accounts"`
    Statuses []*Status  `json:"statuses"`
    Hashtags []*Tag     `json:"hashtags"`
}

Results hold information for search result.

type Sbool Uses

type Sbool bool

func (*Sbool) UnmarshalJSON Uses

func (s *Sbool) UnmarshalJSON(data []byte) error

type Status Uses

type Status struct {
    ID                 ID           `json:"id"`
    URI                string       `json:"uri"`
    URL                string       `json:"url"`
    Account            Account      `json:"account"`
    InReplyToID        interface{}  `json:"in_reply_to_id"`
    InReplyToAccountID interface{}  `json:"in_reply_to_account_id"`
    Reblog             *Status      `json:"reblog"`
    Content            string       `json:"content"`
    CreatedAt          time.Time    `json:"created_at"`
    Emojis             []Emoji      `json:"emojis"`
    RepliesCount       int64        `json:"replies_count"`
    ReblogsCount       int64        `json:"reblogs_count"`
    FavouritesCount    int64        `json:"favourites_count"`
    Reblogged          interface{}  `json:"reblogged"`
    Favourited         interface{}  `json:"favourited"`
    Muted              interface{}  `json:"muted"`
    Sensitive          bool         `json:"sensitive"`
    SpoilerText        string       `json:"spoiler_text"`
    Visibility         string       `json:"visibility"`
    MediaAttachments   []Attachment `json:"media_attachments"`
    Mentions           []Mention    `json:"mentions"`
    Tags               []Tag        `json:"tags"`
    Card               *Card        `json:"card"`
    Poll               *Poll        `json:"poll"`
    Application        Application  `json:"application"`
    Language           string       `json:"language"`
    Pinned             interface{}  `json:"pinned"`
}

Status is struct to hold status.

type Stream Uses

type Stream struct {
    Event   string      `json:"event"`
    Payload interface{} `json:"payload"`
}

Stream is a struct of data that flows in streaming.

type Tag Uses

type Tag struct {
    Name    string    `json:"name"`
    URL     string    `json:"url"`
    History []History `json:"history"`
}

Tag hold information for tag.

type Toot Uses

type Toot struct {
    Status      string     `json:"status"`
    InReplyToID ID         `json:"in_reply_to_id"`
    MediaIDs    []ID       `json:"media_ids"`
    Sensitive   bool       `json:"sensitive"`
    SpoilerText string     `json:"spoiler_text"`
    Visibility  string     `json:"visibility"`
    ScheduledAt *time.Time `json:"scheduled_at,omitempty"`
}

Toot is struct to post status.

type Unixtime Uses

type Unixtime time.Time

func (*Unixtime) UnmarshalJSON Uses

func (t *Unixtime) UnmarshalJSON(data []byte) error

type UpdateEvent Uses

type UpdateEvent struct {
    Status *Status `json:"status"`
}

UpdateEvent is struct for passing status event to app.

type WSClient Uses

type WSClient struct {
    websocket.Dialer
    // contains filtered or unexported fields
}

WSClient is a WebSocket client.

func (*WSClient) StreamingWSHashtag Uses

func (c *WSClient) StreamingWSHashtag(ctx context.Context, tag string, isLocal bool) (chan Event, error)

StreamingWSHashtag return channel to read events on tagged timeline using WebSocket.

func (*WSClient) StreamingWSList Uses

func (c *WSClient) StreamingWSList(ctx context.Context, id ID) (chan Event, error)

StreamingWSList return channel to read events on a list using WebSocket.

func (*WSClient) StreamingWSPublic Uses

func (c *WSClient) StreamingWSPublic(ctx context.Context, isLocal bool) (chan Event, error)

StreamingWSPublic return channel to read events on public using WebSocket.

func (*WSClient) StreamingWSUser Uses

func (c *WSClient) StreamingWSUser(ctx context.Context) (chan Event, error)

StreamingWSUser return channel to read events on home using WebSocket.

type WeeklyActivity Uses

type WeeklyActivity struct {
    Week          Unixtime `json:"week"`
    Statuses      int64    `json:"statuses,string"`
    Logins        int64    `json:"logins,string"`
    Registrations int64    `json:"registrations,string"`
}

WeeklyActivity hold information for mastodon weekly activity.

Directories

PathSynopsis
cmd/mstdn

Package mastodon imports 20 packages (graph) and is imported by 16 packages. Updated 2020-07-27. Refresh now. Tools for package owners.