go-mastodon/cmd/mstdn/cmd_followers.go

41 lines
860 B
Go
Raw Normal View History

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