typing: support typing as a channel user

Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
Sumner Evans
2024-10-24 11:15:48 -06:00
parent c6afaf5504
commit 0f933f691b
2 changed files with 11 additions and 11 deletions
+8 -8
View File
@@ -333,6 +333,10 @@ func (t *TelegramClient) getEventSender(msg interface {
if !ok {
peer = msg.GetPeerID()
}
return t.getPeerSender(peer)
}
func (t *TelegramClient) getPeerSender(peer tg.PeerClass) bridgev2.EventSender {
switch from := peer.(type) {
case *tg.PeerUser:
return bridgev2.EventSender{
@@ -344,8 +348,7 @@ func (t *TelegramClient) getEventSender(msg interface {
Sender: ids.MakeChannelUserID(from.ChannelID),
}
default:
fromID, _ := msg.GetFromID()
panic(fmt.Sprintf("couldn't determine sender (from: %+v) (peer: %+v)", fromID, msg.GetPeerID()))
panic(fmt.Sprintf("couldn't determine sender (peer: %+v)", peer))
}
}
@@ -588,8 +591,8 @@ func (t *TelegramClient) onMessageEdit(ctx context.Context, update IGetMessage)
return nil
}
func (t *TelegramClient) handleTyping(portal networkid.PortalKey, userID int64, action tg.SendMessageActionClass) error {
if userID == t.telegramUserID {
func (t *TelegramClient) handleTyping(portal networkid.PortalKey, sender bridgev2.EventSender, action tg.SendMessageActionClass) error {
if sender.IsFromMe || (sender.Sender == t.userID && sender.SenderLogin == t.userLogin.ID) {
return nil
}
timeout := time.Duration(6) * time.Second
@@ -601,10 +604,7 @@ func (t *TelegramClient) handleTyping(portal networkid.PortalKey, userID int64,
EventMeta: simplevent.EventMeta{
Type: bridgev2.RemoteEventTyping,
PortalKey: portal,
Sender: bridgev2.EventSender{
SenderLogin: ids.MakeUserLoginID(userID),
Sender: ids.MakeUserID(userID),
},
Sender: sender,
},
Timeout: timeout,
})