diff --git a/src/experimental/parser/unifiedcard.nim b/src/experimental/parser/unifiedcard.nim index 3c5158a1e..c9af43767 100644 --- a/src/experimental/parser/unifiedcard.nim +++ b/src/experimental/parser/unifiedcard.nim @@ -84,6 +84,8 @@ proc parseUnifiedCard*(json: string): Card = component.parseMedia(card, result) of buttonGroup: discard + of ComponentType.hidden: + result.kind = CardKind.hidden of ComponentType.unknown: echo "ERROR: Unknown component type: ", json diff --git a/src/experimental/types/unifiedcard.nim b/src/experimental/types/unifiedcard.nim index 4ec587c68..6e83cad58 100644 --- a/src/experimental/types/unifiedcard.nim +++ b/src/experimental/types/unifiedcard.nim @@ -17,6 +17,7 @@ type twitterListDetails communityDetails mediaWithDetailsHorizontal + hidden unknown Component* = object @@ -71,11 +72,11 @@ type Text = object content: string - HasTypeField = Component | Destination | MediaEntity | AppStoreData + TypeField = Component | Destination | MediaEntity | AppStoreData converter fromText*(text: Text): string = text.content -proc renameHook*(v: var HasTypeField; fieldName: var string) = +proc renameHook*(v: var TypeField; fieldName: var string) = if fieldName == "type": fieldName = "kind" @@ -89,6 +90,7 @@ proc enumHook*(s: string; v: var ComponentType) = of "twitter_list_details": twitterListDetails of "community_details": communityDetails of "media_with_details_horizontal": mediaWithDetailsHorizontal + of "commerce_drop_details": hidden else: echo "ERROR: Unknown enum value (ComponentType): ", s; unknown proc enumHook*(s: string; v: var AppType) = diff --git a/src/types.nim b/src/types.nim index 1e0d91328..40a260940 100644 --- a/src/types.nim +++ b/src/types.nim @@ -158,6 +158,7 @@ type imageDirectMessage = "image_direct_message" audiospace = "audiospace" newsletterPublication = "newsletter_publication" + hidden unknown Card* = object diff --git a/src/views/tweet.nim b/src/views/tweet.nim index ea94e28c3..7c4548fa8 100644 --- a/src/views/tweet.nim +++ b/src/views/tweet.nim @@ -328,7 +328,7 @@ proc renderTweet*(tweet: Tweet; prefs: Prefs; path: string; class=""; index=0; if tweet.attribution.isSome: renderAttribution(tweet.attribution.get(), prefs) - if tweet.card.isSome: + if tweet.card.isSome and tweet.card.get().kind != hidden: renderCard(tweet.card.get(), prefs, path) if tweet.photos.len > 0: