Ver Fonte

Fix verified type enum parsing error

Fixes #1387
Zed há 4 meses atrás
pai
commit
4e38317582
1 ficheiros alterados com 7 adições e 3 exclusões
  1. 7 3
      src/parser.nim

+ 7 - 3
src/parser.nim

@@ -6,6 +6,10 @@ import experimental/parser/unifiedcard
 
 proc parseGraphTweet(js: JsonNode): Tweet
 
+proc parseVerifiedType(s: string; current: VerifiedType): VerifiedType =
+  try: parseEnum[VerifiedType](s)
+  except ValueError: current
+
 proc parseCommunityNote(js: JsonNode): string =
   let subtitle = js{"subtitle"}
   result = subtitle{"text"}.getStr
@@ -35,7 +39,7 @@ proc parseUser(js: JsonNode; id=""): User =
     result.verifiedType = blue
 
   with verifiedType, js{"verified_type"}:
-    result.verifiedType = parseEnum[VerifiedType](verifiedType.getStr)
+    result.verifiedType = parseVerifiedType(verifiedType.getStr, result.verifiedType)
 
   result.expandUserEntities(js)
 
@@ -66,7 +70,7 @@ proc parseGraphUser(js: JsonNode): User =
       result.verifiedType = blue
 
     with verifiedType, user{"verification", "verified_type"}:
-      result.verifiedType = parseEnum[VerifiedType](verifiedType.getStr)
+      result.verifiedType = parseVerifiedType(verifiedType.getStr, result.verifiedType)
 
 proc parseAboutAccount*(js: JsonNode): AccountInfo =
   if js.isNull: return
@@ -88,7 +92,7 @@ proc parseAboutAccount*(js: JsonNode): AccountInfo =
   if user{"is_blue_verified"}.getBool(false):
     result.verifiedType = blue
   with verifiedType, user{"verification", "verified_type"}:
-    result.verifiedType = parseEnum[VerifiedType](verifiedType.getStr)
+    result.verifiedType = parseVerifiedType(verifiedType.getStr, result.verifiedType)
 
   with about, user{"about_profile"}:
     result.basedIn = about{"account_based_in"}.getStr