瀏覽代碼

Nevermind.

Zed 6 年之前
父節點
當前提交
91f42c4c94
共有 3 個文件被更改,包括 13 次插入6 次删除
  1. 2 2
      src/api.nim
  2. 1 1
      src/consts.nim
  3. 10 3
      src/parser.nim

+ 2 - 2
src/api.nim

@@ -36,8 +36,8 @@ proc getListMembers*(list: List; after=""): Future[Result[Profile]] {.async.} =
 proc getProfile*(username: string): Future[Profile] {.async.} =
   let
     ps = genParams({"screen_name": username})
-    url = userLookup ? ps
-  result = parseUserLookup(await fetch(url, oldApi=true), username)
+    url = userShow ? ps
+  result = parseUserShow(await fetch(url, oldApi=true), username)
 
 proc getTimeline*(id: string; after=""; replies=false): Future[Timeline] {.async.} =
   let

+ 1 - 1
src/consts.nim

@@ -13,7 +13,7 @@ const
   mediaTimeline* = timelineApi / "media"
   listTimeline* = timelineApi / "list.json"
   listMembers* = api / "1.1/lists/members.json"
-  userLookup* = api / "1.1/users/lookup.json"
+  userShow* = api / "1.1/users/show.json"
   photoRail* = api / "1.1/statuses/media_timeline.json"
   tweet* = timelineApi / "conversation"
   search* = api / "2/search/adaptive.json"

+ 10 - 3
src/parser.nim

@@ -24,10 +24,17 @@ proc parseProfile(js: JsonNode; id=""): Profile =
 
   result.expandProfileEntities(js)
 
-proc parseUserLookup*(js: JsonNode; username: string): Profile =
-  if js.isNull or js.kind == JArray and js.len == 0 or "error" in js:
+proc parseUserShow*(js: JsonNode; username: string): Profile =
+  if js.isNull:
     return Profile(username: username)
-  result = parseProfile(js[0])
+
+  with error, js{"errors"}:
+    result = Profile(username: username)
+    if error.getError == suspended:
+      result.suspended = true
+    return
+
+  result = parseProfile(js)
 
 proc parseGraphProfile*(js: JsonNode; username: string): Profile =
   if js.isNull: return