summaryrefslogtreecommitdiffstats
path: root/bridge
diff options
context:
space:
mode:
Diffstat (limited to 'bridge')
-rw-r--r--bridge/whatsapp/handlers.go5
-rw-r--r--bridge/whatsapp/helpers.go23
-rw-r--r--bridge/whatsapp/whatsapp.go12
3 files changed, 27 insertions, 13 deletions
diff --git a/bridge/whatsapp/handlers.go b/bridge/whatsapp/handlers.go
index 456f2009..d61f6b24 100644
--- a/bridge/whatsapp/handlers.go
+++ b/bridge/whatsapp/handlers.go
@@ -5,10 +5,7 @@ import (
"time"
"github.com/42wim/matterbridge/bridge/config"
-
"github.com/Rhymen/go-whatsapp"
-
- whatsappExt "maunium.net/go/mautrix-whatsapp/whatsapp-ext"
)
/*
@@ -57,7 +54,7 @@ func (b *Bwhatsapp) HandleTextMessage(message whatsapp.TextMessage) {
// mentions comes as telephone numbers and we don't want to expose it to other bridges
// replace it with something more meaninful to others
- mention := b.getSenderNotify(numberAndSuffix[0] + whatsappExt.NewUserSuffix)
+ mention := b.getSenderNotify(numberAndSuffix[0] + "@s.whatsapp.net")
if mention == "" {
mention = "someone"
}
diff --git a/bridge/whatsapp/helpers.go b/bridge/whatsapp/helpers.go
index 5268ba3e..f45d6246 100644
--- a/bridge/whatsapp/helpers.go
+++ b/bridge/whatsapp/helpers.go
@@ -2,13 +2,22 @@ package bwhatsapp
import (
"encoding/gob"
+ "encoding/json"
"errors"
+ "fmt"
"os"
qrcodeTerminal "github.com/Baozisoftware/qrcode-terminal-go"
"github.com/Rhymen/go-whatsapp"
)
+type ProfilePicInfo struct {
+ URL string `json:"eurl"`
+ Tag string `json:"tag"`
+
+ Status int16 `json:"status"`
+}
+
func qrFromTerminal(invert bool) chan string {
qr := make(chan string)
go func() {
@@ -82,3 +91,17 @@ func (b *Bwhatsapp) getSenderNotify(senderJid string) string {
}
return ""
}
+
+func (b *Bwhatsapp) GetProfilePicThumb(jid string) (*ProfilePicInfo, error) {
+ data, err := b.conn.GetProfilePicThumb(jid)
+ if err != nil {
+ return nil, fmt.Errorf("failed to get avatar: %v", err)
+ }
+ content := <-data
+ info := &ProfilePicInfo{}
+ err = json.Unmarshal([]byte(content), info)
+ if err != nil {
+ return info, fmt.Errorf("failed to unmarshal avatar info: %v", err)
+ }
+ return info, nil
+}
diff --git a/bridge/whatsapp/whatsapp.go b/bridge/whatsapp/whatsapp.go
index c66e13ac..eb3f0d1c 100644
--- a/bridge/whatsapp/whatsapp.go
+++ b/bridge/whatsapp/whatsapp.go
@@ -12,8 +12,6 @@ import (
"github.com/42wim/matterbridge/bridge"
"github.com/42wim/matterbridge/bridge/config"
"github.com/Rhymen/go-whatsapp"
-
- whatsappExt "maunium.net/go/mautrix-whatsapp/whatsapp-ext"
)
const (
@@ -28,10 +26,8 @@ type Bwhatsapp struct {
*bridge.Config
// https://github.com/Rhymen/go-whatsapp/blob/c31092027237441cffba1b9cb148eadf7c83c3d2/session.go#L18-L21
- session *whatsapp.Session
- conn *whatsapp.Conn
- // https://github.com/tulir/mautrix-whatsapp/blob/master/whatsapp-ext/whatsapp.go
- connExt *whatsappExt.ExtendedConn
+ session *whatsapp.Session
+ conn *whatsapp.Conn
startedAt uint64
users map[string]whatsapp.Contact
@@ -73,8 +69,6 @@ func (b *Bwhatsapp) Connect() error {
}
b.conn = conn
- b.connExt = whatsappExt.ExtendConn(b.conn)
- // TODO do we want to use it? b.connExt.SetClientName("Matterbridge WhatsApp bridge", "mb-wa")
b.conn.AddHandler(b)
b.Log.Debugln("WhatsApp connection successful")
@@ -129,7 +123,7 @@ func (b *Bwhatsapp) Connect() error {
b.Log.Debug("Getting user avatars..")
for jid := range b.users {
- info, err := b.connExt.GetProfilePicThumb(jid)
+ info, err := b.GetProfilePicThumb(jid)
if err != nil {
b.Log.Warnf("Could not get profile photo of %s: %v", jid, err)