offline-twitter/scraper/tweet_trove.go
2022-01-30 15:44:26 -08:00

49 lines
1.0 KiB
Go

package scraper
type TweetTrove struct {
Tweets map[TweetID]Tweet
Users map[UserID]User
Retweets map[TweetID]Retweet
}
func NewTweetTrove() TweetTrove {
ret := TweetTrove{}
ret.Tweets = make(map[TweetID]Tweet)
ret.Users = make(map[UserID]User)
ret.Retweets = make(map[TweetID]Retweet)
return ret
}
/**
* Make it compatible with previous silly interface if needed
*/
func (trove TweetTrove) Transform() (tweets []Tweet, retweets []Retweet, users []User) {
for _, val := range trove.Tweets {
tweets = append(tweets, val)
}
for _, val := range trove.Users {
users = append(users, val)
}
for _, val := range trove.Retweets {
retweets = append(retweets, val)
}
return
} // TODO: refactor until this function isn't needed anymore
/**
* Combine two troves into one
*/
func (t1 *TweetTrove) MergeWith(t2 TweetTrove) {
for id, val := range t2.Tweets {
t1.Tweets[id] = val
}
for id, val := range t2.Users {
t1.Users[id] = val
}
for id, val := range t2.Retweets {
t1.Retweets[id] = val
}
}