From 5ffb20b85b9441d2ccc5e0cd11a112c0d1c71d9f Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sun, 12 Nov 2023 16:16:48 +0200 Subject: [PATCH 1/7] Update gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 69edebe..4f2b27b 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ *.log /mautrix-whatsapp +/start From 2767819ae0a3fbfef6c3ddca58f95f9f1b68240d Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sun, 12 Nov 2023 16:17:13 +0200 Subject: [PATCH 2/7] Check that relaybot is logged in before relaying messages --- messagetracking.go | 4 +++- portal.go | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/messagetracking.go b/messagetracking.go index 57cb4f8..9e79f66 100644 --- a/messagetracking.go +++ b/messagetracking.go @@ -37,6 +37,7 @@ var ( errUserNotConnected = errors.New("you are not connected to WhatsApp") errDifferentUser = errors.New("user is not the recipient of this private chat portal") errUserNotLoggedIn = errors.New("user is not logged in and chat has no relay bot") + errRelaybotNotLoggedIn = errors.New("neither user nor relay bot of chat are logged in") errMNoticeDisabled = errors.New("bridging m.notice messages is disabled") errUnexpectedParsedContentType = errors.New("unexpected parsed content type") errInvalidGeoURI = errors.New("invalid `geo:` URI in message") @@ -111,7 +112,8 @@ func errorToStatusReason(err error) (reason event.MessageStatusReason, status ev errors.Is(err, errUserNotConnected): return event.MessageStatusGenericError, event.MessageStatusRetriable, true, true, "" case errors.Is(err, errUserNotLoggedIn), - errors.Is(err, errDifferentUser): + errors.Is(err, errDifferentUser), + errors.Is(err, errRelaybotNotLoggedIn): return event.MessageStatusGenericError, event.MessageStatusRetriable, true, false, "" case errors.Is(err, errMessageDisconnected), errors.Is(err, errMessageRetryDisconnected): diff --git a/portal.go b/portal.go index c23a3af..1165696 100644 --- a/portal.go +++ b/portal.go @@ -4237,6 +4237,9 @@ func (portal *Portal) convertMatrixMessage(ctx context.Context, sender *User, ev return nil, sender, extraMeta, errUserNotLoggedIn } sender = portal.GetRelayUser() + if !sender.IsLoggedIn() { + return nil, sender, extraMeta, errRelaybotNotLoggedIn + } isRelay = true } var editRootMsg *database.Message From f1a38dddf325b1a0e906c77515aa6ef7692145f2 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sun, 12 Nov 2023 16:20:54 +0200 Subject: [PATCH 3/7] Update dependencies --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ portal.go | 4 ++-- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/go.mod b/go.mod index c026864..322f59f 100644 --- a/go.mod +++ b/go.mod @@ -3,23 +3,23 @@ module maunium.net/go/mautrix-whatsapp go 1.20 require ( - github.com/gorilla/mux v1.8.0 - github.com/gorilla/websocket v1.5.0 + github.com/gorilla/mux v1.8.1 + github.com/gorilla/websocket v1.5.1 github.com/lib/pq v1.10.9 - github.com/mattn/go-sqlite3 v1.14.17 + github.com/mattn/go-sqlite3 v1.14.18 github.com/prometheus/client_golang v1.17.0 github.com/rs/zerolog v1.31.0 github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e github.com/tidwall/gjson v1.17.0 go.mau.fi/util v0.2.0 go.mau.fi/webp v0.1.0 - go.mau.fi/whatsmeow v0.0.0-20231018112044-306bf6fef4d2 - golang.org/x/exp v0.0.0-20231006140011-7918f672742d - golang.org/x/image v0.13.0 - golang.org/x/net v0.17.0 + go.mau.fi/whatsmeow v0.0.0-20231112141858-68b25b3f6fe9 + golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa + golang.org/x/image v0.14.0 + golang.org/x/net v0.18.0 google.golang.org/protobuf v1.31.0 maunium.net/go/maulogger/v2 v2.4.1 - maunium.net/go/mautrix v0.16.1 + maunium.net/go/mautrix v0.16.2-0.20231112104921-da5a51a279a7 ) require ( @@ -38,12 +38,12 @@ require ( github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/tidwall/sjson v1.2.5 // indirect - github.com/yuin/goldmark v1.5.6 // indirect + github.com/yuin/goldmark v1.6.0 // indirect go.mau.fi/libsignal v0.1.0 // indirect go.mau.fi/zeroconfig v0.1.2 // indirect - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect + golang.org/x/crypto v0.15.0 // indirect + golang.org/x/sys v0.14.0 // indirect + golang.org/x/text v0.14.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect maunium.net/go/mauflag v1.0.0 // indirect diff --git a/go.sum b/go.sum index 7475bc4..1c6fddb 100644 --- a/go.sum +++ b/go.sum @@ -16,10 +16,10 @@ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= @@ -30,8 +30,8 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM= -github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= +github.com/mattn/go-sqlite3 v1.14.18 h1:JL0eqdCOq6DJVNPSvArO/bIV9/P7fbGrV00LZHc+5aI= +github.com/mattn/go-sqlite3 v1.14.18/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -60,34 +60,34 @@ github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= -github.com/yuin/goldmark v1.5.6 h1:COmQAWTCcGetChm3Ig7G/t8AFAN00t+o8Mt4cf7JpwA= -github.com/yuin/goldmark v1.5.6/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yuin/goldmark v1.6.0 h1:boZcn2GTjpsynOsC0iJHnBWa4Bi0qzfJjthwauItG68= +github.com/yuin/goldmark v1.6.0/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.mau.fi/libsignal v0.1.0 h1:vAKI/nJ5tMhdzke4cTK1fb0idJzz1JuEIpmjprueC+c= go.mau.fi/libsignal v0.1.0/go.mod h1:R8ovrTezxtUNzCQE5PH30StOQWWeBskBsWE55vMfY9I= go.mau.fi/util v0.2.0 h1:AMGBEdg9Ya/smb/09dljo9wBwKr432EpfjDWF7aFQg0= go.mau.fi/util v0.2.0/go.mod h1:AxuJUMCxpzgJ5eV9JbPWKRH8aAJJidxetNdUj7qcb84= go.mau.fi/webp v0.1.0 h1:BHObH/DcFntT9KYun5pDr0Ot4eUZO8k2C7eP7vF4ueA= go.mau.fi/webp v0.1.0/go.mod h1:e42Z+VMFrUMS9cpEwGRIor+lQWO8oUAyPyMtcL+NMt8= -go.mau.fi/whatsmeow v0.0.0-20231018112044-306bf6fef4d2 h1:27IohJQeoxrcJE44yEE2B2fOsiakqBeQpJDRHF483oM= -go.mau.fi/whatsmeow v0.0.0-20231018112044-306bf6fef4d2/go.mod h1:u557d2vph8xcLrk3CKTBknUHoB6icUpqazA4w+binRU= +go.mau.fi/whatsmeow v0.0.0-20231112141858-68b25b3f6fe9 h1:KKiSWzaGPCaf9L0cmpuAkJB2ELccBVol2yHzSW5JE6I= +go.mau.fi/whatsmeow v0.0.0-20231112141858-68b25b3f6fe9/go.mod h1:u557d2vph8xcLrk3CKTBknUHoB6icUpqazA4w+binRU= go.mau.fi/zeroconfig v0.1.2 h1:DKOydWnhPMn65GbXZOafgkPm11BvFashZWLct0dGFto= go.mau.fi/zeroconfig v0.1.2/go.mod h1:NcSJkf180JT+1IId76PcMuLTNa1CzsFFZ0nBygIQM70= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= -golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= -golang.org/x/image v0.13.0 h1:3cge/F/QTkNLauhf2QoE9zp+7sr+ZcL4HnoZmdwg9sg= -golang.org/x/image v0.13.0/go.mod h1:6mmbMOeV28HuMTgA6OSRkdXKYw/t5W9Uwn2Yv1r3Yxk= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= +golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= +golang.org/x/image v0.14.0 h1:tNgSxAFe3jC4uYqvZdTr84SZoM1KfwdC9SKIFrLjFn4= +golang.org/x/image v0.14.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE= +golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= @@ -103,5 +103,5 @@ maunium.net/go/mauflag v1.0.0 h1:YiaRc0tEI3toYtJMRIfjP+jklH45uDHtT80nUamyD4M= maunium.net/go/mauflag v1.0.0/go.mod h1:nLivPOpTpHnpzEh8jEdSL9UqO9+/KBJFmNRlwKfkPeA= maunium.net/go/maulogger/v2 v2.4.1 h1:N7zSdd0mZkB2m2JtFUsiGTQQAdP0YeFWT7YMc80yAL8= maunium.net/go/maulogger/v2 v2.4.1/go.mod h1:omPuYwYBILeVQobz8uO3XC8DIRuEb5rXYlQSuqrbCho= -maunium.net/go/mautrix v0.16.1 h1:Wb3CvOCe8A/NLsFeZYxKrgXKiqeZUQEBD1zqm7n/kWk= -maunium.net/go/mautrix v0.16.1/go.mod h1:2Jf15tulVtr6LxoiRL4smRXwpkGWUNfBFhwh/aXDBuk= +maunium.net/go/mautrix v0.16.2-0.20231112104921-da5a51a279a7 h1:et04LrG55EM3vZucOJPu/VzO9b03sKHbTZyHEHThA6A= +maunium.net/go/mautrix v0.16.2-0.20231112104921-da5a51a279a7/go.mod h1:fqEsPvpfZqvLvmwaZFm/6W8fD5SLzrMwZbTga+dVP/g= diff --git a/portal.go b/portal.go index 1165696..8bff916 100644 --- a/portal.go +++ b/portal.go @@ -1567,7 +1567,7 @@ func (portal *Portal) UpdateMetadata(user *User, groupInfo *types.GroupInfo, new portal.RestrictMessageSending(groupInfo.IsAnnounce) portal.RestrictMetadataChanges(groupInfo.IsLocked) - if newsletterMetadata != nil { + if newsletterMetadata != nil && newsletterMetadata.ViewerMeta != nil { portal.PromoteNewsletterUser(user, newsletterMetadata.ViewerMeta.Role) } @@ -1936,7 +1936,7 @@ func (portal *Portal) CreateMatrixRoom(user *User, groupInfo *types.GroupInfo, n powerLevels.EnsureEventLevel(event.StateTopic, 50) } } - if newsletterMetadata != nil { + if newsletterMetadata != nil && newsletterMetadata.ViewerMeta != nil { switch newsletterMetadata.ViewerMeta.Role { case types.NewsletterRoleAdmin: powerLevels.EnsureUserLevel(user.MXID, 50) From 0c18f065aaaac0b13214488f524a915e631b6e1c Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sun, 12 Nov 2023 16:26:12 +0200 Subject: [PATCH 4/7] Update changelog [skip cd] --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aad33c8..8d5f6f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# v0.10.4 (unreleased) + +* Added support for channels in `join` and `open` commands. +* Added initial bridging of channel admin to room admin status. +* Fixed panic when trying to send message in a portal which has a relaybot set + if the relaybot user gets logged out of WhatsApp. + # v0.10.3 (2023-10-16) * Added basic support for channels. From 71ab396c7afb0ce1c118c9403a1a35d1e464ab25 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Tue, 14 Nov 2023 16:27:55 +0200 Subject: [PATCH 5/7] Add timeout for sending reactions and redactions --- go.mod | 6 +++--- go.sum | 12 ++++++------ portal.go | 8 ++++++-- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index 322f59f..391d27f 100644 --- a/go.mod +++ b/go.mod @@ -11,15 +11,15 @@ require ( github.com/rs/zerolog v1.31.0 github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e github.com/tidwall/gjson v1.17.0 - go.mau.fi/util v0.2.0 + go.mau.fi/util v0.2.1-0.20231114144345-a692409c548f go.mau.fi/webp v0.1.0 - go.mau.fi/whatsmeow v0.0.0-20231112141858-68b25b3f6fe9 + go.mau.fi/whatsmeow v0.0.0-20231114143452-e8fa5b64d278 golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa golang.org/x/image v0.14.0 golang.org/x/net v0.18.0 google.golang.org/protobuf v1.31.0 maunium.net/go/maulogger/v2 v2.4.1 - maunium.net/go/mautrix v0.16.2-0.20231112104921-da5a51a279a7 + maunium.net/go/mautrix v0.16.2-0.20231114144505-09daa655758e ) require ( diff --git a/go.sum b/go.sum index 1c6fddb..299034a 100644 --- a/go.sum +++ b/go.sum @@ -64,12 +64,12 @@ github.com/yuin/goldmark v1.6.0 h1:boZcn2GTjpsynOsC0iJHnBWa4Bi0qzfJjthwauItG68= github.com/yuin/goldmark v1.6.0/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.mau.fi/libsignal v0.1.0 h1:vAKI/nJ5tMhdzke4cTK1fb0idJzz1JuEIpmjprueC+c= go.mau.fi/libsignal v0.1.0/go.mod h1:R8ovrTezxtUNzCQE5PH30StOQWWeBskBsWE55vMfY9I= -go.mau.fi/util v0.2.0 h1:AMGBEdg9Ya/smb/09dljo9wBwKr432EpfjDWF7aFQg0= -go.mau.fi/util v0.2.0/go.mod h1:AxuJUMCxpzgJ5eV9JbPWKRH8aAJJidxetNdUj7qcb84= +go.mau.fi/util v0.2.1-0.20231114144345-a692409c548f h1:mJhRlbk3AStG2XfKe1MuO2rmikjUPLcO0pglA+GlWuA= +go.mau.fi/util v0.2.1-0.20231114144345-a692409c548f/go.mod h1:MjlzCQEMzJ+G8RsPawHzpLB8rwTo3aPIjG5FzBvQT/c= go.mau.fi/webp v0.1.0 h1:BHObH/DcFntT9KYun5pDr0Ot4eUZO8k2C7eP7vF4ueA= go.mau.fi/webp v0.1.0/go.mod h1:e42Z+VMFrUMS9cpEwGRIor+lQWO8oUAyPyMtcL+NMt8= -go.mau.fi/whatsmeow v0.0.0-20231112141858-68b25b3f6fe9 h1:KKiSWzaGPCaf9L0cmpuAkJB2ELccBVol2yHzSW5JE6I= -go.mau.fi/whatsmeow v0.0.0-20231112141858-68b25b3f6fe9/go.mod h1:u557d2vph8xcLrk3CKTBknUHoB6icUpqazA4w+binRU= +go.mau.fi/whatsmeow v0.0.0-20231114143452-e8fa5b64d278 h1:oauy+pDJoTbrzwk00+xqb01FUJ2etQGweIoiAvQK1JU= +go.mau.fi/whatsmeow v0.0.0-20231114143452-e8fa5b64d278/go.mod h1:u557d2vph8xcLrk3CKTBknUHoB6icUpqazA4w+binRU= go.mau.fi/zeroconfig v0.1.2 h1:DKOydWnhPMn65GbXZOafgkPm11BvFashZWLct0dGFto= go.mau.fi/zeroconfig v0.1.2/go.mod h1:NcSJkf180JT+1IId76PcMuLTNa1CzsFFZ0nBygIQM70= golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= @@ -103,5 +103,5 @@ maunium.net/go/mauflag v1.0.0 h1:YiaRc0tEI3toYtJMRIfjP+jklH45uDHtT80nUamyD4M= maunium.net/go/mauflag v1.0.0/go.mod h1:nLivPOpTpHnpzEh8jEdSL9UqO9+/KBJFmNRlwKfkPeA= maunium.net/go/maulogger/v2 v2.4.1 h1:N7zSdd0mZkB2m2JtFUsiGTQQAdP0YeFWT7YMc80yAL8= maunium.net/go/maulogger/v2 v2.4.1/go.mod h1:omPuYwYBILeVQobz8uO3XC8DIRuEb5rXYlQSuqrbCho= -maunium.net/go/mautrix v0.16.2-0.20231112104921-da5a51a279a7 h1:et04LrG55EM3vZucOJPu/VzO9b03sKHbTZyHEHThA6A= -maunium.net/go/mautrix v0.16.2-0.20231112104921-da5a51a279a7/go.mod h1:fqEsPvpfZqvLvmwaZFm/6W8fD5SLzrMwZbTga+dVP/g= +maunium.net/go/mautrix v0.16.2-0.20231114144505-09daa655758e h1:qoKoP99Aa+FvzZecO3R5efV87b7HmMsr1QPsw7lEIpw= +maunium.net/go/mautrix v0.16.2-0.20231114144505-09daa655758e/go.mod h1:Q7tbypaya4C9JVIjPXhEgeU8puotXRrX4hJvTLGNlLQ= diff --git a/portal.go b/portal.go index 8bff916..778f4ce 100644 --- a/portal.go +++ b/portal.go @@ -4659,7 +4659,9 @@ func (portal *Portal) sendReactionToWhatsApp(sender *User, id types.MessageID, t messageKeyParticipant = proto.String(target.Sender.ToNonAD().String()) } key = variationselector.Remove(key) - return sender.Client.SendMessage(context.TODO(), portal.Key.JID, &waProto.Message{ + ctx, cancel := context.WithTimeout(context.TODO(), 60*time.Second) + defer cancel() + return sender.Client.SendMessage(ctx, portal.Key.JID, &waProto.Message{ ReactionMessage: &waProto.ReactionMessage{ Key: &waProto.MessageKey{ RemoteJid: proto.String(portal.Key.JID.String()), @@ -4745,7 +4747,9 @@ func (portal *Portal) HandleMatrixRedaction(sender *User, evt *event.Event) { key.Participant = proto.String(msg.Sender.ToNonAD().String()) } portal.log.Debugfln("Sending redaction %s of %s/%s to WhatsApp", evt.ID, msg.MXID, msg.JID) - _, err := sender.Client.SendMessage(context.TODO(), portal.Key.JID, &waProto.Message{ + ctx, cancel := context.WithTimeout(context.TODO(), 60*time.Second) + defer cancel() + _, err := sender.Client.SendMessage(ctx, portal.Key.JID, &waProto.Message{ ProtocolMessage: &waProto.ProtocolMessage{ Type: waProto.ProtocolMessage_REVOKE.Enum(), Key: key, From 178010a7651ace024f27e9e8950f9d4dffba2e21 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 16 Nov 2023 23:33:52 +0200 Subject: [PATCH 6/7] Update dependencies --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 391d27f..40eebf7 100644 --- a/go.mod +++ b/go.mod @@ -3,23 +3,23 @@ module maunium.net/go/mautrix-whatsapp go 1.20 require ( - github.com/gorilla/mux v1.8.1 - github.com/gorilla/websocket v1.5.1 + github.com/gorilla/mux v1.8.0 + github.com/gorilla/websocket v1.5.0 github.com/lib/pq v1.10.9 github.com/mattn/go-sqlite3 v1.14.18 github.com/prometheus/client_golang v1.17.0 github.com/rs/zerolog v1.31.0 github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e github.com/tidwall/gjson v1.17.0 - go.mau.fi/util v0.2.1-0.20231114144345-a692409c548f + go.mau.fi/util v0.2.1 go.mau.fi/webp v0.1.0 - go.mau.fi/whatsmeow v0.0.0-20231114143452-e8fa5b64d278 + go.mau.fi/whatsmeow v0.0.0-20231116213319-217e0c985fd6 golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa golang.org/x/image v0.14.0 golang.org/x/net v0.18.0 google.golang.org/protobuf v1.31.0 maunium.net/go/maulogger/v2 v2.4.1 - maunium.net/go/mautrix v0.16.2-0.20231114144505-09daa655758e + maunium.net/go/mautrix v0.16.2 ) require ( diff --git a/go.sum b/go.sum index 299034a..0852109 100644 --- a/go.sum +++ b/go.sum @@ -16,10 +16,10 @@ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= -github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= -github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= -github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= @@ -64,12 +64,12 @@ github.com/yuin/goldmark v1.6.0 h1:boZcn2GTjpsynOsC0iJHnBWa4Bi0qzfJjthwauItG68= github.com/yuin/goldmark v1.6.0/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.mau.fi/libsignal v0.1.0 h1:vAKI/nJ5tMhdzke4cTK1fb0idJzz1JuEIpmjprueC+c= go.mau.fi/libsignal v0.1.0/go.mod h1:R8ovrTezxtUNzCQE5PH30StOQWWeBskBsWE55vMfY9I= -go.mau.fi/util v0.2.1-0.20231114144345-a692409c548f h1:mJhRlbk3AStG2XfKe1MuO2rmikjUPLcO0pglA+GlWuA= -go.mau.fi/util v0.2.1-0.20231114144345-a692409c548f/go.mod h1:MjlzCQEMzJ+G8RsPawHzpLB8rwTo3aPIjG5FzBvQT/c= +go.mau.fi/util v0.2.1 h1:eazulhFE/UmjOFtPrGg6zkF5YfAyiDzQb8ihLMbsPWw= +go.mau.fi/util v0.2.1/go.mod h1:MjlzCQEMzJ+G8RsPawHzpLB8rwTo3aPIjG5FzBvQT/c= go.mau.fi/webp v0.1.0 h1:BHObH/DcFntT9KYun5pDr0Ot4eUZO8k2C7eP7vF4ueA= go.mau.fi/webp v0.1.0/go.mod h1:e42Z+VMFrUMS9cpEwGRIor+lQWO8oUAyPyMtcL+NMt8= -go.mau.fi/whatsmeow v0.0.0-20231114143452-e8fa5b64d278 h1:oauy+pDJoTbrzwk00+xqb01FUJ2etQGweIoiAvQK1JU= -go.mau.fi/whatsmeow v0.0.0-20231114143452-e8fa5b64d278/go.mod h1:u557d2vph8xcLrk3CKTBknUHoB6icUpqazA4w+binRU= +go.mau.fi/whatsmeow v0.0.0-20231116213319-217e0c985fd6 h1:GLGU8Q7zoW0NjqZGXdPAjAwmJTSI09HIdhjL0DY21oc= +go.mau.fi/whatsmeow v0.0.0-20231116213319-217e0c985fd6/go.mod h1:5xTtHNaZpGni6z6aE1iEopjW7wNgsKcolZxZrOujK9M= go.mau.fi/zeroconfig v0.1.2 h1:DKOydWnhPMn65GbXZOafgkPm11BvFashZWLct0dGFto= go.mau.fi/zeroconfig v0.1.2/go.mod h1:NcSJkf180JT+1IId76PcMuLTNa1CzsFFZ0nBygIQM70= golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= @@ -103,5 +103,5 @@ maunium.net/go/mauflag v1.0.0 h1:YiaRc0tEI3toYtJMRIfjP+jklH45uDHtT80nUamyD4M= maunium.net/go/mauflag v1.0.0/go.mod h1:nLivPOpTpHnpzEh8jEdSL9UqO9+/KBJFmNRlwKfkPeA= maunium.net/go/maulogger/v2 v2.4.1 h1:N7zSdd0mZkB2m2JtFUsiGTQQAdP0YeFWT7YMc80yAL8= maunium.net/go/maulogger/v2 v2.4.1/go.mod h1:omPuYwYBILeVQobz8uO3XC8DIRuEb5rXYlQSuqrbCho= -maunium.net/go/mautrix v0.16.2-0.20231114144505-09daa655758e h1:qoKoP99Aa+FvzZecO3R5efV87b7HmMsr1QPsw7lEIpw= -maunium.net/go/mautrix v0.16.2-0.20231114144505-09daa655758e/go.mod h1:Q7tbypaya4C9JVIjPXhEgeU8puotXRrX4hJvTLGNlLQ= +maunium.net/go/mautrix v0.16.2 h1:a6GUJXNWsTEOO8VE4dROBfCIfPp50mqaqzv7KPzChvg= +maunium.net/go/mautrix v0.16.2/go.mod h1:YL4l4rZB46/vj/ifRMEjcibbvHjgxHftOF1SgmruLu4= From f6270d6bd28e67da029ccc455e9035c3080a89db Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 16 Nov 2023 23:34:04 +0200 Subject: [PATCH 7/7] Bump version to v0.10.4 --- CHANGELOG.md | 2 +- main.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d5f6f2..7ab52bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# v0.10.4 (unreleased) +# v0.10.4 (2023-11-16) * Added support for channels in `join` and `open` commands. * Added initial bridging of channel admin to room admin status. diff --git a/main.go b/main.go index a501919..281c9d3 100644 --- a/main.go +++ b/main.go @@ -268,7 +268,7 @@ func main() { Name: "mautrix-whatsapp", URL: "https://github.com/mautrix/whatsapp", Description: "A Matrix-WhatsApp puppeting bridge.", - Version: "0.10.3", + Version: "0.10.4", ProtocolName: "WhatsApp", BeeperServiceName: "whatsapp", BeeperNetworkName: "whatsapp",