Rely on parsedText to determine imageURLs

This commit is contained in:
Pascal Precht 2020-07-15 13:01:19 +02:00 committed by Iuri Matias
parent 7d178b355e
commit 07b757ddad
1 changed files with 10 additions and 12 deletions

View File

@ -140,10 +140,6 @@ proc toTextItem*(jsonText: JsonNode): TextItem =
proc toMessage*(jsonMsg: JsonNode): Message =
let
regex = re(r"(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|].(?:jpg|jpeg|gif|png|svg))", flags = {reStudy, reIgnoreCase})
text = jsonMsg{"text"}.getStr
imageUrls = findAll(text, regex)
var message = Message(
alias: jsonMsg{"alias"}.getStr,
@ -170,17 +166,19 @@ proc toMessage*(jsonMsg: JsonNode): Message =
parsedText: @[],
imageUrls: ""
)
if imageUrls.len > 0:
message.imageUrls = imageUrls.join(" ")
result = message
if jsonMsg["parsedText"].kind != JNull:
for text in jsonMsg["parsedText"]:
result.parsedText.add(text.toTextItem)
message.parsedText.add(text.toTextItem)
if result.contentType == ContentType.Sticker:
result.stickerHash = jsonMsg["sticker"]["hash"].getStr
message.imageUrls = concat(message.parsedText.map(t => t.children.filter(c => c.textType == "link")))
.filter(t => [".png", ".jpg", ".jpeg", ".svg", ".gif"].any(ext => t.destination.endsWith(ext)))
.map(t => t.destination)
.join(" ")
if message.contentType == ContentType.Sticker:
message.stickerHash = jsonMsg["sticker"]["hash"].getStr
result = message