Add parser for a TweetResponse
This commit is contained in:
parent
5290a0b549
commit
90e5fdb8b1
@ -73,3 +73,33 @@ func ParseSingleTweet(apiTweet APITweet) (ret Tweet, err error) {
|
||||
ret.HasVideo = false // TODO
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
func ParseTweetResponse(resp TweetResponse) (tweets []Tweet, retweets []Retweet, users []User, err error) {
|
||||
var new_tweet Tweet
|
||||
var new_retweet Retweet
|
||||
for _, single_tweet := range resp.GlobalObjects.Tweets {
|
||||
if single_tweet.RetweetedStatusIDStr == "" {
|
||||
new_tweet, err = ParseSingleTweet(single_tweet)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
tweets = append(tweets, new_tweet)
|
||||
} else {
|
||||
new_retweet, err = ParseSingleRetweet(single_tweet)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
retweets = append(retweets, new_retweet)
|
||||
}
|
||||
}
|
||||
var new_user User
|
||||
for _, user := range resp.GlobalObjects.Users {
|
||||
new_user, err = ParseSingleUser(user)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
users = append(users, new_user)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -136,3 +136,31 @@ func TestParseSingleTweet2(t *testing.T) {
|
||||
t.Errorf("Expected %q, got %q", expected_text, quoted_tweet.Text)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func TestParseTweetResponse(t *testing.T) {
|
||||
data, err := ioutil.ReadFile("test_responses/michael_malice_feed.json")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
var tweet_resp scraper.TweetResponse
|
||||
err = json.Unmarshal(data, &tweet_resp)
|
||||
if err != nil {
|
||||
t.Errorf(err.Error())
|
||||
}
|
||||
|
||||
tweets, retweets, users, err := scraper.ParseTweetResponse(tweet_resp)
|
||||
if err != nil {
|
||||
t.Errorf(err.Error())
|
||||
}
|
||||
|
||||
if len(tweets) != 29 - 3 {
|
||||
t.Errorf("Expected %d tweets, got %d", 29-3, len(tweets))
|
||||
}
|
||||
if len(retweets) != 3 {
|
||||
t.Errorf("Expected %d tweets, got %d", 3, len(retweets))
|
||||
}
|
||||
if len(users) != 9 {
|
||||
t.Errorf("Expected %d tweets, got %d", 9, len(users))
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user