check tweets for sensitive content

This commit is contained in:
vtgare 2022-03-04 20:15:29 +02:00
parent e6ddf32a93
commit cd161d56db
3 changed files with 41 additions and 28 deletions

2
api.go
View file

@ -8,7 +8,7 @@ import (
"time" "time"
) )
const bearerToken string = "AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA" const bearerToken string = "AAAAAAAAAAAAAAAAAAAAAPYXBAAAAAAACLXUNDekMxqa8h%2F40K4moUkGsoc%3DTYfbDKbT3jJPCEVnMYqilB28NHfOPqkca3qaAxGfsyKCs0wRbw"
// RequestAPI get JSON from frontend API and decodes it // RequestAPI get JSON from frontend API and decodes it
func (s *Scraper) RequestAPI(req *http.Request, target interface{}) error { func (s *Scraper) RequestAPI(req *http.Request, target interface{}) error {

View file

@ -32,6 +32,11 @@ type timeline struct {
Media []struct { Media []struct {
IDStr string `json:"id_str"` IDStr string `json:"id_str"`
MediaURLHttps string `json:"media_url_https"` 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"` Type string `json:"type"`
VideoInfo struct { VideoInfo struct {
Variants []struct { Variants []struct {
@ -211,9 +216,16 @@ func (timeline *timeline) parseTweet(id string) *Tweet {
maxBitrate = variant.Bitrate maxBitrate = variant.Bitrate
} }
} }
tw.Videos = append(tw.Videos, video) 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 { for _, url := range tweet.Entities.URLs {
tw.URLs = append(tw.URLs, url.ExpandedURL) tw.URLs = append(tw.URLs, url.ExpandedURL)
} }

View file

@ -35,6 +35,7 @@ type (
UserID string UserID string
Username string Username string
Videos []Video Videos []Video
SensitiveContent bool
} }
// ProfileResult of scrapping. // ProfileResult of scrapping.