Avoid crashing on user-feed tombstone entries
This commit is contained in:
parent
3340fc3da3
commit
0a40dbe908
@ -452,6 +452,10 @@ func (e APIV2Entry) ToTweetTrove() TweetTrove {
|
|||||||
|
|
||||||
return ret
|
return ret
|
||||||
} else if e.Content.EntryType == "TimelineTimelineItem" {
|
} else if e.Content.EntryType == "TimelineTimelineItem" {
|
||||||
|
if e.Content.ItemContent.ItemType == "TimelineTombstone" {
|
||||||
|
// TODO: user feed tombstone entries
|
||||||
|
return NewTweetTrove()
|
||||||
|
}
|
||||||
ret, err := e.Content.ItemContent.TweetResults.ToTweetTrove()
|
ret, err := e.Content.ItemContent.TweetResults.ToTweetTrove()
|
||||||
|
|
||||||
// Handle tombstones in parent reply thread
|
// Handle tombstones in parent reply thread
|
||||||
|
@ -584,6 +584,30 @@ func TestAPIV2TombstoneEntry(t *testing.T) {
|
|||||||
assert.Equal(tweet.ID, TweetID(1454515503242829830))
|
assert.Equal(tweet.ID, TweetID(1454515503242829830))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAPIV2UserFeedTombstoneEntry(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
data, err := os.ReadFile("test_responses/api_v2/user_feed_tombstone_entry.json")
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
var entry APIV2Entry
|
||||||
|
err = json.Unmarshal(data, &entry)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
trove := entry.ToTweetTrove()
|
||||||
|
assert.NoError(err)
|
||||||
|
// assert.Len(trove.Tweets, 1)
|
||||||
|
// assert.Len(trove.Users, 1)
|
||||||
|
assert.Len(trove.Retweets, 0)
|
||||||
|
|
||||||
|
// tweet, is_ok := trove.Tweets[1670122897912786944]
|
||||||
|
// assert.True(is_ok)
|
||||||
|
// assert.Equal(tweet.ID, TweetID(1670122897912786944))
|
||||||
|
// assert.Equal("age-restricted", tweet.TombstoneType)
|
||||||
|
// assert.NotEqual(UserID(0), tweet.UserID)
|
||||||
|
// user, is_ok := trove.Users[tweet.UserID]
|
||||||
|
// assert.True(user.IsIdFake)
|
||||||
|
}
|
||||||
|
|
||||||
func TestAPIV2ConversationThreadWithTombstones(t *testing.T) {
|
func TestAPIV2ConversationThreadWithTombstones(t *testing.T) {
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
data, err := os.ReadFile("test_responses/api_v2/conversation_thread_with_tombstones.json")
|
data, err := os.ReadFile("test_responses/api_v2/conversation_thread_with_tombstones.json")
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
{"entryId":"tombstone-1670122897912786944","sortIndex":"1670122897912786944","content":{"entryType":"TimelineTimelineItem","itemContent":{"itemType":"TimelineTombstone","tombstoneDisplayType":"Inline","tombstoneInfo":{"text":"","richText":{"rtl":false,"text":"Age-restricted adult content. This content might not be appropriate for people under 18 years old. To view this media, you’ll need to log in to Twitter. Learn more","entities":[{"fromIndex":134,"toIndex":140,"ref":{"type":"TimelineUrl","url":"https://twitter.com","urlType":"ExternalUrl"}},{"fromIndex":153,"toIndex":163,"ref":{"type":"TimelineUrl","url":"https://help.twitter.com/rules-and-policies/notices-on-twitter","urlType":"ExternalUrl"}}]}}}}}
|
Loading…
x
Reference in New Issue
Block a user