From 04083a5ec4b20ae002090370f2c993585f4697f9 Mon Sep 17 00:00:00 2001 From: sunglocto Date: Mon, 5 Jan 2026 06:47:23 +0000 Subject: [PATCH] attempt to fix presence --- go.mod | 2 +- go.sum | 14 ++++++++++++++ main.go | 12 +++++++++++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 9686ec2..a8f82a9 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/makeworld-the-better-one/go-isemoji v1.3.0 github.com/rrivera/identicon v0.0.0-20240116195454-d5ba35832c0d github.com/shreve/musicwand v0.0.1 - github.com/sunglocto/oasis-sdk v0.0.0-20251128101950-083ea4658d9c + github.com/sunglocto/oasis-sdk v0.0.0-20260103142308-7f1848e2aac0 mellium.im/xmpp v0.22.0 ) diff --git a/go.sum b/go.sum index 0baa996..e3dde10 100644 --- a/go.sum +++ b/go.sum @@ -80,6 +80,20 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/sunglocto/oasis-sdk v0.0.0-20251128101950-083ea4658d9c h1:peWSGIl0xBvx3sJR3+kHV1xOe1X8dbQ9xtvEXyXogCo= github.com/sunglocto/oasis-sdk v0.0.0-20251128101950-083ea4658d9c/go.mod h1:Y5iPruMLvqNwGVqB+n/+wylQjCTPKQx37I/PyLWhuzk= +github.com/sunglocto/oasis-sdk v0.0.0-20260103140045-0405de0dd080 h1:29bQpS8K/agBsO2fkXXyId3aDBweVIA+USUNmQpwdac= +github.com/sunglocto/oasis-sdk v0.0.0-20260103140045-0405de0dd080/go.mod h1:Y5iPruMLvqNwGVqB+n/+wylQjCTPKQx37I/PyLWhuzk= +github.com/sunglocto/oasis-sdk v0.0.0-20260103140638-616fcb543bcf h1:yC8TNIiaJtxzP2hIABRe7EdhcSAODUVkjzsici5Fohw= +github.com/sunglocto/oasis-sdk v0.0.0-20260103140638-616fcb543bcf/go.mod h1:Y5iPruMLvqNwGVqB+n/+wylQjCTPKQx37I/PyLWhuzk= +github.com/sunglocto/oasis-sdk v0.0.0-20260103140748-3a5af37a9707 h1:r7CKzHIBlp2Cq28WrCe2VaKdZCD4dCd1BmxXLno7Mcg= +github.com/sunglocto/oasis-sdk v0.0.0-20260103140748-3a5af37a9707/go.mod h1:Y5iPruMLvqNwGVqB+n/+wylQjCTPKQx37I/PyLWhuzk= +github.com/sunglocto/oasis-sdk v0.0.0-20260103140915-72af6e4c3604 h1:yD8c7E3FECQ45Amrn4FnxBw30XbBgfQ+exgbA5IisEU= +github.com/sunglocto/oasis-sdk v0.0.0-20260103140915-72af6e4c3604/go.mod h1:Y5iPruMLvqNwGVqB+n/+wylQjCTPKQx37I/PyLWhuzk= +github.com/sunglocto/oasis-sdk v0.0.0-20260103142016-f599b73f44e3 h1:S1miV9gK4GKqr+RdmqW71JnpYhoFZehe9NkABbM2XW4= +github.com/sunglocto/oasis-sdk v0.0.0-20260103142016-f599b73f44e3/go.mod h1:Y5iPruMLvqNwGVqB+n/+wylQjCTPKQx37I/PyLWhuzk= +github.com/sunglocto/oasis-sdk v0.0.0-20260103142127-cc8ce586b6dc h1:7KKRazjvG5I1l+hyvTvM8XLIWewGQ2PAaKr4sN1Oi7E= +github.com/sunglocto/oasis-sdk v0.0.0-20260103142127-cc8ce586b6dc/go.mod h1:Y5iPruMLvqNwGVqB+n/+wylQjCTPKQx37I/PyLWhuzk= +github.com/sunglocto/oasis-sdk v0.0.0-20260103142308-7f1848e2aac0 h1:7zNLaQVg8jYYrNZ6KqBv23k/RYu58p3wL9YS72B+eNM= +github.com/sunglocto/oasis-sdk v0.0.0-20260103142308-7f1848e2aac0/go.mod h1:Y5iPruMLvqNwGVqB+n/+wylQjCTPKQx37I/PyLWhuzk= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/yuin/goldmark v1.7.8 h1:iERMLn0/QJeHFhxSt3p6PeN9mGnvIKSpG9YYorDMnic= github.com/yuin/goldmark v1.7.8/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E= diff --git a/main.go b/main.go index 71cfd36..b744e23 100644 --- a/main.go +++ b/main.go @@ -13,6 +13,9 @@ import ( "os" "strings" "time" + _ "embed" + _ "image/png" + _ "image/jpeg" // gui - required "fyne.io/fyne/v2" @@ -33,11 +36,15 @@ import ( "mellium.im/xmpp/bookmarks" "mellium.im/xmpp/jid" "mellium.im/xmpp/muc" + "mellium.im/xmpp/stanza" "mellium.im/xmpp/pubsub" oasisSdk "github.com/sunglocto/oasis-sdk" // TODO: integrated theme switcher ) +//go:embed pi.png +var iconBytes []byte + var version string = "3.1i" var statBar widget.Label var chatInfo fyne.Container @@ -444,7 +451,9 @@ func dropToSignInPage(reason string) { func main() { muc.Since(time.Now()) config = piConfig{} + res := fyne.NewStaticResource("image", iconBytes) a = app.NewWithID("pi-im") + a.SetIcon(res) reader, err := a.Storage().Open("pi.xml") if err != nil { dropToSignInPage(err.Error()) @@ -693,7 +702,7 @@ func main() { }) client.SetPresenceHandler(func(client *oasisSdk.XmppClient, from jid.JID, p oasisSdk.UserPresence) { - log.Println(p.Type) + fmt.Println(p.Header.Type == stanza.UnavailablePresence) bareAcc := from.Bare() tab, ok := chatTabs[bareAcc.String()] if !ok { @@ -703,6 +712,7 @@ func main() { } if tab.isMuc { + fmt.Println(p.Type) tab.Members[from.String()] = p } })