updated to latest mautrix-go and mautrix-appservice-go (#145)
This commit is contained in:
parent
8dd5f6a0d1
commit
2d8bc96a09
@ -22,6 +22,7 @@ import (
|
|||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ import (
|
|||||||
|
|
||||||
"github.com/Rhymen/go-whatsapp"
|
"github.com/Rhymen/go-whatsapp"
|
||||||
"maunium.net/go/mautrix"
|
"maunium.net/go/mautrix"
|
||||||
"maunium.net/go/mautrix-appservice"
|
appservice "maunium.net/go/mautrix-appservice"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -117,7 +118,9 @@ func (puppet *Puppet) StartCustomMXID() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
urlPath := intent.BuildURL("account", "whoami")
|
urlPath := intent.BuildURL("account", "whoami")
|
||||||
var resp struct{ UserID string `json:"user_id"` }
|
var resp struct {
|
||||||
|
UserID string `json:"user_id"`
|
||||||
|
}
|
||||||
_, err = intent.MakeRequest("GET", urlPath, nil, &resp)
|
_, err = intent.MakeRequest("GET", urlPath, nil, &resp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
puppet.clearCustomMXID()
|
puppet.clearCustomMXID()
|
||||||
@ -155,6 +158,28 @@ func (puppet *Puppet) stopSyncing() {
|
|||||||
puppet.customIntent.StopSync()
|
puppet.customIntent.StopSync()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func parseEvent(roomID string, data json.RawMessage) *mautrix.Event {
|
||||||
|
event := &mautrix.Event{}
|
||||||
|
err := json.Unmarshal(data, event)
|
||||||
|
if err != nil {
|
||||||
|
// TODO add separate handler for these
|
||||||
|
_, _ = fmt.Fprintf(os.Stderr, "Failed to unmarshal event: %v\n%s\n", err, string(data))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return event
|
||||||
|
}
|
||||||
|
|
||||||
|
func parsePresenceEvent(data json.RawMessage) *mautrix.Event {
|
||||||
|
event := &mautrix.Event{}
|
||||||
|
err := json.Unmarshal(data, event)
|
||||||
|
if err != nil {
|
||||||
|
// TODO add separate handler for these
|
||||||
|
_, _ = fmt.Fprintf(os.Stderr, "Failed to unmarshal event: %v\n%s\n", err, string(data))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return event
|
||||||
|
}
|
||||||
|
|
||||||
func (puppet *Puppet) ProcessResponse(resp *mautrix.RespSync, since string) error {
|
func (puppet *Puppet) ProcessResponse(resp *mautrix.RespSync, since string) error {
|
||||||
if !puppet.customUser.IsConnected() {
|
if !puppet.customUser.IsConnected() {
|
||||||
puppet.log.Debugln("Skipping sync processing: custom user not connected to whatsapp")
|
puppet.log.Debugln("Skipping sync processing: custom user not connected to whatsapp")
|
||||||
@ -165,20 +190,26 @@ func (puppet *Puppet) ProcessResponse(resp *mautrix.RespSync, since string) erro
|
|||||||
if portal == nil {
|
if portal == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
for _, event := range events.Ephemeral.Events {
|
for _, data := range events.Ephemeral.Events {
|
||||||
switch event.Type {
|
event := parseEvent(roomID, data)
|
||||||
case mautrix.EphemeralEventReceipt:
|
if event != nil {
|
||||||
go puppet.handleReceiptEvent(portal, event)
|
switch event.Type {
|
||||||
case mautrix.EphemeralEventTyping:
|
case mautrix.EphemeralEventReceipt:
|
||||||
go puppet.handleTypingEvent(portal, event)
|
go puppet.handleReceiptEvent(portal, event)
|
||||||
|
case mautrix.EphemeralEventTyping:
|
||||||
|
go puppet.handleTypingEvent(portal, event)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, event := range resp.Presence.Events {
|
for _, data := range resp.Presence.Events {
|
||||||
if event.Sender != puppet.CustomMXID {
|
event := parsePresenceEvent(data)
|
||||||
continue
|
if event != nil {
|
||||||
|
if event.Sender != puppet.CustomMXID {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
go puppet.handlePresenceEvent(event)
|
||||||
}
|
}
|
||||||
go puppet.handlePresenceEvent(event)
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
3
go.mod
3
go.mod
@ -10,11 +10,12 @@ require (
|
|||||||
github.com/lib/pq v1.1.1
|
github.com/lib/pq v1.1.1
|
||||||
github.com/mattn/go-sqlite3 v1.10.0
|
github.com/mattn/go-sqlite3 v1.10.0
|
||||||
github.com/pkg/errors v0.8.1
|
github.com/pkg/errors v0.8.1
|
||||||
|
github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect
|
||||||
github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9
|
github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9
|
||||||
gopkg.in/yaml.v2 v2.2.2
|
gopkg.in/yaml.v2 v2.2.2
|
||||||
maunium.net/go/mauflag v1.0.0
|
maunium.net/go/mauflag v1.0.0
|
||||||
maunium.net/go/maulogger/v2 v2.0.0
|
maunium.net/go/maulogger/v2 v2.0.0
|
||||||
maunium.net/go/mautrix v0.1.0-alpha.3.0.20200209182939-9df6760d40d2
|
maunium.net/go/mautrix v0.1.0-alpha.3.0.20200221234248-8a868bce2854
|
||||||
maunium.net/go/mautrix-appservice v0.1.0-alpha.3.0.20200209183024-a3d12dc80898
|
maunium.net/go/mautrix-appservice v0.1.0-alpha.3.0.20200209183024-a3d12dc80898
|
||||||
)
|
)
|
||||||
|
|
||||||
|
4
go.sum
4
go.sum
@ -58,6 +58,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
|
|||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65 h1:+rhAzEzT3f4JtomfC371qB+0Ola2caSKcY69NUBZrRQ=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65 h1:+rhAzEzT3f4JtomfC371qB+0Ola2caSKcY69NUBZrRQ=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
|
golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI=
|
||||||
|
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
@ -84,6 +86,8 @@ maunium.net/go/mautrix v0.1.0-alpha.3.0.20191230181907-055c3acd81cd h1:stoHlgxDA
|
|||||||
maunium.net/go/mautrix v0.1.0-alpha.3.0.20191230181907-055c3acd81cd/go.mod h1:O+QWJP3H7BZEzIBSrECKpnpRnEKBwaoWVEu/yZwVwxg=
|
maunium.net/go/mautrix v0.1.0-alpha.3.0.20191230181907-055c3acd81cd/go.mod h1:O+QWJP3H7BZEzIBSrECKpnpRnEKBwaoWVEu/yZwVwxg=
|
||||||
maunium.net/go/mautrix v0.1.0-alpha.3.0.20200209182939-9df6760d40d2 h1:Ewvf0/4z0OQ7IyySxP5rjhzpL01Slxhup7ugHieAlrI=
|
maunium.net/go/mautrix v0.1.0-alpha.3.0.20200209182939-9df6760d40d2 h1:Ewvf0/4z0OQ7IyySxP5rjhzpL01Slxhup7ugHieAlrI=
|
||||||
maunium.net/go/mautrix v0.1.0-alpha.3.0.20200209182939-9df6760d40d2/go.mod h1:O+QWJP3H7BZEzIBSrECKpnpRnEKBwaoWVEu/yZwVwxg=
|
maunium.net/go/mautrix v0.1.0-alpha.3.0.20200209182939-9df6760d40d2/go.mod h1:O+QWJP3H7BZEzIBSrECKpnpRnEKBwaoWVEu/yZwVwxg=
|
||||||
|
maunium.net/go/mautrix v0.1.0-alpha.3.0.20200221234248-8a868bce2854 h1:NKj52IqLkfscNMSbSVepaXHM6M/x3iNe/iWSAcmAilo=
|
||||||
|
maunium.net/go/mautrix v0.1.0-alpha.3.0.20200221234248-8a868bce2854/go.mod h1:g10T1fh2Q2HkJWycVs93eBXdWpqD67f1YVQhNxdIDr4=
|
||||||
maunium.net/go/mautrix-appservice v0.1.0-alpha.3.0.20190618052224-6e6c9bb47548 h1:ni1nqs+2AOO+g1ND6f2W0pMcb6sIDVqzerXosO+pI2g=
|
maunium.net/go/mautrix-appservice v0.1.0-alpha.3.0.20190618052224-6e6c9bb47548 h1:ni1nqs+2AOO+g1ND6f2W0pMcb6sIDVqzerXosO+pI2g=
|
||||||
maunium.net/go/mautrix-appservice v0.1.0-alpha.3.0.20190618052224-6e6c9bb47548/go.mod h1:yVWU0gvIHIXClgyVnShiufiDksFbFrBqHG9lDAYcmGI=
|
maunium.net/go/mautrix-appservice v0.1.0-alpha.3.0.20190618052224-6e6c9bb47548/go.mod h1:yVWU0gvIHIXClgyVnShiufiDksFbFrBqHG9lDAYcmGI=
|
||||||
maunium.net/go/mautrix-appservice v0.1.0-alpha.3.0.20190822210104-3e49344e186b h1:/03X0PPgtk4pqXcdH86xMzOl891whG5A1hFXQ+xXons=
|
maunium.net/go/mautrix-appservice v0.1.0-alpha.3.0.20190822210104-3e49344e186b h1:/03X0PPgtk4pqXcdH86xMzOl891whG5A1hFXQ+xXons=
|
||||||
|
Loading…
Reference in New Issue
Block a user