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)
|
* [ ] Supergroup/channel permissions (precise per-user permissions not supported in Matrix)
|
||||||
* [ ] Membership actions (invite/kick/join/leave)
|
* [ ] Membership actions (invite/kick/join/leave)
|
||||||
* [ ] Chat metadata changes
|
* [ ] Chat metadata changes
|
||||||
* [ ] Title
|
* [x] Title
|
||||||
* [ ] Avatar
|
* [x] Avatar
|
||||||
* [ ] † About text
|
* [ ] † About text
|
||||||
* [ ] † Public channel username
|
* [ ] † Public channel username
|
||||||
* [x] Initial chat metadata (about text missing)
|
* [x] Initial chat metadata (about text missing)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ require (
|
|||||||
go.uber.org/zap v1.27.0
|
go.uber.org/zap v1.27.0
|
||||||
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
|
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
|
||||||
golang.org/x/net v0.27.0
|
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 (
|
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=
|
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 h1:YiaRc0tEI3toYtJMRIfjP+jklH45uDHtT80nUamyD4M=
|
||||||
maunium.net/go/mauflag v1.0.0/go.mod h1:nLivPOpTpHnpzEh8jEdSL9UqO9+/KBJFmNRlwKfkPeA=
|
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.20240806185340-213f9df4a467 h1:QptF4mA070qVG2isInl2HjtPOZ1TTqf0zM38uHPeWM8=
|
||||||
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/go.mod h1:ZWyxoQxRTBxzWIMs0kQCVogZIY0clTu33h102veCT/Q=
|
||||||
nhooyr.io/websocket v1.8.11 h1:f/qXNc2/3DpoSZkHt1DQu6rj4zGC8JmkkLkWss0MgN0=
|
nhooyr.io/websocket v1.8.11 h1:f/qXNc2/3DpoSZkHt1DQu6rj4zGC8JmkkLkWss0MgN0=
|
||||||
nhooyr.io/websocket v1.8.11/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c=
|
nhooyr.io/websocket v1.8.11/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c=
|
||||||
rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY=
|
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,
|
ConvertMessageFunc: t.convertToMatrix,
|
||||||
})
|
})
|
||||||
case *tg.MessageService:
|
case *tg.MessageService:
|
||||||
// fmt.Printf("message service\n")
|
sender := t.getEventSender(msg)
|
||||||
// fmt.Printf("%v\n", msg)
|
portalKey := ids.MakePortalKey(msg.PeerID)
|
||||||
|
switch action := msg.Action.(type) {
|
||||||
// sender := t.getEventSender(msg)
|
case *tg.MessageActionChatEditTitle:
|
||||||
// switch action := msg.Action.(type) {
|
t.main.Bridge.QueueRemoteEvent(t.userLogin, &simplevent.ChatInfoChange{
|
||||||
// case *tg.MessageActionChatEditTitle:
|
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.MessageActionChatCreate:
|
||||||
// case *tg.MessageActionChatEditPhoto:
|
|
||||||
// case *tg.MessageActionChatDeletePhoto:
|
|
||||||
// case *tg.MessageActionChatAddUser:
|
// case *tg.MessageActionChatAddUser:
|
||||||
// case *tg.MessageActionChatDeleteUser:
|
// case *tg.MessageActionChatDeleteUser:
|
||||||
// case *tg.MessageActionChatJoinedByLink:
|
// case *tg.MessageActionChatJoinedByLink:
|
||||||
@@ -109,9 +142,9 @@ func (t *TelegramClient) onUpdateNewMessage(ctx context.Context, update IGetMess
|
|||||||
// case *tg.MessageActionGiveawayResults:
|
// case *tg.MessageActionGiveawayResults:
|
||||||
// case *tg.MessageActionBoostApply:
|
// case *tg.MessageActionBoostApply:
|
||||||
// case *tg.MessageActionRequestedPeerSentMe:
|
// case *tg.MessageActionRequestedPeerSentMe:
|
||||||
// default:
|
default:
|
||||||
// return fmt.Errorf("unknown action type %T", action)
|
return fmt.Errorf("unknown action type %T", action)
|
||||||
// }
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("unknown message type %T", msg)
|
return fmt.Errorf("unknown message type %T", msg)
|
||||||
|
|||||||
Reference in New Issue
Block a user