diff --git a/telegram/utils.go b/telegram/utils.go index ca1884c..48460e7 100644 --- a/telegram/utils.go +++ b/telegram/utils.go @@ -35,15 +35,27 @@ func (c *Client) GetContactByUsername(username string) (*client.Chat, *client.Us return nil, nil, errOffline } - chat, err := c.client.SearchPublicChat(&client.SearchPublicChatRequest{ - Username: username, - }) + var chat *client.Chat + var err error + var userID int64 + if strings.HasPrefix(username, "@") { + chat, err = c.client.SearchPublicChat(&client.SearchPublicChatRequest{ + Username: username, + }) - if err != nil { - return nil, nil, err + if err != nil { + return nil, nil, err + } + + userID = chat.Id + } else { + userID, err = strconv.ParseInt(username, 10, 64) + if err != nil { + return nil, nil, err + } } - return c.GetContactByID(chat.Id, chat) + return c.GetContactByID(userID, chat) } // GetContactByID gets user and chat information from cache (or tries to retrieve it, if missing)