Fix for empty cards

This commit is contained in:
cmj
2026-05-11 04:48:04 -07:00
parent 74f5ff8acc
commit 5f6aef3a02
+12 -8
View File
@@ -438,7 +438,7 @@ proc parseTweet(js: JsonNode; jsCard: JsonNode = newJNull();
result.retweet = some parseGraphTweet(rt) result.retweet = some parseGraphTweet(rt)
return return
if jsCard.kind != JNull: if jsCard.kind != JNull and jsCard{"rest_id"}.getStr.allCharsInSet({'0'..'9'}):
let name = jsCard{"name"}.getStr let name = jsCard{"name"}.getStr
if "poll" in name: if "poll" in name:
if "image" in name: if "image" in name:
@@ -498,13 +498,17 @@ proc parseGraphTweet(js: JsonNode): Tweet =
if bindingArray.kind == JArray: if bindingArray.kind == JArray:
var bindingObj: seq[(string, JsonNode)] var bindingObj: seq[(string, JsonNode)]
for item in bindingArray: for item in bindingArray:
if item{"key"}.getStr == "_omit_link_":
jsCard = newJNull()
break
bindingObj.add((item{"key"}.getStr, item{"value"})) bindingObj.add((item{"key"}.getStr, item{"value"}))
# Create a new card object with flattened structure if jsCard.kind != JNull:
jsCard = %*{ # Create a new card object with flattened structure
"name": legacyCard{"name"}, jsCard = %*{
"url": legacyCard{"url"}, "name": legacyCard{"name"},
"binding_values": %bindingObj "url": legacyCard{"url"},
} "binding_values": %bindingObj
}
var replyId = 0 var replyId = 0
with restId, js{"reply_to_results", "rest_id"}: with restId, js{"reply_to_results", "rest_id"}:
@@ -526,7 +530,7 @@ proc parseGraphTweet(js: JsonNode): Tweet =
) )
) )
if jsCard.kind != JNull: if jsCard.kind != JNull and jsCard{"rest_id"}.getStr.allCharsInSet({'0'..'9'}):
let name = jsCard{"name"}.getStr let name = jsCard{"name"}.getStr
if "poll" in name: if "poll" in name:
if "image" in name: if "image" in name: