From 1e39877af388254a1be657d5eec5e7f17bf919cb Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Tue, 27 Aug 2024 16:45:55 +0300 Subject: [PATCH] ids: remove emoji ID prefix --- pkg/connector/ids/ids.go | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/pkg/connector/ids/ids.go b/pkg/connector/ids/ids.go index d76a042c..e20c4e39 100644 --- a/pkg/connector/ids/ids.go +++ b/pkg/connector/ids/ids.go @@ -173,21 +173,27 @@ func MakeAvatarID(photoID int64) networkid.AvatarID { } func MakeEmojiIDFromDocumentID(documentID int64) networkid.EmojiID { - return networkid.EmojiID(fmt.Sprintf("d%d", documentID)) + return networkid.EmojiID(strconv.FormatInt(documentID, 10)) } -func MakeEmojiIDFromEmoticon(emoticon string) networkid.EmojiID { - return networkid.EmojiID(fmt.Sprintf("e%s", emoticon)) +func MakeEmojiIDFromEmoticon(emoji string) networkid.EmojiID { + return networkid.EmojiID(emoji) } -func ParseEmojiID(emojiID networkid.EmojiID) (documentID int64, emoticon string, err error) { - switch emojiID[0] { - case 'd': - documentID, err = strconv.ParseInt(string(emojiID[1:]), 10, 64) - case 'e': - emoticon = string(emojiID[1:]) - default: - err = fmt.Errorf("invalid emoji ID type %s", string(emojiID[0])) +func isNumbers(s string) bool { + for _, r := range s { + if r < '0' || r > '9' { + return false + } + } + return true +} + +func ParseEmojiID(emojiID networkid.EmojiID) (documentID int64, emoji string, err error) { + if isNumbers(string(emojiID)) { + documentID, err = strconv.ParseInt(string(emojiID), 10, 64) + } else { + emoji = string(emojiID) } return }