REFACTOR: use a switch statement to add clarity for parsing non-tweet timeline entries

This commit is contained in:
Alessio 2023-06-08 20:43:07 -03:00
parent 6192c37999
commit d78f9c004d

View File

@ -384,15 +384,23 @@ func (e APIV2Entry) ToTweetTrove(ignore_null_entries bool) TweetTrove {
} else if e.Content.EntryType == "TimelineTimelineModule" { } else if e.Content.EntryType == "TimelineTimelineModule" {
ret := NewTweetTrove() ret := NewTweetTrove()
// If it's a "Who To Follow", ignore it (return empty tweet trove) switch strings.Split(e.EntryID, "-")[0] {
if !strings.HasPrefix(e.EntryID, "homeConversation-") { case "homeConversation":
log.Warn("Skipping entry with EntryID " + e.EntryID) // Process it
return ret for _, item := range e.Content.Items {
ret.MergeWith(item.Item.ItemContent.TweetResults.ToTweetTrove(ignore_null_entries))
}
case "whoToFollow":
case "TopicsModule":
// Ignore "Who to follow" and "Topics" modules.
// TODO: maybe we can capture these eventually
log.Debug(fmt.Sprintf("Skipping %s entry", e.EntryID))
default:
log.Warn("TimelineTimelineModule with unknown EntryID: " + e.EntryID)
} }
for _, item := range e.Content.Items {
ret.MergeWith(item.Item.ItemContent.TweetResults.ToTweetTrove(ignore_null_entries))
}
return ret return ret
} else if e.Content.EntryType == "TimelineTimelineItem" { } else if e.Content.EntryType == "TimelineTimelineItem" {
return e.Content.ItemContent.TweetResults.ToTweetTrove(ignore_null_entries) return e.Content.ItemContent.TweetResults.ToTweetTrove(ignore_null_entries)