aboutsummaryrefslogtreecommitdiff
path: root/cmd/mkapp/main.go
blob: e856f5c85de2990167af2cc66d99d802b854eb94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Command mkapp creates a mastodon app for a given -instance.
package main

import (
	"flag"
	"fmt"
	"log"

	"github.com/McKael/madon/v2"
	"within.website/x/internal"
)

var (
	instance    = flag.String("instance", "", "mastodon instance")
	appName     = flag.String("app-name", "Xe/x bot", "app name for mastodon")
	redirectURI = flag.String("redirect-uri", "urn:ietf:wg:oauth:2.0:oob", "redirect URI for app users")
	website     = flag.String("website", "https://within.website/x", "website for users that click the app name")
	username    = flag.String("username", "", "username to generate token")
	password    = flag.String("password", "", "password to generate token")
)

var scopes = []string{"read", "write", "follow"}

func main() {
	internal.HandleStartup()

	c, err := madon.NewApp(*appName, *website, scopes, *redirectURI, *instance)
	if err != nil {
		log.Fatal(err)
	}

	err = c.LoginBasic(*username, *password, scopes)
	if err != nil {
		log.Fatal(err)
	}

	fmt.Printf("APP_ID=%s\nAPP_SECRET=%s\nTOKEN=%s\nINSTANCE=%s", c.ID, c.Secret, c.UserToken.AccessToken, *instance)
}