123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package mastodon
- import (
- "context"
- "net/http"
- )
- // Instance hold information for mastodon 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:"account"`
- }
- // InstanceStats hold information for mastodon instance stats.
- type InstanceStats struct {
- UserCount int64 `json:"user_count"`
- StatusCount int64 `json:"status_count"`
- DomainCount int64 `json:"domain_count"`
- }
- // GetInstance return Instance.
- func (c *Client) GetInstance(ctx context.Context) (*Instance, error) {
- var instance Instance
- err := c.doAPI(ctx, http.MethodGet, "/api/v1/instance", nil, &instance, nil)
- if err != nil {
- return nil, err
- }
- return &instance, nil
- }
- // WeeklyActivity hold information for mastodon weekly activity.
- type WeeklyActivity struct {
- Week Unixtime `json:"week"`
- Statuses int64 `json:"statuses,string"`
- Logins int64 `json:"logins,string"`
- Registrations int64 `json:"registrations,string"`
- }
- // GetInstanceActivity return instance activity.
- func (c *Client) GetInstanceActivity(ctx context.Context) ([]*WeeklyActivity, error) {
- var activity []*WeeklyActivity
- err := c.doAPI(ctx, http.MethodGet, "/api/v1/instance/activity", nil, &activity, nil)
- if err != nil {
- return nil, err
- }
- return activity, nil
- }
- // GetInstancePeers return instance peers.
- func (c *Client) GetInstancePeers(ctx context.Context) ([]string, error) {
- var peers []string
- err := c.doAPI(ctx, http.MethodGet, "/api/v1/instance/peers", nil, &peers, nil)
- if err != nil {
- return nil, err
- }
- return peers, nil
- }
- // GetInstanceEmojis return instance emojis.
- func (c *Client) GetInstanceEmojis(ctx context.Context) ([]*Emoji, error) {
- var emojis []*Emoji
- err := c.doAPI(ctx, http.MethodGet, "/api/v1/custom_emojis", nil, &emojis, nil)
- if err != nil {
- return nil, err
- }
- return emojis, nil
- }
|