user info: handle deleted users

Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
Sumner Evans
2024-10-14 14:09:08 -06:00
parent 4d1cec979b
commit 132585de34
6 changed files with 11 additions and 6 deletions
+2 -1
View File
@@ -558,7 +558,7 @@ func (t *TelegramClient) getUserInfoFromTelegramUser(ctx context.Context, u tg.U
}
}
name := util.FormatFullName(user.FirstName, user.LastName)
name := util.FormatFullName(user.FirstName, user.LastName, user.Deleted, user.ID)
return &bridgev2.UserInfo{
IsBot: &user.Bot,
Name: &name,
@@ -570,6 +570,7 @@ func (t *TelegramClient) getUserInfoFromTelegramUser(ctx context.Context, u tg.U
changed = changed || meta.IsPremium != user.Premium || meta.IsBot != user.Bot
meta.IsPremium = user.Premium
meta.IsBot = user.Bot
meta.Deleted = user.Deleted
}
return changed
},
+1
View File
@@ -148,6 +148,7 @@ type GhostMetadata struct {
IsBot bool `json:"is_bot,omitempty"`
IsChannel bool `json:"is_channel,omitempty"`
Blocked bool `json:"blocked,omitempty"`
Deleted bool `json:"deleted,omitempty"`
}
type PortalMetadata struct {
+1 -1
View File
@@ -88,7 +88,7 @@ func finalizeLogin(ctx context.Context, user *bridgev2.User, authorization *tg.A
}
}()
fullName := util.FormatFullName(me.FirstName, me.LastName)
fullName := util.FormatFullName(me.FirstName, me.LastName, me.Deleted, me.ID)
username := me.Username
if username == "" && len(me.Usernames) > 0 {
username = me.Usernames[0].Username
+2 -2
View File
@@ -326,7 +326,7 @@ func (t *TelegramClient) maybeUpdateRemoteProfile(ctx context.Context, ghost *br
var changed bool
if user != nil {
fullName := util.FormatFullName(user.FirstName, user.LastName)
fullName := util.FormatFullName(user.FirstName, user.LastName, user.Deleted, user.ID)
username := user.Username
if username == "" && len(user.Usernames) > 0 {
username = user.Usernames[0].Username
@@ -371,7 +371,7 @@ func (t *TelegramClient) onUserName(ctx context.Context, e tg.Entities, update *
return err
}
name := util.FormatFullName(update.FirstName, update.LastName)
name := util.FormatFullName(update.FirstName, update.LastName, false, update.UserID)
userInfo := bridgev2.UserInfo{Name: &name}
if len(update.Usernames) > 0 {
+1 -1
View File
@@ -443,7 +443,7 @@ func (c *TelegramClient) convertMediaRequiringUpload(ctx context.Context, portal
func (c *TelegramClient) convertContact(media tg.MessageMediaClass) *bridgev2.ConvertedMessagePart {
contact := media.(*tg.MessageMediaContact)
name := util.FormatFullName(contact.FirstName, contact.LastName)
name := util.FormatFullName(contact.FirstName, contact.LastName, false, contact.UserID)
formattedPhone := fmt.Sprintf("+%s", strings.TrimPrefix(contact.PhoneNumber, "+"))
content := event.MessageEventContent{
+4 -1
View File
@@ -5,6 +5,9 @@ import (
"strings"
)
func FormatFullName(first, last string) string {
func FormatFullName(first, last string, deleted bool, userID int64) string {
if deleted {
return fmt.Sprintf("Deleted account %d", userID)
}
return strings.TrimSpace(fmt.Sprintf("%s %s", first, last))
}