You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.2 KiB
54 lines
1.2 KiB
package main |
|
|
|
import ( |
|
"context" |
|
"log" |
|
"strings" |
|
|
|
"github.com/mattn/go-mastodon" |
|
) |
|
|
|
type App struct { |
|
UI *UI |
|
Me *mastodon.Account |
|
API *API |
|
Config *Config |
|
FullUsername string |
|
HaveAccount bool |
|
Accounts *AccountData |
|
FileList []string |
|
} |
|
|
|
func (a *App) Login(index int) { |
|
if index >= len(a.Accounts.Accounts) { |
|
log.Fatalln("Tried to login with an account that doesn't exist") |
|
} |
|
acc := a.Accounts.Accounts[index] |
|
client, err := acc.Login() |
|
if err == nil { |
|
a.API.SetClient(client) |
|
a.HaveAccount = true |
|
|
|
me, err := a.API.Client.GetAccountCurrentUser(context.Background()) |
|
if err != nil { |
|
log.Fatalln(err) |
|
} |
|
a.Me = me |
|
if acc.Name == "" { |
|
a.Accounts.Accounts[index].Name = me.Username |
|
|
|
path, _, err := CheckConfig("accounts.toml") |
|
if err != nil { |
|
log.Fatalf("Couldn't open the account file for reading. Error: %v", err) |
|
} |
|
err = a.Accounts.Save(path) |
|
if err != nil { |
|
log.Fatalf("Couldn't update the account file. Error: %v", err) |
|
} |
|
} |
|
|
|
host := strings.TrimPrefix(acc.Server, "https://") |
|
host = strings.TrimPrefix(host, "http://") |
|
a.FullUsername = me.Username + "@" + host |
|
} |
|
}
|
|
|