3 Commits

Author SHA1 Message Date
60688d7a0e Do not repeat code whenever possible
Signed-off-by: Shin'ya Minazuki <shinyoukai@laidback.moe>
2025-12-30 07:53:26 -03:00
811028bebc Update roadmap
Signed-off-by: Shin'ya Minazuki <shinyoukai@laidback.moe>
2025-12-30 00:39:20 -03:00
57a2914fe3 Fix token retrieval
Signed-off-by: Shin'ya Minazuki <shinyoukai@laidback.moe>
2025-12-30 00:37:25 -03:00
4 changed files with 28 additions and 20 deletions

View File

@@ -2,6 +2,7 @@
[Yarn.social](https://yarn.social) client where each task (except for logout) is handled by a separate program. [Yarn.social](https://yarn.social) client where each task (except for logout) is handled by a separate program.
## Current status ## Current status
* [ ] Follow/Unfollow
* [X] Login * [X] Login
* [X] Posting * [X] Posting
* [ ] Timeline * [ ] Timeline

View File

@@ -2,7 +2,9 @@ package main
import ( import (
"fmt" "fmt"
"log"
"os" "os"
"strings"
"syscall" "syscall"
"golang.org/x/term" "golang.org/x/term"
@@ -16,24 +18,22 @@ var (
) )
func init() { func init() {
xdg_config_home, err := os.UserConfigDir() mikuru.ConfInit()
if err != nil {
fmt.Println("Unable to obtain user's configuration directory")
os.Exit(1)
}
configPath := xdg_config_home + "/mikuru.ini"
mikuru.Parse(configPath)
} }
func main() { func main() {
cli, err := client.NewClient(client.WithURI(mikuru.Config.Host)) cli, err := client.NewClient(client.WithURI(mikuru.Config.Host))
if err != nil { if err != nil {
fmt.Printf("%s", err) log.Println("Unable to create client")
fmt.Println("Error creating client") log.Fatal(err)
os.Exit(1)
} }
fmt.Println("Welcome to Mikuru!")
fmt.Printf("%s\n", mikuru.PrintVersion())
signin(cli) signin(cli)
} }
func signin(cli *client.Client) { func signin(cli *client.Client) {
fmt.Printf("Username: ") fmt.Printf("Username: ")
fmt.Scanln(&username) fmt.Scanln(&username)
@@ -59,9 +59,11 @@ func signin(cli *client.Client) {
os.Exit(1) os.Exit(1)
} }
token := strings.Trim(fmt.Sprintf(res.Token), "{}")
fmt.Println("Login successful") fmt.Println("Login successful")
fmt.Println("Place this token in your configuration file for later use") fmt.Println("Place this token in your configuration file for later use")
fmt.Println("Do not share it with anyone, it's classified information") fmt.Println("Do not share it with anyone, it's classified information")
fmt.Println("Trim surrounding braces before usage") fmt.Printf("token = %v\n", token)
fmt.Printf("token = %v\n", res)
} }

View File

@@ -2,7 +2,6 @@ package main
import ( import (
"log" "log"
"os"
"git.laidback.moe/shinyoukai/mikuru" "git.laidback.moe/shinyoukai/mikuru"
"go.yarn.social/client" "go.yarn.social/client"
@@ -10,13 +9,7 @@ import (
) )
func init() { func init() {
config, err := os.UserConfigDir() mikuru.ConfInit()
if err != nil {
log.Fatalf("%s\n")
}
configPath := config + "/mikuru.ini"
mikuru.Parse(configPath)
} }
func main() { func main() {

View File

@@ -1,6 +1,8 @@
package mikuru package mikuru
import ( import (
"log"
"os"
"gopkg.in/ini.v1" "gopkg.in/ini.v1"
) )
@@ -9,6 +11,16 @@ var Config struct {
Token string Token string
} }
func ConfInit() {
config, err := os.UserConfigDir()
if err != nil {
log.Println("Unable to obtain user's configuration directory")
log.Fatal(err)
}
configPath := config + "/mikuru.ini"
Parse(configPath)
}
func Parse(file string) error { func Parse(file string) error {
cfg, err := ini.Load(file) cfg, err := ini.Load(file)
if err != nil { if err != nil {