1
0

🏗️ Improve ParseURL entity helper

This commit is contained in:
Maxim Lebedev 2018-01-29 14:09:01 +05:00
parent 163bae541d
commit abe16bbab5
No known key found for this signature in database
GPG Key ID: F8978F46FF0FFA4F

View File

@ -2,16 +2,35 @@ package telegram
import "net/url"
func (entity *MessageEntity) ParseURL() (*url.URL, error) {
if entity != nil {
return nil, nil
func (entity *MessageEntity) ParseURL(messageText string) *url.URL {
if entity == nil {
return nil
}
if entity.IsTextLink() {
return url.Parse(entity.URL)
var err error
parsedURL := new(url.URL)
switch {
case entity.IsTextLink():
parsedURL, err = url.Parse(entity.URL)
case entity.IsURL():
if messageText == "" {
return nil
}
rawMessageText := []rune(messageText)
if len(rawMessageText) < (entity.Offset + entity.Length) {
return nil
}
from := entity.Offset
to := from + entity.Length
parsedURL, err = url.Parse(string([]rune(messageText)[from:to]))
}
if err != nil {
return nil
}
return nil, nil
return parsedURL
}
func (entity *MessageEntity) IsBold() bool {