From a4b94b4f45524b5358196c1c0a3bdb146213667b Mon Sep 17 00:00:00 2001 From: Harvey Tindall Date: Tue, 2 Dec 2025 13:02:02 +0000 Subject: [PATCH] tray: switch to fork, use higher res icon switched to a fork of a fork of getlantern/systray which has no ayatana-appindicator dependency. --- .goreleaser.yml | 3 -- README.md | 2 +- autostart.go | 9 ++--- go.mod | 15 +++----- go.sum | 70 +++++++------------------------------ static/favicon-256x256.png | Bin 0 -> 25287 bytes tray.go | 61 +++++++++++++++++++------------- 7 files changed, 59 insertions(+), 101 deletions(-) create mode 100644 static/favicon-256x256.png diff --git a/.goreleaser.yml b/.goreleaser.yml index d9b5da3..9c5b5d7 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -177,13 +177,10 @@ nfpms: replaces: - jfa-go dependencies: - - libayatana-appindicator - libolm-dev rpm: dependencies: - - libappindicator-gtk3 - libolm apk: dependencies: - - libayatana-appindicator - olm diff --git a/README.md b/README.md index 7f94658..3994bbf 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ jfa-go is a user management app for [Jellyfin](https://github.com/jellyfin/jelly #### Install -**Note**: `TrayIcon` builds include a tray icon to start/stop/restart, and an option to automatically start when you log-in to your computer. For Linux users, these builds depend on the `libappindicator3-1`/`libappindicator-gtk3`/`libappindicator` package for Debian/Ubuntu, Fedora, and Alpine respectively. +**Note**: `TrayIcon` builds include a tray icon to start/stop/restart, and an option to automatically start when you log-in to your computer. `MatrixE2EE` builds (and Linux `TrayIcon` builds) include support for end-to-end encryption for the Matrix bot, but require the `libolm(-dev)` dependency. `.deb/.rpm/.apk` packages list this dependency, and docker images include it. diff --git a/autostart.go b/autostart.go index c0b75e2..9ecb0f4 100644 --- a/autostart.go +++ b/autostart.go @@ -1,3 +1,4 @@ +//go:build tray // +build tray package main @@ -8,7 +9,7 @@ import ( "path/filepath" "github.com/emersion/go-autostart" - "github.com/getlantern/systray" + "github.com/lutischan-ferenc/systray" ) type Autostart struct { @@ -48,8 +49,8 @@ func NewAutostart(name, displayname, trayName, trayTooltip string) *Autostart { return a } -func (a *Autostart) HandleCheck() { - for range a.menuitem.ClickedCh { +func (a *Autostart) Register() { + a.menuitem.Click(func() { if !a.menuitem.Checked() { if err := a.as.Enable(); err != nil { log.Printf("Failed to enable autostart on login: %v", err) @@ -65,5 +66,5 @@ func (a *Autostart) HandleCheck() { log.Printf("Disabled autostart") } } - } + }) } diff --git a/go.mod b/go.mod index e179811..ff8b61c 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,6 @@ require ( github.com/emersion/go-autostart v0.0.0-20250403115856-34830d6457d2 github.com/fatih/color v1.18.0 github.com/fsnotify/fsnotify v1.9.0 - github.com/getlantern/systray v1.2.2 github.com/gin-contrib/pprof v1.5.3 github.com/gin-gonic/gin v1.11.0 github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible @@ -46,6 +45,7 @@ require ( github.com/hrfee/mediabrowser v0.3.33 github.com/itchyny/timefmt-go v0.1.7 github.com/lithammer/shortuuid/v3 v3.0.7 + github.com/lutischan-ferenc/systray v1.2.1 github.com/mailgun/mailgun-go/v4 v4.23.0 github.com/mattn/go-sqlite3 v1.14.32 github.com/robert-nix/ansihtml v1.0.1 @@ -69,13 +69,8 @@ require ( github.com/cloudwego/base64x v0.1.6 // indirect github.com/dgraph-io/ristretto/v2 v2.3.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect + github.com/energye/systray v1.0.2 // indirect github.com/gabriel-vasile/mimetype v1.4.11 // indirect - github.com/getlantern/context v0.0.0-20220418194847-3d5e7a086201 // indirect - github.com/getlantern/errors v1.0.4 // indirect - github.com/getlantern/golog v0.0.0-20230503153817-8e72de7e0a65 // indirect - github.com/getlantern/hex v0.0.0-20220104173244-ad7e4b9194dc // indirect - github.com/getlantern/hidden v0.0.0-20220104173330-f221c5a24770 // indirect - github.com/getlantern/ops v0.0.0-20231025133620-f368ab734534 // indirect github.com/gin-contrib/sse v1.1.0 // indirect github.com/go-chi/chi/v5 v5.2.3 // indirect github.com/go-logr/logr v1.4.3 // indirect @@ -93,9 +88,9 @@ require ( github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.28.0 // indirect - github.com/go-stack/stack v1.8.1 // indirect github.com/go-test/deep v1.1.0 // indirect github.com/goccy/go-json v0.10.5 // indirect + github.com/godbus/dbus/v5 v5.2.0 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect github.com/google/flatbuffers v25.9.23+incompatible // indirect github.com/google/uuid v1.6.0 // indirect @@ -110,7 +105,6 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/petermattis/goid v0.0.0-20251121121749-a11dd1a45f9a // indirect github.com/quic-go/qpack v0.6.0 // indirect @@ -119,6 +113,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/swaggo/swag v1.16.6 // indirect github.com/technoweenie/multipartstreamer v1.0.1 // indirect + github.com/tevino/abool v0.0.0-20220530134649-2bfc934cb23c // indirect github.com/tidwall/gjson v1.18.0 // indirect github.com/tidwall/match v1.2.0 // indirect github.com/tidwall/pretty v1.2.1 // indirect @@ -132,8 +127,6 @@ require ( go.opentelemetry.io/otel/metric v1.38.0 // indirect go.opentelemetry.io/otel/trace v1.38.0 // indirect go.uber.org/mock v0.6.0 // indirect - go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.27.1 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/arch v0.23.0 // indirect golang.org/x/crypto v0.45.0 // indirect diff --git a/go.sum b/go.sum index c72b475..8936c7b 100644 --- a/go.sum +++ b/go.sum @@ -11,7 +11,6 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/bwmarrin/discordgo v0.29.0 h1:FmWeXFaKUwrcL3Cx65c20bTRW+vOb6k8AnaP+EgjDno= github.com/bwmarrin/discordgo v0.29.0/go.mod h1:NJZpH+1AfhIcyQsPeuBKsUtYrRnjkyu0kIVMCHkZtRY= github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= @@ -53,6 +52,8 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/emersion/go-autostart v0.0.0-20250403115856-34830d6457d2 h1:CgF8+TNFvlnxEbplSgS70ZI4IUFEzVkY+ICNqTVE/AM= github.com/emersion/go-autostart v0.0.0-20250403115856-34830d6457d2/go.mod h1:buzQsO8HHkZX2Q45fdfGH1xejPjuDQaXH8btcYMFzPM= +github.com/energye/systray v1.0.2 h1:63R4prQkANtpM2CIA4UrDCuwZFt+FiygG77JYCsNmXc= +github.com/energye/systray v1.0.2/go.mod h1:sp7Q/q/I4/w5ebvpSuJVep71s9Bg7L9ZVp69gBASehM= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -65,28 +66,6 @@ github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/gabriel-vasile/mimetype v1.4.11 h1:AQvxbp830wPhHTqc1u7nzoLT+ZFxGY7emj5DR5DYFik= github.com/gabriel-vasile/mimetype v1.4.11/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= -github.com/getlantern/context v0.0.0-20190109183933-c447772a6520/go.mod h1:L+mq6/vvYHKjCX2oez0CgEAJmbq1fbb/oNJIWQkBybY= -github.com/getlantern/context v0.0.0-20220418194847-3d5e7a086201 h1:oEZYEpZo28Wdx+5FZo4aU7JFXu0WG/4wJWese5reQSA= -github.com/getlantern/context v0.0.0-20220418194847-3d5e7a086201/go.mod h1:Y9WZUHEb+mpra02CbQ/QczLUe6f0Dezxaw5DCJlJQGo= -github.com/getlantern/errors v0.0.0-20190325191628-abdb3e3e36f7/go.mod h1:l+xpFBrCtDLpK9qNjxs+cHU6+BAdlBaxHqikB6Lku3A= -github.com/getlantern/errors v1.0.1/go.mod h1:l+xpFBrCtDLpK9qNjxs+cHU6+BAdlBaxHqikB6Lku3A= -github.com/getlantern/errors v1.0.4 h1:i2iR1M9GKj4WuingpNqJ+XQEw6i6dnAgKAmLj6ZB3X0= -github.com/getlantern/errors v1.0.4/go.mod h1:/Foq8jtSDGP8GOXzAjeslsC4Ar/3kB+UiQH+WyV4pzY= -github.com/getlantern/golog v0.0.0-20190830074920-4ef2e798c2d7/go.mod h1:zx/1xUUeYPy3Pcmet8OSXLbF47l+3y6hIPpyLWoR9oc= -github.com/getlantern/golog v0.0.0-20230503153817-8e72de7e0a65 h1:NlQedYmPI3pRAXJb+hLVVDGqfvvXGRPV8vp7XOjKAZ0= -github.com/getlantern/golog v0.0.0-20230503153817-8e72de7e0a65/go.mod h1:+ZU1h+iOVqWReBpky6d5Y2WL0sF2Llxu+QcxJFs2+OU= -github.com/getlantern/hex v0.0.0-20190417191902-c6586a6fe0b7/go.mod h1:dD3CgOrwlzca8ed61CsZouQS5h5jIzkK9ZWrTcf0s+o= -github.com/getlantern/hex v0.0.0-20220104173244-ad7e4b9194dc h1:sue+aeVx7JF5v36H1HfvcGFImLpSD5goj8d+MitovDU= -github.com/getlantern/hex v0.0.0-20220104173244-ad7e4b9194dc/go.mod h1:D9RWpXy/EFPYxiKUURo2TB8UBosbqkiLhttRrZYtvqM= -github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55/go.mod h1:6mmzY2kW1TOOrVy+r41Za2MxXM+hhqTtY3oBKd2AgFA= -github.com/getlantern/hidden v0.0.0-20220104173330-f221c5a24770 h1:cSrD9ryDfTV2yaur9Qk3rHYD414j3Q1rl7+L0AylxrE= -github.com/getlantern/hidden v0.0.0-20220104173330-f221c5a24770/go.mod h1:GOQsoDnEHl6ZmNIL+5uVo+JWRFWozMEp18Izcb++H+A= -github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f/go.mod h1:D5ao98qkA6pxftxoqzibIBBrLSUli+kYnJqrgBf9cIA= -github.com/getlantern/ops v0.0.0-20220713155959-1315d978fff7/go.mod h1:D5ao98qkA6pxftxoqzibIBBrLSUli+kYnJqrgBf9cIA= -github.com/getlantern/ops v0.0.0-20231025133620-f368ab734534 h1:3BwvWj0JZzFEvNNiMhCu4bf60nqcIuQpTYb00Ezm1ag= -github.com/getlantern/ops v0.0.0-20231025133620-f368ab734534/go.mod h1:ZsLfOY6gKQOTyEcPYNA9ws5/XHZQFroxqCOhHjGcs9Y= -github.com/getlantern/systray v1.2.2 h1:dCEHtfmvkJG7HZ8lS/sLklTH4RKUcIsKrAD9sThoEBE= -github.com/getlantern/systray v1.2.2/go.mod h1:pXFOI1wwqwYXEhLPm9ZGjS2u/vVELeIgNMY5HvhHhcE= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/gzip v0.0.1/go.mod h1:fGBJBCdt6qCZuCAOwWuFhBB4OOq9EFqlo5dEaFhhu5w= github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= @@ -105,7 +84,6 @@ github.com/gin-gonic/gin v1.11.0/go.mod h1:+iq/FyxlGzII0KHiBGjuNn4UNENUlKbGlNmc+ github.com/go-chi/chi/v5 v5.2.3 h1:WQIt9uxdsAbgIYgid+BpYc+liqQZGMHRaUwp0JUcvdE= github.com/go-chi/chi/v5 v5.2.3/go.mod h1:L2yAIGWB3H+phAw1NxKwWM+7eUH/lU8pOMm5hHcoops= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= @@ -157,9 +135,6 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.28.0 h1:Q7ibns33JjyW48gHkuFT91qX48KG0ktULL6FgHdG688= github.com/go-playground/validator/v10 v10.28.0/go.mod h1:GoI6I1SjPBh9p7ykNE/yj3fFYbyDOpwMn5KXd+m2hUU= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= -github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible h1:2cauKuaELYAEARXRkq2LrJ0yDDv1rW7+wrTEdVL3uaU= github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf9acutJ8cwBUhm1bqgz6Bei9/C/c93FPDljKWwsOgM= github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= @@ -168,7 +143,10 @@ github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.2.0 h1:3WexO+U+yg9T70v9FdHr9kCxYlazaAXUhx2VMkbfax8= +github.com/godbus/dbus/v5 v5.2.0/go.mod h1:3AAv2+hPq5rdnr5txxxRwiGjPXamgoIHgz9FPBfOp3c= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= @@ -208,7 +186,6 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -249,8 +226,10 @@ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lithammer/shortuuid/v3 v3.0.7 h1:trX0KTHy4Pbwo/6ia8fscyHoGA+mf1jWbPJVuvyJQQ8= github.com/lithammer/shortuuid/v3 v3.0.7/go.mod h1:vMk8ke37EmiewwolSO1NLW8vP4ZaKlRuDIi8tWWmAts= -github.com/lxn/walk v0.0.0-20210112085537-c389da54e794/go.mod h1:E23UucZGqpuUANJooIbHWCufXvOcT6E7Stq81gU+CSQ= -github.com/lxn/win v0.0.0-20210218163916-a377121e959e/go.mod h1:KxxjdtRkfNoYDCUP5ryK7XJJNTnpC8atvtmTheChOtk= +github.com/lutischan-ferenc/systray v1.2.1 h1:gPNrEpmg4hMwXyKNSlrkuuXqvxgqCYPjF5H/pG9I1+c= +github.com/lutischan-ferenc/systray v1.2.1/go.mod h1:YYaJ28AVuhMrlI5JfqrMsYMIl3Aa4Q02bpXXCl9caqo= +github.com/lutischan-ferenc/systray v1.3.0 h1:O1jZ/nAXpUbGg0+vO1xKvGP6FE26f5Xh6PYrN/cLqbs= +github.com/lutischan-ferenc/systray v1.3.0/go.mod h1:YYaJ28AVuhMrlI5JfqrMsYMIl3Aa4Q02bpXXCl9caqo= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magisterquis/connectproxy v0.0.0-20200725203833-3582e84f0c9b h1:xZ59n7Frzh8CwyfAapUZLSg+gXH5m63YEaFCMpDHhpI= github.com/magisterquis/connectproxy v0.0.0-20200725203833-3582e84f0c9b/go.mod h1:uDd4sYVYsqcxAB8j+Q7uhL6IJCs/r1kxib1HV4bgOMg= @@ -283,8 +262,6 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= -github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= @@ -312,7 +289,6 @@ github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdh github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= @@ -350,6 +326,8 @@ github.com/swaggo/swag v1.16.6 h1:qBNcx53ZaX+M5dxVyTrgQ0PJ/ACK+NzhwcbieTt+9yI= github.com/swaggo/swag v1.16.6/go.mod h1:ngP2etMK5a0P3QBizic5MEwpRmluJZPHjXcMoj4Xesg= github.com/technoweenie/multipartstreamer v1.0.1 h1:XRztA5MXiR1TIRHxH2uNxXxaIkKQDeX7m2XsSOlQEnM= github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog= +github.com/tevino/abool v0.0.0-20220530134649-2bfc934cb23c h1:coVla7zpsycc+kA9NXpcvv2E4I7+ii6L5hZO2S6C3kw= +github.com/tevino/abool v0.0.0-20220530134649-2bfc934cb23c/go.mod h1:qc66Pna1RiIsPa7O4Egxxs9OqkuxDX55zznh9K07Tzg= github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= @@ -384,7 +362,6 @@ github.com/xhit/go-simple-mail/v2 v2.16.0/go.mod h1:b7P5ygho6SYE+VIqpxA6QkYfv4te github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.mau.fi/util v0.9.3 h1:aqNF8KDIN8bFpFbybSk+mEBil7IHeBwlujfyTnvP0uU= go.mau.fi/util v0.9.3/go.mod h1:krWWfBM1jWTb5f8NCa2TLqWMQuM81X7TGQjhMjBeXmQ= @@ -392,26 +369,14 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.9.0/go.mod h1:np4EoPGzoPs3O67xUVNoPPcmSvsfOxNlNA4F4AC+0Eo= go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA= go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= -go.opentelemetry.io/otel/trace v1.9.0/go.mod h1:2737Q0MuG8q1uILYm2YYVkAyLtOofiTNGg6VODnOiPo= go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= -go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= -go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= -go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= -go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/arch v0.23.0 h1:lKF64A2jF6Zd8L0knGltUnegD62JMFBiCPBmQpToHhg= @@ -434,10 +399,8 @@ golang.org/x/image v0.33.0/go.mod h1:DD3OsTYT9chzuzTQt+zMcOlBHgfoKQb1gry8p76Y1sc golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk= @@ -458,7 +421,6 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= @@ -473,7 +435,6 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= @@ -489,18 +450,15 @@ golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -533,7 +491,6 @@ golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= @@ -568,7 +525,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= -gopkg.in/Knetic/govaluate.v3 v3.0.0/go.mod h1:csKLBORsPbafmSCGTEh3U7Ozmsuq8ZSIlKk1bcqph0E= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -580,9 +536,7 @@ gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/static/favicon-256x256.png b/static/favicon-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..5682fb590a67273bb6cadcd14c38962e0c82cfd5 GIT binary patch literal 25287 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