From 37a8be588537a139fcfdfe73823d30929d4dec4e Mon Sep 17 00:00:00 2001 From: ayn2op Date: Sun, 13 Oct 2024 11:34:19 -0400 Subject: [PATCH] refactor: remove constants package --- cmd/layout.go | 3 +-- cmd/login_form.go | 3 +-- cmd/message_input.go | 5 +++-- cmd/state.go | 13 ++++++++----- internal/config/config.go | 10 ++++++++-- internal/constants/constants.go | 23 ----------------------- internal/logger/logger.go | 4 ++-- main.go | 4 ++-- 8 files changed, 25 insertions(+), 40 deletions(-) delete mode 100644 internal/constants/constants.go diff --git a/cmd/layout.go b/cmd/layout.go index d471905..ad29427 100644 --- a/cmd/layout.go +++ b/cmd/layout.go @@ -4,7 +4,6 @@ import ( "log/slog" "github.com/ayn2op/discordo/internal/config" - "github.com/ayn2op/discordo/internal/constants" "github.com/gdamore/tcell/v2" "github.com/rivo/tview" "github.com/zalando/go-keyring" @@ -110,7 +109,7 @@ func (l *Layout) onFlexInputCapture(event *tcell.EventKey) *tcell.EventKey { case l.cfg.Keys.Logout: l.app.Stop() - if err := keyring.Delete(constants.Name, "token"); err != nil { + if err := keyring.Delete(config.Name, "token"); err != nil { slog.Error("failed to delete token from keyring", "err", err) return nil } diff --git a/cmd/login_form.go b/cmd/login_form.go index 4493500..bb0d168 100644 --- a/cmd/login_form.go +++ b/cmd/login_form.go @@ -4,7 +4,6 @@ import ( "errors" "github.com/ayn2op/discordo/internal/config" - "github.com/ayn2op/discordo/internal/constants" "github.com/diamondburned/arikawa/v3/api" "github.com/gdamore/tcell/v2" "github.com/rivo/tview" @@ -85,7 +84,7 @@ func (lf *loginForm) login() { rememberMe := lf.GetFormItem(3).(*tview.Checkbox).IsChecked() if rememberMe { go func() { - if err := keyring.Set(constants.Name, "token", lr.Token); err != nil { + if err := keyring.Set(config.Name, "token", lr.Token); err != nil { lf.done("", err) } }() diff --git a/cmd/message_input.go b/cmd/message_input.go index 854c7b1..6d3485b 100644 --- a/cmd/message_input.go +++ b/cmd/message_input.go @@ -8,7 +8,6 @@ import ( "github.com/atotto/clipboard" "github.com/ayn2op/discordo/internal/config" - "github.com/ayn2op/discordo/internal/constants" "github.com/diamondburned/arikawa/v3/api" "github.com/diamondburned/arikawa/v3/discord" "github.com/diamondburned/arikawa/v3/utils/json/option" @@ -16,6 +15,8 @@ import ( "github.com/rivo/tview" ) +const tmpFilePattern = config.Name + "_*.md" + type MessageInput struct { *tview.TextArea cfg *config.Config @@ -121,7 +122,7 @@ func (mi *MessageInput) editor() { e = os.Getenv("EDITOR") } - f, err := os.CreateTemp("", constants.TmpFilePattern) + f, err := os.CreateTemp("", tmpFilePattern) if err != nil { slog.Error("failed to create temporary file", "err", err) return diff --git a/cmd/state.go b/cmd/state.go index ed6ad39..4f8f90d 100644 --- a/cmd/state.go +++ b/cmd/state.go @@ -7,7 +7,6 @@ import ( "slices" "github.com/ayn2op/discordo/internal/config" - "github.com/ayn2op/discordo/internal/constants" "github.com/diamondburned/arikawa/v3/api" "github.com/diamondburned/arikawa/v3/discord" "github.com/diamondburned/arikawa/v3/gateway" @@ -17,12 +16,16 @@ import ( "github.com/rivo/tview" ) +const userAgent = config.Name + "/0.1 (https://github.com/diamondburned/arikawa, v3)" + func init() { - api.UserAgent = constants.UserAgent + api.UserAgent = userAgent gateway.DefaultIdentity = gateway.IdentifyProperties{ - OS: runtime.GOOS, - Browser: constants.Name, - Device: "", + OS: runtime.GOOS, + Device: "", + + Browser: config.Name, + BrowserUserAgent: userAgent, } } diff --git a/internal/config/config.go b/internal/config/config.go index 2628eb9..447a68a 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -6,9 +6,10 @@ import ( "time" "github.com/BurntSushi/toml" - "github.com/ayn2op/discordo/internal/constants" ) +const Name = "discordo" + type Config struct { Mouse bool `toml:"mouse"` HideBlockedUsers bool `toml:"hide_blocked_users"` @@ -44,7 +45,12 @@ func defaultConfig() *Config { // Reads the configuration file and parses it. func Load() (*Config, error) { - path := filepath.Join(constants.ConfigDirPath, "config.toml") + path, err := os.UserConfigDir() + if err != nil { + path = "." + } + + path = filepath.Join(path, Name, "config.toml") f, err := os.Open(path) cfg := defaultConfig() diff --git a/internal/constants/constants.go b/internal/constants/constants.go deleted file mode 100644 index 261b9d2..0000000 --- a/internal/constants/constants.go +++ /dev/null @@ -1,23 +0,0 @@ -package constants - -import ( - "os" - "path/filepath" -) - -const Name = "discordo" - -const UserAgent = Name + "/0.1 (https://github.com/diamondburned/arikawa, v3)" - -const TmpFilePattern = Name + "_*.md" - -var ConfigDirPath string - -func init() { - path, err := os.UserConfigDir() - if err != nil { - path = "." - } - - ConfigDirPath = filepath.Join(path, Name) -} diff --git a/internal/logger/logger.go b/internal/logger/logger.go index be84561..0922f23 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - "github.com/ayn2op/discordo/internal/constants" + "github.com/ayn2op/discordo/internal/config" ) // Recursively creates the log directory if it does not exist already and returns the path to the log file. @@ -15,7 +15,7 @@ func initialize() (string, error) { return "", err } - path = filepath.Join(path, constants.Name) + path = filepath.Join(path, config.Name) if err := os.MkdirAll(path, os.ModePerm); err != nil { return "", err } diff --git a/main.go b/main.go index 54bb996..38db2ed 100644 --- a/main.go +++ b/main.go @@ -5,7 +5,7 @@ import ( "log/slog" "github.com/ayn2op/discordo/cmd" - "github.com/ayn2op/discordo/internal/constants" + "github.com/ayn2op/discordo/internal/config" "github.com/zalando/go-keyring" ) @@ -15,7 +15,7 @@ func main() { // If no token was provided, look it up in the keyring if *token == "" { - t, err := keyring.Get(constants.Name, "token") + t, err := keyring.Get(config.Name, "token") if err != nil { slog.Info("failed to get token from keyring", "err", err) } else {