user info: handle deleted users
Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
@@ -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
|
||||
},
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user