Documentation
¶
Overview ¶
Package mastodon provides functions and structs for accessing the mastodon API.
Index ¶
- Constants
- func Base64Encode(file *os.File) (string, error)
- func Base64EncodeFileName(filename string) (string, error)
- func String(v string) *string
- type APIError
- type Account
- type AccountSource
- type AppConfig
- type Application
- type ApplicationVerification
- type Attachment
- type AttachmentFocus
- type AttachmentMeta
- type AttachmentSize
- type Card
- type Client
- func (c *Client) AccountBlock(ctx context.Context, id ID) (*Relationship, error)
- func (c *Client) AccountFollow(ctx context.Context, id ID) (*Relationship, error)
- func (c *Client) AccountFollowDetailed(ctx context.Context, id ID, hidereblogs bool, notify bool) (*Relationship, error)
- func (c *Client) AccountLookup(ctx context.Context, acct string) (*Account, error)
- func (c *Client) AccountMute(ctx context.Context, id ID) (*Relationship, error)
- func (c *Client) AccountUnblock(ctx context.Context, id ID) (*Relationship, error)
- func (c *Client) AccountUnfollow(ctx context.Context, id ID) (*Relationship, error)
- func (c *Client) AccountUnmute(ctx context.Context, id ID) (*Relationship, error)
- func (c *Client) AccountUpdate(ctx context.Context, profile *Profile) (*Account, error)
- func (c *Client) AccountsSearch(ctx context.Context, q string, limit int64) ([]*Account, error)
- func (c *Client) AccountsSearchResolve(ctx context.Context, q string, limit int64, resolve bool) ([]*Account, error)
- func (c *Client) AddPushSubscription(ctx context.Context, endpoint string, public ecdsa.PublicKey, shared []byte, ...) (*PushSubscription, error)
- func (c *Client) AddToList(ctx context.Context, list ID, accounts ...ID) error
- func (c *Client) Authenticate(ctx context.Context, username, password string) error
- func (c *Client) AuthenticateApp(ctx context.Context) error
- func (c *Client) AuthenticateToken(ctx context.Context, authCode, redirectURI string) error
- func (c *Client) Bookmark(ctx context.Context, id ID) (*Status, error)
- func (c *Client) ClearNotifications(ctx context.Context) error
- func (c *Client) CreateFilter(ctx context.Context, filter *Filter) (*Filter, error)
- func (c *Client) CreateFilterV2(ctx context.Context, filter *FilterV2) (*FilterV2, error)
- func (c *Client) CreateList(ctx context.Context, title string) (*List, error)
- func (c *Client) DeleteConversation(ctx context.Context, id ID) error
- func (c *Client) DeleteFilter(ctx context.Context, id ID) error
- func (c *Client) DeleteList(ctx context.Context, id ID) error
- func (c *Client) DeleteStatus(ctx context.Context, id ID) error
- func (c *Client) DismissNotification(ctx context.Context, id ID) error
- func (c *Client) Favourite(ctx context.Context, id ID) (*Status, error)
- func (c *Client) FilterAddStatus(ctx context.Context, status ID, filter *FilterV2) (*FilterV2, error)
- func (c *Client) FilterRemoveStatus(ctx context.Context, status ID) (*FilterV2, error)
- func (c *Client) FollowRemoteUser(ctx context.Context, uri string) (*Account, error)
- func (c *Client) FollowRequestAuthorize(ctx context.Context, id ID) error
- func (c *Client) FollowRequestReject(ctx context.Context, id ID) error
- func (c *Client) GetAccount(ctx context.Context, id ID) (*Account, error)
- func (c *Client) GetAccountCurrentUser(ctx context.Context) (*Account, error)
- func (c *Client) GetAccountFollowers(ctx context.Context, id ID, pg *Pagination) ([]*Account, error)
- func (c *Client) GetAccountFollowing(ctx context.Context, id ID, pg *Pagination) ([]*Account, error)
- func (c *Client) GetAccountLists(ctx context.Context, id ID) ([]*List, error)
- func (c *Client) GetAccountPinnedStatuses(ctx context.Context, id ID) ([]*Status, error)
- func (c *Client) GetAccountRelationships(ctx context.Context, ids []string) ([]*Relationship, error)
- func (c *Client) GetAccountStatuses(ctx context.Context, id ID, pg *Pagination) ([]*Status, error)
- func (c *Client) GetAppAccessToken(ctx context.Context, redirectURI string) error
- func (c *Client) GetBlocks(ctx context.Context, pg *Pagination) ([]*Account, error)
- func (c *Client) GetBookmarks(ctx context.Context, pg *Pagination) ([]*Status, error)
- func (c *Client) GetConversations(ctx context.Context, pg *Pagination) ([]*Conversation, error)
- func (c *Client) GetEndorsements(ctx context.Context, pg *Pagination) ([]*Account, error)
- func (c *Client) GetFavouritedBy(ctx context.Context, id ID, pg *Pagination) ([]*Account, error)
- func (c *Client) GetFavourites(ctx context.Context, pg *Pagination) ([]*Status, error)
- func (c *Client) GetFilter(ctx context.Context, id ID) (*Filter, error)
- func (c *Client) GetFilterV2(ctx context.Context, id ID) (*FilterV2, error)
- func (c *Client) GetFilters(ctx context.Context) ([]*Filter, error)
- func (c *Client) GetFiltersV2(ctx context.Context) ([]*FilterV2, error)
- func (c *Client) GetFollowRequests(ctx context.Context, pg *Pagination) ([]*Account, error)
- func (c *Client) GetFollowedTags(ctx context.Context, pg *Pagination) ([]*FollowedTag, error)
- func (c *Client) GetInstance(ctx context.Context) (*Instance, error)
- func (c *Client) GetInstanceActivity(ctx context.Context) ([]*WeeklyActivity, error)
- func (c *Client) GetInstancePeers(ctx context.Context) ([]string, error)
- func (c *Client) GetList(ctx context.Context, id ID) (*List, error)
- func (c *Client) GetListAccounts(ctx context.Context, id ID) ([]*Account, error)
- func (c *Client) GetLists(ctx context.Context) ([]*List, error)
- func (c *Client) GetMutes(ctx context.Context, pg *Pagination) ([]*Account, error)
- func (c *Client) GetNotification(ctx context.Context, id ID) (*Notification, error)
- func (c *Client) GetNotifications(ctx context.Context, pg *Pagination) ([]*Notification, error)
- func (c *Client) GetNotificationsExclude(ctx context.Context, exclude *[]string, pg *Pagination) ([]*Notification, error)
- func (c *Client) GetPoll(ctx context.Context, id ID) (*Poll, error)
- func (c *Client) GetPushSubscription(ctx context.Context) (*PushSubscription, error)
- func (c *Client) GetRebloggedBy(ctx context.Context, id ID, pg *Pagination) ([]*Account, error)
- func (c *Client) GetReports(ctx context.Context) ([]*Report, error)
- func (c *Client) GetStatus(ctx context.Context, id ID) (*Status, error)
- func (c *Client) GetStatusCard(ctx context.Context, id ID) (*Card, error)
- func (c *Client) GetStatusContext(ctx context.Context, id ID) (*Context, error)
- func (c *Client) GetStatusHistory(ctx context.Context, id ID) ([]*StatusHistory, error)
- func (c *Client) GetStatusSource(ctx context.Context, id ID) (*Source, error)
- func (c *Client) GetTimelineDirect(ctx context.Context, pg *Pagination) ([]*Status, error)
- func (c *Client) GetTimelineHashtag(ctx context.Context, tag string, isLocal bool, pg *Pagination) ([]*Status, error)
- func (c *Client) GetTimelineHashtagMultiple(ctx context.Context, tag string, isLocal bool, td *TagData, pg *Pagination) ([]*Status, error)
- func (c *Client) GetTimelineHome(ctx context.Context, pg *Pagination) ([]*Status, error)
- func (c *Client) GetTimelineList(ctx context.Context, id ID, pg *Pagination) ([]*Status, error)
- func (c *Client) GetTimelineMarkers(ctx context.Context, timelines []string) (map[string]*Marker, error)
- func (c *Client) GetTimelineMedia(ctx context.Context, isLocal bool, pg *Pagination) ([]*Status, error)
- func (c *Client) GetTimelinePublic(ctx context.Context, isLocal bool, pg *Pagination) ([]*Status, error)
- func (c *Client) GetTrendingStatuses(ctx context.Context, pg *Pagination) ([]*Status, error)
- func (c *Client) GetUnreadNotifications(ctx context.Context, exclude *[]string, include *[]string, limit int) (*UnreadNotifications, error)
- func (c *Client) GetUserAccessToken(ctx context.Context, authCode, redirectURI string) error
- func (c *Client) MarkConversationAsRead(ctx context.Context, id ID) error
- func (c *Client) NewWSClient() *WSClient
- func (c *Client) PollVote(ctx context.Context, id ID, choices ...int) (*Poll, error)
- func (c *Client) PostStatus(ctx context.Context, toot *Toot) (*Status, error)
- func (c *Client) Reblog(ctx context.Context, id ID) (*Status, error)
- func (c *Client) RemoveFromList(ctx context.Context, list ID, accounts ...ID) error
- func (c *Client) RemovePushSubscription(ctx context.Context) error
- func (c *Client) RenameList(ctx context.Context, id ID, title string) (*List, error)
- func (c *Client) Report(ctx context.Context, accountID ID, ids []ID, comment string) (*Report, error)
- func (c *Client) Search(ctx context.Context, q string, resolve bool) (*Results, error)
- func (c *Client) SetTimelineMarkers(ctx context.Context, markers *[]Marker) error
- func (c *Client) StreamingDirect(ctx context.Context) (chan Event, error)
- func (c *Client) StreamingHashtag(ctx context.Context, tag string, isLocal bool) (chan Event, error)
- func (c *Client) StreamingList(ctx context.Context, id ID) (chan Event, error)
- func (c *Client) StreamingPublic(ctx context.Context, isLocal bool) (chan Event, error)
- func (c *Client) StreamingUser(ctx context.Context) (chan Event, error)
- func (c *Client) TagFollow(ctx context.Context, tag string) (*FollowedTag, error)
- func (c *Client) TagInfo(ctx context.Context, tag string) (*FollowedTag, error)
- func (c *Client) TagUnfollow(ctx context.Context, ID string) (*FollowedTag, error)
- func (c *Client) TagsFollowed(ctx context.Context, pg *Pagination) ([]*FollowedTag, error)
- func (c *Client) TranslateStatus(ctx context.Context, id ID) (*Status, error)
- func (c *Client) Unbookmark(ctx context.Context, id ID) (*Status, error)
- func (c *Client) Unfavourite(ctx context.Context, id ID) (*Status, error)
- func (c *Client) Unreblog(ctx context.Context, id ID) (*Status, error)
- func (c *Client) UpdateFilter(ctx context.Context, id ID, filter *Filter) (*Filter, error)
- func (c *Client) UpdatePushSubscription(ctx context.Context, alerts *PushAlerts) (*PushSubscription, error)
- func (c *Client) UpdateStatus(ctx context.Context, toot *Toot, id ID) (*Status, error)
- func (c *Client) UploadMedia(ctx context.Context, file string) (*Attachment, error)
- func (c *Client) UploadMediaFromBytes(ctx context.Context, b []byte) (*Attachment, error)
- func (c *Client) UploadMediaFromMedia(ctx context.Context, media *Media) (*Attachment, error)
- func (c *Client) UploadMediaFromReader(ctx context.Context, reader io.Reader) (*Attachment, error)
- func (c *Client) VerifyAppCredentials(ctx context.Context) (*ApplicationVerification, error)
- type Config
- type Context
- type Conversation
- type ConversationEvent
- type DeleteEvent
- type Emoji
- type ErrorEvent
- type Event
- type Field
- type Filter
- type FilterKeyword
- type FilterResult
- type FilterStatus
- type FilterV2
- type FollowedTag
- type FollowedTagHistory
- type History
- type ID
- type Instance
- type InstanceConfig
- type InstanceConfigMap
- type InstanceStats
- type List
- type Marker
- type Media
- type Mention
- type Notification
- type NotificationEvent
- type Pagination
- type Poll
- type PollOption
- type Profile
- type PushAlerts
- type PushSubscription
- type Relationship
- type Report
- type Results
- type Sbool
- type ScheduledParams
- type Source
- type Status
- type StatusHistory
- type Stream
- type Tag
- type TagData
- type Toot
- type TootPoll
- type UnixTimeString
- type Unixtime
- type UnreadNotifications
- type UpdateEditEvent
- type UpdateEvent
- type WSClient
- func (c *WSClient) StreamingWSDirect(ctx context.Context) (chan Event, error)
- func (c *WSClient) StreamingWSHashtag(ctx context.Context, tag string, isLocal bool) (chan Event, error)
- func (c *WSClient) StreamingWSList(ctx context.Context, id ID) (chan Event, error)
- func (c *WSClient) StreamingWSPublic(ctx context.Context, isLocal bool) (chan Event, error)
- func (c *WSClient) StreamingWSUser(ctx context.Context) (chan Event, error)
- type WeeklyActivity
- type WriterResetter
Examples ¶
Constants ¶
const ( VisibilityPublic = "public" VisibilityUnlisted = "unlisted" VisibilityFollowersOnly = "private" VisibilityDirectMessage = "direct" )
Convenience constants for Toot.Visibility
Variables ¶
This section is empty.
Functions ¶
func Base64Encode ¶
Base64Encode returns the base64 data URI format string of the file.
func Base64EncodeFileName ¶
Base64EncodeFileName returns the base64 data URI format string of the file with the file name.
Types ¶
type Account ¶
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"`
Discoverable bool `json:"discoverable"`
Source *AccountSource `json:"source"`
FollowedTag []FollowedTag `json:"followed_tags"`
}
Account holds information for a mastodon account.
type AccountSource ¶
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 ¶
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 ¶
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 a mastodon application.
func RegisterApp ¶
func RegisterApp(ctx context.Context, appConfig *AppConfig) (*Application, error)
RegisterApp returns the mastodon application.
Example ¶
app, err := mastodon.RegisterApp(context.Background(), &mastodon.AppConfig{
Server: "https://mstdn.jp",
ClientName: "client-name",
Scopes: "read write follow",
Website: "https://codeberg.org/penny64/hellclient-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 ApplicationVerification ¶
type ApplicationVerification struct {
Name string `json:"name"`
Website string `json:"website"`
VapidKey string `json:"vapid_key"`
}
ApplicationVerification is mastodon application.
type Attachment ¶
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"`
BlurHash string `json:"blurhash"`
Meta AttachmentMeta `json:"meta"`
}
Attachment hold information for attachment.
type AttachmentFocus ¶
AttachmentSize holds information for attatchment size.
type AttachmentMeta ¶
type AttachmentMeta struct {
Original AttachmentSize `json:"original"`
Small AttachmentSize `json:"small"`
Focus AttachmentFocus `json:"focus"`
}
AttachmentMeta holds information for attachment metadata.
type AttachmentSize ¶
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 ¶
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 holds information for a mastodon card.
type Client ¶
Client is a API client for mastodon.
Example ¶
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 (*Client) AccountBlock ¶
AccountBlock blocks the account.
func (*Client) AccountFollow ¶
AccountFollow follows the account.
func (*Client) AccountFollowDetailed ¶
func (c *Client) AccountFollowDetailed(ctx context.Context, id ID, hidereblogs bool, notify bool) (*Relationship, error)
AccountFollow follows the account.
func (*Client) AccountLookup ¶
AccountLookup returns the Account of specified acct uri.
func (*Client) AccountMute ¶
AccountMute mutes the account.
func (*Client) AccountUnblock ¶
AccountUnblock unblocks the account.
func (*Client) AccountUnfollow ¶
AccountUnfollow unfollows the account.
func (*Client) AccountUnmute ¶
AccountUnmute unmutes the account.
func (*Client) AccountUpdate ¶
AccountUpdate updates the information of the current user.
func (*Client) AccountsSearch ¶
AccountsSearch searches accounts by query.
func (*Client) AccountsSearchResolve ¶
func (*Client) AddPushSubscription ¶
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 ¶
AddToList adds accounts to a list.
Only accounts already followed by the user can be added to a list.
func (*Client) Authenticate ¶
Authenticate gets access-token to the API. DEPRECATED: Authenticating with username and password is no longer supported, please use GetAppAccessToken() or GetUserAccessToken() instead
func (*Client) AuthenticateApp ¶
AuthenticateApp logs in using client credentials. DEPRECATED: use GetAppAccessToken() instead
func (*Client) AuthenticateToken ¶
AuthenticateToken logs in using a grant token returned by Application.AuthURI. redirectURI should be the same as Application.RedirectURI. DEPRECATED: Use GetUserAccessToken() instead
func (*Client) Bookmark ¶
Bookmark bookmarks the toot of id and returns status of the bookmark toot.
func (*Client) ClearNotifications ¶
ClearNotifications clears notifications.
func (*Client) CreateFilter ¶
CreateFilter creates a new filter.
func (*Client) CreateFilterV2 ¶
func (*Client) CreateList ¶
CreateList creates a new list with a given title.
func (*Client) DeleteConversation ¶
DeleteConversation delete the conversation specified by id.
func (*Client) DeleteFilter ¶
DeleteFilter removes a filter.
func (*Client) DeleteList ¶
DeleteList removes a list.
func (*Client) DeleteStatus ¶
DeleteStatus delete the toot.
func (*Client) DismissNotification ¶
DismissNotification deletes a single notification.
func (*Client) Favourite ¶
Favourite favourites the toot of id and returns status of the favourite toot.
func (*Client) FilterAddStatus ¶
func (*Client) FilterRemoveStatus ¶
func (*Client) FollowRemoteUser ¶
FollowRemoteUser sends follow-request.
func (*Client) FollowRequestAuthorize ¶
FollowRequestAuthorize authorizes the follow request of user with id.
func (*Client) FollowRequestReject ¶
FollowRequestReject rejects the follow request of user with id.
func (*Client) GetAccount ¶
GetAccount return Account.
func (*Client) GetAccountCurrentUser ¶
GetAccountCurrentUser returns the Account of current user.
func (*Client) GetAccountFollowers ¶
func (c *Client) GetAccountFollowers(ctx context.Context, id ID, pg *Pagination) ([]*Account, error)
GetAccountFollowers returns followers list.
func (*Client) GetAccountFollowing ¶
func (c *Client) GetAccountFollowing(ctx context.Context, id ID, pg *Pagination) ([]*Account, error)
GetAccountFollowing returns following list.
func (*Client) GetAccountLists ¶
GetAccountLists returns the lists containing a given account.
func (*Client) GetAccountPinnedStatuses ¶
GetAccountPinnedStatuses returns statuses pinned by specified accuont.
func (*Client) GetAccountRelationships ¶
func (c *Client) GetAccountRelationships(ctx context.Context, ids []string) ([]*Relationship, error)
GetAccountRelationships returns relationship for the account.
func (*Client) GetAccountStatuses ¶
GetAccountStatuses return statuses by specified account.
func (*Client) GetAppAccessToken ¶
GetAppAccessToken exchanges API Credentials for an application Access Token https://docs.joinmastodon.org/api/oauth-tokens/#app-tokens
func (*Client) GetBookmarks ¶
GetBookmarks returns the bookmark list of the current user.
func (*Client) GetConversations ¶
func (c *Client) GetConversations(ctx context.Context, pg *Pagination) ([]*Conversation, error)
GetConversations return direct conversations.
func (*Client) GetEndorsements ¶
GetEndorsements return accounts that the user is currently featuring on their profile.
func (*Client) GetFavouritedBy ¶
GetFavouritedBy returns the account list of the user who liked the toot of id.
func (*Client) GetFavourites ¶
GetFavourites returns the favorite list of the current user.
func (*Client) GetFilterV2 ¶
func (*Client) GetFilters ¶
GetFilters returns all the filters on the current account.
func (*Client) GetFiltersV2 ¶
func (*Client) GetFollowRequests ¶
GetFollowRequests returns follow requests.
func (*Client) GetFollowedTags ¶
func (c *Client) GetFollowedTags(ctx context.Context, pg *Pagination) ([]*FollowedTag, error)
GetFollowedTags returns the list of Hashtags followed by the user.
func (*Client) GetInstance ¶
GetInstance returns Instance.
func (*Client) GetInstanceActivity ¶
func (c *Client) GetInstanceActivity(ctx context.Context) ([]*WeeklyActivity, error)
GetInstanceActivity returns instance activity.
func (*Client) GetInstancePeers ¶
GetInstancePeers returns instance peers.
func (*Client) GetListAccounts ¶
GetListAccounts returns the accounts in a given list.
func (*Client) GetNotification ¶
GetNotification returns notification.
func (*Client) GetNotifications ¶
func (c *Client) GetNotifications(ctx context.Context, pg *Pagination) ([]*Notification, error)
GetNotifications returns notifications.
func (*Client) GetNotificationsExclude ¶
func (c *Client) GetNotificationsExclude(ctx context.Context, exclude *[]string, pg *Pagination) ([]*Notification, error)
GetNotificationsExclude returns notifications with excluded notifications
func (*Client) GetPushSubscription ¶
func (c *Client) GetPushSubscription(ctx context.Context) (*PushSubscription, error)
GetPushSubscription retrieves information about the active push subscription.
func (*Client) GetRebloggedBy ¶
GetRebloggedBy returns the account list of the user who reblogged the toot of id.
func (*Client) GetReports ¶
GetReports returns report of the current user.
func (*Client) GetStatusCard ¶
GetStatusCard returns status specified by id.
func (*Client) GetStatusContext ¶
GetStatusContext returns status specified by id.
func (*Client) GetStatusHistory ¶
GetStatusHistory returns the status history specified by id.
func (*Client) GetStatusSource ¶
GetStatusSource returns source data specified by id.
func (*Client) GetTimelineDirect ¶
GetTimelineDirect return statuses from direct timeline.
func (*Client) GetTimelineHashtag ¶
func (c *Client) GetTimelineHashtag(ctx context.Context, tag string, isLocal bool, pg *Pagination) ([]*Status, error)
GetTimelineHashtag return statuses from tagged timeline.
func (*Client) GetTimelineHashtagMultiple ¶
func (c *Client) GetTimelineHashtagMultiple(ctx context.Context, tag string, isLocal bool, td *TagData, pg *Pagination) ([]*Status, error)
GetTimelineHashtagMultiple return statuses from tagged timeline.
func (*Client) GetTimelineHome ¶
GetTimelineHome return statuses from home timeline.
func (*Client) GetTimelineList ¶
GetTimelineList return statuses from a list timeline.
func (*Client) GetTimelineMarkers ¶
func (*Client) GetTimelineMedia ¶
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 ¶
func (c *Client) GetTimelinePublic(ctx context.Context, isLocal bool, pg *Pagination) ([]*Status, error)
GetTimelinePublic return statuses from public timeline.
func (*Client) GetTrendingStatuses ¶
GetTrendingStatuses return statuses from explore timeline.
func (*Client) GetUnreadNotifications ¶
func (c *Client) GetUnreadNotifications(ctx context.Context, exclude *[]string, include *[]string, limit int) (*UnreadNotifications, error)
Number of notifications after the marker
func (*Client) GetUserAccessToken ¶
GetUserAccessToken exhanges a user provided authorization code for an User Access Token https://docs.joinmastodon.org/api/oauth-tokens/#user-tokens
func (*Client) MarkConversationAsRead ¶
MarkConversationAsRead mark the conversation as read.
func (*Client) NewWSClient ¶
NewWSClient return WebSocket client.
func (*Client) PollVote ¶
PollVote votes on a poll specified by id, choices is the Poll.Options index to vote on
func (*Client) PostStatus ¶
PostStatus post the toot.
func (*Client) RemoveFromList ¶
RemoveFromList removes accounts from a list.
func (*Client) RemovePushSubscription ¶
RemovePushSubscription deletes the active push subscription.
func (*Client) RenameList ¶
RenameList assigns a new title to a list.
func (*Client) Report ¶
func (c *Client) Report(ctx context.Context, accountID ID, ids []ID, comment string) (*Report, error)
Report reports the report
func (*Client) SetTimelineMarkers ¶
func (*Client) StreamingDirect ¶
StreamingDirect returns a channel to read events on a direct messages.
func (*Client) StreamingHashtag ¶
func (c *Client) StreamingHashtag(ctx context.Context, tag string, isLocal bool) (chan Event, error)
StreamingHashtag returns a channel to read events on tagged timeline.
func (*Client) StreamingList ¶
StreamingList returns a channel to read events on a list.
func (*Client) StreamingPublic ¶
StreamingPublic returns a channel to read events on public.
func (*Client) StreamingUser ¶
StreamingUser returns a channel to read events on home.
func (*Client) TagUnfollow ¶
TagUnfollow unfollows a hashtag.
func (*Client) TagsFollowed ¶
func (c *Client) TagsFollowed(ctx context.Context, pg *Pagination) ([]*FollowedTag, error)
TagsFollowed returns a list of hashtags you follow.
func (*Client) TranslateStatus ¶
GetStatus returns translated status specified by id.
func (*Client) Unbookmark ¶
Unbookmark is unbookmark the toot of id and return status of the unbookmark toot.
func (*Client) Unfavourite ¶
Unfavourite unfavourites the toot of id and returns status of the unfavourite toot.
func (*Client) Unreblog ¶
Unreblog unreblogs the toot of id and returns status of the original toot.
func (*Client) UpdateFilter ¶
UpdateFilter updates a filter.
func (*Client) UpdatePushSubscription ¶
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) UpdateStatus ¶
UpdateStatus updates the toot.
func (*Client) UploadMedia ¶
UploadMedia upload a media attachment from a file.
func (*Client) UploadMediaFromBytes ¶
UploadMediaFromBytes uploads a media attachment from a byte slice.
func (*Client) UploadMediaFromMedia ¶
UploadMediaFromMedia uploads a media attachment from a Media struct.
func (*Client) UploadMediaFromReader ¶
UploadMediaFromReader uploads a media attachment from an io.Reader.
func (*Client) VerifyAppCredentials ¶
func (c *Client) VerifyAppCredentials(ctx context.Context) (*ApplicationVerification, error)
VerifyAppCredentials returns the mastodon application.
type Context ¶
type Context struct {
Ancestors []*Status `json:"ancestors"`
Descendants []*Status `json:"descendants"`
}
Context holds information for a mastodon context.
type Conversation ¶
type Conversation struct {
ID ID `json:"id"`
Accounts []*Account `json:"accounts"`
Unread bool `json:"unread"`
LastStatus *Status `json:"last_status"`
}
Conversation holds information for a mastodon conversation.
type ConversationEvent ¶
type ConversationEvent struct {
Conversation *Conversation `json:"conversation"`
}
ConversationEvent is a struct for passing conversationevent to app.
type DeleteEvent ¶
type DeleteEvent struct{ ID ID }
DeleteEvent is a struct for passing deletion event to app.
type Emoji ¶
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 ¶
type ErrorEvent struct{ Err error }
ErrorEvent is a struct for passing errors to app.
func (*ErrorEvent) Error ¶
func (e *ErrorEvent) Error() string
type Event ¶
type Event interface {
// contains filtered or unexported methods
}
Event is an interface passing events to app.
type Field ¶
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 Filter ¶
type Filter struct {
ID ID `json:"id"`
Phrase string `json:"phrase"`
Context []string `json:"context"`
WholeWord bool `json:"whole_word"`
ExpiresAt time.Time `json:"expires_at"`
Irreversible bool `json:"irreversible"`
}
Filter is metadata for a filter of users.
type FilterKeyword ¶
type FilterResult ¶
type FilterResult struct {
Filter struct {
ID string `json:"id"`
Title string `json:"title"`
Context []string `json:"context"`
ExpiresAt time.Time `json:"expires_at"`
FilterAction string `json:"filter_action"`
} `json:"filter"`
KeywordMatches []string `json:"keyword_matches"`
StatusMatches []string `json:"status_matches"`
}
type FilterStatus ¶
type FilterV2 ¶
type FilterV2 struct {
ID ID `json:"id"`
Title string `json:"title"`
Context []string `json:"context"`
ExpiresIn int `json:"expires_in,omitempty"`
Action string `json:"filter_action"`
KeywordsAttributes []FilterKeyword `json:"keywords_attributes,omitempty"`
//Returned by the API
Statuses []FilterStatus `json:"statuses,omitempty"`
Keywords []FilterKeyword `json:"keywords,omitempty"`
ExpiresAt *time.Time `json:"expires_at,omitempty"`
}
type FollowedTag ¶
type FollowedTag struct {
Name string `json:"name,omitempty"`
URL string `json:"url,omitempty"`
History []FollowedTagHistory `json:"history,omitempty"`
Following bool `json:"following,omitempty"`
}
FollowedTag is a Hash Tag followed by the user
type FollowedTagHistory ¶
type FollowedTagHistory struct {
Day UnixTimeString `json:"day,omitempty"`
Accounts int `json:"accounts,string,omitempty"`
Uses int `json:"uses,string,omitempty"`
}
History is the history of a followed tag
type History ¶
type History struct {
Day string `json:"day"`
Uses string `json:"uses"`
Accounts string `json:"accounts"`
}
History hold information for history.
type ID ¶
type ID string
func (ID) Compare ¶
Compare compares the Mastodon IDs i and j. Compare returns:
-1 if i is less than j, 0 if i equals j, -1 if j is greater than i.
Compare can be used as an argument of slices.SortFunc:
slices.SortFunc([]mastodon.ID{id1, id2}, mastodon.ID.Compare)
func (*ID) UnmarshalJSON ¶
type Instance ¶
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"`
Configuration *InstanceConfig `json:"configuration"`
}
Instance holds information for a mastodon instance.
func (*Instance) GetConfig ¶
func (c *Instance) GetConfig() *InstanceConfig
GetConfig returns InstanceConfig.
type InstanceConfig ¶
type InstanceConfig struct {
Accounts *InstanceConfigMap `json:"accounts"`
Statuses *InstanceConfigMap `json:"statuses"`
MediaAttachments map[string]interface{} `json:"media_attachments"`
Polls *InstanceConfigMap `json:"polls"`
}
InstanceConfig holds configuration accessible for clients.
type InstanceConfigMap ¶
type InstanceConfigMap map[string]interface{}
type InstanceStats ¶
type InstanceStats struct {
UserCount int64 `json:"user_count"`
StatusCount int64 `json:"status_count"`
DomainCount int64 `json:"domain_count"`
}
InstanceStats holds information for mastodon instance stats.
type Mention ¶
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 ¶
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 holds information for a mastodon notification.
type NotificationEvent ¶
type NotificationEvent struct {
Notification *Notification `json:"notification"`
}
NotificationEvent is a struct for passing notification event to app.
type Pagination ¶
Pagination is a struct for specifying the get range.
Example ¶
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 ¶
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"`
VotersCount int64 `json:"voters_count"`
Options []PollOption `json:"options"`
Voted bool `json:"voted"`
OwnVotes []int `json:"own_votes"`
Emojis []Emoji `json:"emojis"`
}
Poll holds information for mastodon polls.
type PollOption ¶
Poll holds information for a mastodon poll option.
type Profile ¶
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 ¶
type PushSubscription ¶
type PushSubscription struct {
ID ID `json:"id"`
Endpoint string `json:"endpoint"`
ServerKey string `json:"server_key"`
Alerts *PushAlerts `json:"alerts"`
}
type Relationship ¶
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"`
Notifying bool `json:"notifying"`
Endorsed bool `json:"endorsed"`
}
Relationship holds information for relationship to the account.
type ScheduledParams ¶
type ScheduledParams struct {
ApplicationID ID `json:"application_id"`
Idempotency string `json:"idempotency"`
InReplyToID interface{} `json:"in_reply_to_id"`
MediaIDs []ID `json:"media_ids"`
Poll *Poll `json:"poll"`
ScheduledAt *time.Time `json:"scheduled_at,omitempty"`
Sensitive bool `json:"sensitive"`
SpoilerText string `json:"spoiler_text"`
Text string `json:"text"`
Visibility string `json:"visibility"`
}
ScheduledStatus holds information returned when ScheduledAt is set on a status
type Source ¶
type Source struct {
ID ID `json:"id"`
Text string `json:"text"`
SpoilerText string `json:"spoiler_text"`
}
Source holds source properties so a status can be edited.
type Status ¶
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"`
EditedAt time.Time `json:"edited_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"`
Bookmarked interface{} `json:"bookmarked"`
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 map[string]string `json:"application"`
Language string `json:"language"`
Pinned interface{} `json:"pinned"`
ScheduledParams ScheduledParams `json:"params"`
Filtered []FilterResult `json:"filtered"`
}
Status is struct to hold status.
type StatusHistory ¶
type StatusHistory struct {
Content string `json:"content"`
SpoilerText string `json:"spoiler_text"`
Account Account `json:"account"`
Sensitive bool `json:"sensitive"`
CreatedAt time.Time `json:"created_at"`
Emojis []Emoji `json:"emojis"`
MediaAttachments []Attachment `json:"media_attachments"`
}
StatusHistory is a struct to hold status history data.
type Stream ¶
type Stream struct {
Event string `json:"event"`
Payload interface{} `json:"payload"`
}
Stream is a struct of data that flows in streaming.
type Tag ¶
type Tag struct {
Name string `json:"name"`
URL string `json:"url"`
History []History `json:"history"`
}
Tag hold information for tag.
type Toot ¶
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"`
Language string `json:"language"`
ContentType string `json:"content_type"`
ScheduledAt *time.Time `json:"scheduled_at,omitempty"`
Poll *TootPoll `json:"poll"`
}
Toot is a struct to post status.
type TootPoll ¶
type TootPoll struct {
Options []string `json:"options"`
ExpiresInSeconds int64 `json:"expires_in"`
Multiple bool `json:"multiple"`
HideTotals bool `json:"hide_totals"`
}
TootPoll holds information for creating a poll in Toot.
type UnixTimeString ¶
UnixTimeString represents a time in a Unix Epoch string
func (*UnixTimeString) UnmarshalJSON ¶
func (u *UnixTimeString) UnmarshalJSON(b []byte) error
type Unixtime ¶
func (*Unixtime) UnmarshalJSON ¶
type UnreadNotifications ¶
type UnreadNotifications struct {
Count int `json:"count"`
}
type UpdateEditEvent ¶
type UpdateEditEvent struct {
Status *Status `json:"status"`
}
UpdateEditEvent is a struct for passing status edit event to app.
type UpdateEvent ¶
type UpdateEvent struct {
Status *Status `json:"status"`
}
UpdateEvent is a struct for passing status event to app.
type WSClient ¶
WSClient is a WebSocket client.
func (*WSClient) StreamingWSDirect ¶
StreamingWSDirect return channel to read events on a direct messages using WebSocket.
func (*WSClient) StreamingWSHashtag ¶
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 ¶
StreamingWSList return channel to read events on a list using WebSocket.
func (*WSClient) StreamingWSPublic ¶
StreamingWSPublic return channel to read events on public using WebSocket.
type WeeklyActivity ¶
type WeeklyActivity struct {
Week Unixtime `json:"week"`
Statuses int64 `json:"statuses,string"`
Logins int64 `json:"logins,string"`
Registrations int64 `json:"registrations,string"`
}
WeeklyActivity holds information for mastodon weekly activity.
type WriterResetter ¶
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
public-application
command
|
|
|
user-credentials
command
|
|
|
user-oauth-authorization
command
|