diff --git a/timeline.go b/timeline.go index be8cdfe..22299b1 100644 --- a/timeline.go +++ b/timeline.go @@ -30,10 +30,15 @@ type timeline struct { } `json:"entities"` ExtendedEntities struct { Media []struct { - IDStr string `json:"id_str"` - MediaURLHttps string `json:"media_url_https"` - Type string `json:"type"` - VideoInfo struct { + IDStr string `json:"id_str"` + MediaURLHttps string `json:"media_url_https"` + ExtSensitiveMediaWarning struct { + AdultContent bool `json:"adult_content"` + GraphicViolence bool `json:"graphic_violence"` + Other bool `json:"other"` + } `json:"ext_sensitive_media_warning"` + Type string `json:"type"` + VideoInfo struct { Variants []struct { Bitrate int `json:"bitrate,omitempty"` URL string `json:"url"` @@ -211,9 +216,16 @@ func (timeline *timeline) parseTweet(id string) *Tweet { maxBitrate = variant.Bitrate } } + tw.Videos = append(tw.Videos, video) } + + if !tw.SensitiveContent { + sensitive := media.ExtSensitiveMediaWarning + tw.SensitiveContent = sensitive.AdultContent || sensitive.GraphicViolence || sensitive.Other + } } + for _, url := range tweet.Entities.URLs { tw.URLs = append(tw.URLs, url.ExpandedURL) } diff --git a/types.go b/types.go index 6055453..9c5b0fe 100644 --- a/types.go +++ b/types.go @@ -12,29 +12,30 @@ type ( // Tweet type. Tweet struct { - Hashtags []string - HTML string - ID string - InReplyToStatus *Tweet - IsQuoted bool - IsPin bool - IsReply bool - IsRetweet bool - Likes int - PermanentURL string - Photos []string - Place *Place - QuotedStatus *Tweet - Replies int - Retweets int - RetweetedStatus *Tweet - Text string - TimeParsed time.Time - Timestamp int64 - URLs []string - UserID string - Username string - Videos []Video + Hashtags []string + HTML string + ID string + InReplyToStatus *Tweet + IsQuoted bool + IsPin bool + IsReply bool + IsRetweet bool + Likes int + PermanentURL string + Photos []string + Place *Place + QuotedStatus *Tweet + Replies int + Retweets int + RetweetedStatus *Tweet + Text string + TimeParsed time.Time + Timestamp int64 + URLs []string + UserID string + Username string + Videos []Video + SensitiveContent bool } // ProfileResult of scrapping.