ref: 482ed92dbc236887d206a1b3f3d14c095ecdc2f4
parent: 3521700b982daaf6b4d5e0c4055f251372f07b40
author: penny <penny@limitedideas.org>
date: Tue Sep 30 21:21:35 EDT 2025
switch to TOML for config file
--- a/config.go
+++ b/config.go
@@ -1,30 +1,31 @@
package main
import (
- "encoding/json"
"fmt"
"io/ioutil"
"os"
"time"
"strings"
+
+ "github.com/BurntSushi/toml"
)
const configFileName = ".hell.conf"
type Hellprefs struct {- Apidelay float32 `json:"apidelay"`
- Save_Location string `json:"save_location"`
- Browser string `json:"browser"`
- ImageViewer string `json:"image_viewer"`
- MediaImport string `json:"media_importer"`
+ Apidelay float32 `toml:"apidelay"`
+ Save_Location string `toml:"save_location"`
+ Browser string `toml:"browser"`
+ ImageViewer string `toml:"image_viewer"`
+ MediaImport string `toml:"media_importer"`
}
type account struct {- MASTODON_CLIENT_ID string `json:"MASTODON_CLIENT_ID"`
- MASTODON_CLIENT_SECRET string `json:"MASTODON_CLIENT_SECRET"`
- MASTODON_ACCESS_TOKEN string `json:"MASTODON_ACCESS_TOKEN"`
- URL string `json:"URL"`
- Preferences Hellprefs `json:"preferences"`
+ MASTODON_CLIENT_ID string `toml:"MASTODON_CLIENT_ID"`
+ MASTODON_CLIENT_SECRET string `toml:"MASTODON_CLIENT_SECRET"`
+ MASTODON_ACCESS_TOKEN string `toml:"MASTODON_ACCESS_TOKEN"`
+ URL string `toml:"URL"`
+ Preferences Hellprefs `toml:"preferences"`
}
func (prefs *Hellprefs) ApiDelayTime() time.Duration {@@ -95,7 +96,7 @@
config.Preferences = initPrefs()
- data, err := json.MarshalIndent(config, "", " ")
+ data, err := toml.Marshal(config)
if err != nil { return nil, fmt.Errorf("error marshalling config: %w", err)}
@@ -113,7 +114,7 @@
return nil, fmt.Errorf("error reading config file: %w", err)}
- err = json.Unmarshal(data, config)
+ err = toml.Unmarshal(data, config)
if err != nil { return nil, fmt.Errorf("error unmarshalling config: %w", err)}
@@ -122,7 +123,7 @@
config.Preferences = *prefs
if fixed {- data, err = json.MarshalIndent(config, "", " ")
+ data, err = toml.Marshal(config)
if err != nil { return nil, fmt.Errorf("error marshalling config: %w", err)}
--- a/go.mod
+++ b/go.mod
@@ -12,6 +12,7 @@
require (
codeberg.org/penny64/hellclient-go-mastodon v0.0.0-20250923211910-cfaf18532c25 // indirect
+ github.com/BurntSushi/toml v1.5.0 // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 // indirect
github.com/gorilla/websocket v1.5.3 // indirect
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,7 @@
codeberg.org/penny64/hellclient-go-mastodon v0.0.0-20250923211910-cfaf18532c25 h1:ou5aQCb1QfkralqKoTJ1XUm4OKO7igrC/VBRj8P1eOY=
codeberg.org/penny64/hellclient-go-mastodon v0.0.0-20250923211910-cfaf18532c25/go.mod h1:uBGYW1AuCWBfm/LaIH4X4SnuWGWcSP4DNH/v/KUUMj8=
+github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
+github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/ergochat/readline v0.1.3 h1:/DytGTmwdUJcLAe3k3VJgowh5vNnsdifYT6uVaf4pSo=
github.com/ergochat/readline v0.1.3/go.mod h1:o3ux9QLHLm77bq7hDB21UTm6HlV2++IPDMfIfKDuOgY=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
--- a/mastodon.go
+++ b/mastodon.go
@@ -19,7 +19,7 @@
Server: "https://eldritch.cafe",
ClientName: "hellclient",
Scopes: "read write follow",
- Website: "https://github.com/mattn/go-mastodon",
+ Website: "https://codeberg.org/penny64/hellclient",
RedirectURIs: "urn:ietf:wg:oauth:2.0:oob",
}
--
⑨