go-mastodon/cmd/mstdn/cmd_followers.go

41 lines
860 B
Go

package main
import (
"context"
"fmt"
"time"
"github.com/mattn/go-mastodon"
"github.com/urfave/cli"
)
func cmdFollowers(c *cli.Context) error {
client := c.App.Metadata["client"].(*mastodon.Client)
config := c.App.Metadata["config"].(*mastodon.Config)
account, err := client.GetAccountCurrentUser(context.Background())
if err != nil {
return err
}
var maxID *int64
var followers []*mastodon.Account
for {
fs, pg, err := client.GetAccountFollowers(
context.Background(), account.ID, &mastodon.Pagination{MaxID: maxID})
if err != nil {
return err
}
followers = append(followers, fs...)
if pg.MaxID == nil {
break
}
maxID = pg.MaxID
time.Sleep(10 * time.Second)
}
s := newScreen(config)
for _, follower := range followers {
fmt.Fprintf(c.App.Writer, "%v,%v\n", follower.ID, s.acct(follower.Acct))
}
return nil
}