Fix crashing on user's own tweet threads because of the composer button

This commit is contained in:
Alessio 2023-11-17 20:03:59 -08:00
parent 0fe65f99d5
commit 12a2dc9744
3 changed files with 18 additions and 0 deletions

View File

@ -492,6 +492,10 @@ func (e APIV2Entry) ToTweetTrove() TweetTrove {
// "Show More" replies button in a thread on Tweet Detail page
continue
}
if item.Item.ItemContent.ItemType == "TimelineTweetComposer" {
// Composer button
continue
}
trove, err := item.Item.ItemContent.TweetResults.ToTweetTrove()
if errors.Is(err, ErrorIsTombstone) {
// TODO: do something with tombstones in replies to a Tweet Detail

View File

@ -959,3 +959,16 @@ func TestTweetWithImplicitQuotedTombstone(t *testing.T) {
assert.True(t2.IsStub)
assert.Equal(t2.TombstoneType, "unavailable")
}
func TestNoFailOnComposerEntry(t *testing.T) {
assert := assert.New(t)
require := require.New(t)
data, err := os.ReadFile("test_responses/api_v2/composer_entry_item.json")
require.NoError(err)
var entry_result APIV2Entry
err = json.Unmarshal(data, &entry_result)
require.NoError(err)
trove := entry_result.ToTweetTrove()
assert.Len(trove.Tweets, 0)
}

View File

@ -0,0 +1 @@
{"entryId":"conversationthread-1725402903517815175","sortIndex":"7497969134259727904","content":{"entryType":"TimelineTimelineModule","__typename":"TimelineTimelineModule","items":[{"entryId":"conversationthread-34534534354535-tweetcomposer--1","item":{"itemContent":{"itemType":"TimelineTweetComposer","__typename":"TimelineTweetComposer","composerDisplayType":"SelfThread","composerButtonText":"Add another post","composerButtonUrl":{"url":"twitter://post?in_reply_to_status_id=34534534354535","urlType":"DeepLink"}}}}],"displayType":"VerticalConversation","clientEventInfo":{"details":{"conversationDetails":{"conversationSection":"HighQuality"}}}}}