diff --git a/pkg/connector/client.go b/pkg/connector/client.go index c6200feb..7a4e0a99 100644 --- a/pkg/connector/client.go +++ b/pkg/connector/client.go @@ -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 }, diff --git a/pkg/connector/config.go b/pkg/connector/config.go index 6a65cfde..ed150061 100644 --- a/pkg/connector/config.go +++ b/pkg/connector/config.go @@ -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 { diff --git a/pkg/connector/login.go b/pkg/connector/login.go index 99a68a88..4a7e8345 100644 --- a/pkg/connector/login.go +++ b/pkg/connector/login.go @@ -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 diff --git a/pkg/connector/telegram.go b/pkg/connector/telegram.go index 0cb34986..76d58221 100644 --- a/pkg/connector/telegram.go +++ b/pkg/connector/telegram.go @@ -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 { diff --git a/pkg/connector/tomatrix.go b/pkg/connector/tomatrix.go index a7118e6c..c4567292 100644 --- a/pkg/connector/tomatrix.go +++ b/pkg/connector/tomatrix.go @@ -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{ diff --git a/pkg/connector/util/util.go b/pkg/connector/util/util.go index d946119d..8fd4b178 100644 --- a/pkg/connector/util/util.go +++ b/pkg/connector/util/util.go @@ -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)) }