Fix parsing censored tweets
This commit is contained in:
		
							parent
							
								
									509e1dc5e8
								
							
						
					
					
						commit
						2d7e12fcb8
					
				| 
						 | 
				
			
			@ -328,7 +328,7 @@ proc parseThread(js: JsonNode; global: GlobalObjects): tuple[thread: Chain, self
 | 
			
		|||
      else:
 | 
			
		||||
        result.thread.more = -1
 | 
			
		||||
    else:
 | 
			
		||||
      var tweet = finalizeTweet(global, entry.getId)
 | 
			
		||||
      var tweet = finalizeTweet(global, t.getEntryId)
 | 
			
		||||
      if not tweet.available:
 | 
			
		||||
        tweet.tombstone = getTombstone(content{"tombstone"})
 | 
			
		||||
      result.thread.content.add tweet
 | 
			
		||||
| 
						 | 
				
			
			@ -343,8 +343,8 @@ proc parseConversation*(js: JsonNode; tweetId: string): Conversation =
 | 
			
		|||
 | 
			
		||||
  for e in instructions[0]{"addEntries", "entries"}:
 | 
			
		||||
    let entry = e{"entryId"}.getStr
 | 
			
		||||
    if "tweet" in entry:
 | 
			
		||||
      let tweet = finalizeTweet(global, entry.getId)
 | 
			
		||||
    if "tweet" in entry or "tombstone" in entry:
 | 
			
		||||
      let tweet = finalizeTweet(global, e.getEntryId)
 | 
			
		||||
      if $tweet.id != tweetId:
 | 
			
		||||
        result.before.content.add tweet
 | 
			
		||||
      else:
 | 
			
		||||
| 
						 | 
				
			
			@ -408,8 +408,8 @@ proc parseTimeline*(js: JsonNode; after=""): Timeline =
 | 
			
		|||
 | 
			
		||||
  for e in instructions[0]{"addEntries", "entries"}:
 | 
			
		||||
    let entry = e{"entryId"}.getStr
 | 
			
		||||
    if "tweet" in entry or "sq-I-t" in entry:
 | 
			
		||||
      let tweet = finalizeTweet(global, entry.getId)
 | 
			
		||||
    if "tweet" in entry or "sq-I-t" in entry or "tombstone" in entry:
 | 
			
		||||
      let tweet = finalizeTweet(global, e.getEntryId)
 | 
			
		||||
      if not tweet.available: continue
 | 
			
		||||
      result.content.add tweet
 | 
			
		||||
    elif "cursor-top" in entry:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,6 +55,18 @@ proc getId*(js: JsonNode): int64 {.inline.} =
 | 
			
		|||
  of JInt: return js.getBiggestInt()
 | 
			
		||||
  else: return 0
 | 
			
		||||
 | 
			
		||||
proc getEntryId*(js: JsonNode): string {.inline.} =
 | 
			
		||||
  let entry = js{"entryId"}.getStr
 | 
			
		||||
  if entry.len == 0: return
 | 
			
		||||
 | 
			
		||||
  if "tweet" in entry:
 | 
			
		||||
    return entry.getId
 | 
			
		||||
  elif "tombstone" in entry:
 | 
			
		||||
    return js{"content", "item", "content", "tombstone", "tweet", "id"}.getStr
 | 
			
		||||
  else:
 | 
			
		||||
    echo "unknown entry: ", entry
 | 
			
		||||
    return
 | 
			
		||||
 | 
			
		||||
template getStrVal*(js: JsonNode; default=""): string =
 | 
			
		||||
  js{"string_value"}.getStr(default)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue