🏗️ Improve ParseURL entity helper
This commit is contained in:
parent
163bae541d
commit
abe16bbab5
|
@ -2,16 +2,35 @@ package telegram
|
||||||
|
|
||||||
import "net/url"
|
import "net/url"
|
||||||
|
|
||||||
func (entity *MessageEntity) ParseURL() (*url.URL, error) {
|
func (entity *MessageEntity) ParseURL(messageText string) *url.URL {
|
||||||
if entity != nil {
|
if entity == nil {
|
||||||
return nil, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if entity.IsTextLink() {
|
var err error
|
||||||
return url.Parse(entity.URL)
|
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 {
|
func (entity *MessageEntity) IsBold() bool {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user