Rely on parsedText to determine imageURLs
This commit is contained in:
parent
7d178b355e
commit
07b757ddad
|
@ -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,
|
||||
|
@ -171,16 +167,18 @@ proc toMessage*(jsonMsg: JsonNode): Message =
|
|||
imageUrls: ""
|
||||
)
|
||||
|
||||
if imageUrls.len > 0:
|
||||
message.imageUrls = imageUrls.join(" ")
|
||||
if jsonMsg["parsedText"].kind != JNull:
|
||||
for text in jsonMsg["parsedText"]:
|
||||
message.parsedText.add(text.toTextItem)
|
||||
|
||||
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
|
||||
|
||||
if jsonMsg["parsedText"].kind != JNull:
|
||||
for text in jsonMsg["parsedText"]:
|
||||
result.parsedText.add(text.toTextItem)
|
||||
|
||||
if result.contentType == ContentType.Sticker:
|
||||
result.stickerHash = jsonMsg["sticker"]["hash"].getStr
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue