chat metadata: bridge title/avatar edits TG -> Matrix
Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
+2
-2
@@ -44,8 +44,8 @@
|
||||
* [ ] Supergroup/channel permissions (precise per-user permissions not supported in Matrix)
|
||||
* [ ] Membership actions (invite/kick/join/leave)
|
||||
* [ ] Chat metadata changes
|
||||
* [ ] Title
|
||||
* [ ] Avatar
|
||||
* [x] Title
|
||||
* [x] Avatar
|
||||
* [ ] † About text
|
||||
* [ ] † Public channel username
|
||||
* [x] Initial chat metadata (about text missing)
|
||||
|
||||
@@ -11,7 +11,7 @@ require (
|
||||
go.uber.org/zap v1.27.0
|
||||
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
|
||||
golang.org/x/net v0.27.0
|
||||
maunium.net/go/mautrix v0.19.1-0.20240806155836-f6b0feab9566
|
||||
maunium.net/go/mautrix v0.19.1-0.20240806185340-213f9df4a467
|
||||
)
|
||||
|
||||
require (
|
||||
|
||||
@@ -112,8 +112,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
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/mautrix v0.19.1-0.20240806155836-f6b0feab9566 h1:3cp7ffpnUyViQDaXoPvw0Pq+0ax4toN4J4OLPLJs59Q=
|
||||
maunium.net/go/mautrix v0.19.1-0.20240806155836-f6b0feab9566/go.mod h1:ZWyxoQxRTBxzWIMs0kQCVogZIY0clTu33h102veCT/Q=
|
||||
maunium.net/go/mautrix v0.19.1-0.20240806185340-213f9df4a467 h1:QptF4mA070qVG2isInl2HjtPOZ1TTqf0zM38uHPeWM8=
|
||||
maunium.net/go/mautrix v0.19.1-0.20240806185340-213f9df4a467/go.mod h1:ZWyxoQxRTBxzWIMs0kQCVogZIY0clTu33h102veCT/Q=
|
||||
nhooyr.io/websocket v1.8.11 h1:f/qXNc2/3DpoSZkHt1DQu6rj4zGC8JmkkLkWss0MgN0=
|
||||
nhooyr.io/websocket v1.8.11/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c=
|
||||
rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY=
|
||||
|
||||
+44
-11
@@ -62,15 +62,48 @@ func (t *TelegramClient) onUpdateNewMessage(ctx context.Context, update IGetMess
|
||||
ConvertMessageFunc: t.convertToMatrix,
|
||||
})
|
||||
case *tg.MessageService:
|
||||
// fmt.Printf("message service\n")
|
||||
// fmt.Printf("%v\n", msg)
|
||||
|
||||
// sender := t.getEventSender(msg)
|
||||
// switch action := msg.Action.(type) {
|
||||
// case *tg.MessageActionChatEditTitle:
|
||||
sender := t.getEventSender(msg)
|
||||
portalKey := ids.MakePortalKey(msg.PeerID)
|
||||
switch action := msg.Action.(type) {
|
||||
case *tg.MessageActionChatEditTitle:
|
||||
t.main.Bridge.QueueRemoteEvent(t.userLogin, &simplevent.ChatInfoChange{
|
||||
EventMeta: simplevent.EventMeta{
|
||||
Type: bridgev2.RemoteEventChatInfoChange,
|
||||
PortalKey: portalKey,
|
||||
Sender: sender,
|
||||
Timestamp: time.Unix(int64(msg.Date), 0),
|
||||
},
|
||||
ChatInfoChange: &bridgev2.ChatInfoChange{
|
||||
ChatInfo: &bridgev2.ChatInfo{Name: &action.Title},
|
||||
},
|
||||
})
|
||||
case *tg.MessageActionChatEditPhoto:
|
||||
t.main.Bridge.QueueRemoteEvent(t.userLogin, &simplevent.ChatInfoChange{
|
||||
EventMeta: simplevent.EventMeta{
|
||||
Type: bridgev2.RemoteEventChatInfoChange,
|
||||
PortalKey: portalKey,
|
||||
Sender: sender,
|
||||
Timestamp: time.Unix(int64(msg.Date), 0),
|
||||
},
|
||||
ChatInfoChange: &bridgev2.ChatInfoChange{
|
||||
ChatInfo: &bridgev2.ChatInfo{
|
||||
Avatar: t.avatarFromPhoto(action.Photo),
|
||||
},
|
||||
},
|
||||
})
|
||||
case *tg.MessageActionChatDeletePhoto:
|
||||
t.main.Bridge.QueueRemoteEvent(t.userLogin, &simplevent.ChatInfoChange{
|
||||
EventMeta: simplevent.EventMeta{
|
||||
Type: bridgev2.RemoteEventChatInfoChange,
|
||||
PortalKey: portalKey,
|
||||
Sender: sender,
|
||||
Timestamp: time.Unix(int64(msg.Date), 0),
|
||||
},
|
||||
ChatInfoChange: &bridgev2.ChatInfoChange{
|
||||
ChatInfo: &bridgev2.ChatInfo{Avatar: &bridgev2.Avatar{Remove: true}},
|
||||
},
|
||||
})
|
||||
// case *tg.MessageActionChatCreate:
|
||||
// case *tg.MessageActionChatEditPhoto:
|
||||
// case *tg.MessageActionChatDeletePhoto:
|
||||
// case *tg.MessageActionChatAddUser:
|
||||
// case *tg.MessageActionChatDeleteUser:
|
||||
// case *tg.MessageActionChatJoinedByLink:
|
||||
@@ -109,9 +142,9 @@ func (t *TelegramClient) onUpdateNewMessage(ctx context.Context, update IGetMess
|
||||
// case *tg.MessageActionGiveawayResults:
|
||||
// case *tg.MessageActionBoostApply:
|
||||
// case *tg.MessageActionRequestedPeerSentMe:
|
||||
// default:
|
||||
// return fmt.Errorf("unknown action type %T", action)
|
||||
// }
|
||||
default:
|
||||
return fmt.Errorf("unknown action type %T", action)
|
||||
}
|
||||
|
||||
default:
|
||||
return fmt.Errorf("unknown message type %T", msg)
|
||||
|
||||
Reference in New Issue
Block a user