Change profile image downloading to use tiny profile image if appropriate
This commit is contained in:
parent
2210b61b3c
commit
f25f1ae024
10
cmd/tests.sh
10
cmd/tests.sh
@ -108,6 +108,16 @@ test $(sqlite3 twitter.db "select reply_mentions from tweets where id = 14295854
|
|||||||
test $(sqlite3 twitter.db "select reply_mentions from tweets where id = 1429616911315345414") = "RememberAfghan1,michaelmalice"
|
test $(sqlite3 twitter.db "select reply_mentions from tweets where id = 1429616911315345414") = "RememberAfghan1,michaelmalice"
|
||||||
|
|
||||||
|
|
||||||
|
# Test that profile images (tiny vs regular) are chosen properly
|
||||||
|
test $(sqlite3 twitter.db "select is_content_downloaded from users where handle = 'Cernovich'") = "1"
|
||||||
|
test $(find profile_images/Cernovich* | grep normal | wc -l) = "0" # Since "Cernovich" was fetched directly, should have full-sized profile image and banner
|
||||||
|
test $(find profile_images/Cernovich* | grep banner | wc -l) = "1"
|
||||||
|
|
||||||
|
test $(sqlite3 twitter.db "select is_content_downloaded from users where handle = 'RememberAfghan1'") = "0"
|
||||||
|
test $(find profile_images/RememberAfghan1* | grep normal | wc -l) = "1" # "RememberAfghan1" was fetched via a tweet thread and isn't followed, so should have tiny profile image and no banner
|
||||||
|
test $(find profile_images/RememberAfghan1* | grep banner | wc -l) = "0"
|
||||||
|
|
||||||
|
|
||||||
# Test that the `--profile` flag works
|
# Test that the `--profile` flag works
|
||||||
cd ..
|
cd ..
|
||||||
tw --profile data fetch_user elonmusk
|
tw --profile data fetch_user elonmusk
|
||||||
|
@ -170,6 +170,21 @@ func (p Profile) DownloadUserContentWithInjector(u *scraper.User, downloader Med
|
|||||||
return p.SaveUser(*u)
|
return p.SaveUser(*u)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Download a User's tiny profile image, if it hasn't been downloaded yet.
|
||||||
|
* If it has been downloaded, do nothing.
|
||||||
|
*/
|
||||||
|
func (p Profile) DownloadUserProfileImageTiny(u scraper.User) error {
|
||||||
|
d := DefaultDownloader{}
|
||||||
|
|
||||||
|
outfile := path.Join(p.ProfileDir, "profile_images", u.GetTinyProfileImageLocalPath())
|
||||||
|
if file_exists(outfile) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
err := d.Curl(u.GetTinyProfileImageUrl(), outfile)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Download a User's content, if needed.
|
* Download a User's content, if needed.
|
||||||
@ -180,7 +195,12 @@ func (p Profile) DownloadUserContentIfNeeded(u *scraper.User) (bool, error) {
|
|||||||
if !p.CheckUserContentDownloadNeeded(*u) {
|
if !p.CheckUserContentDownloadNeeded(*u) {
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
return true, p.DownloadUserContentFor(u)
|
if p.IsFollowing(u.Handle) {
|
||||||
|
// TODO: this might not be necessary? When would someone be followed but content not downloaded?
|
||||||
|
return true, p.DownloadUserContentFor(u)
|
||||||
|
} else {
|
||||||
|
return true, p.DownloadUserProfileImageTiny(*u)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -160,3 +160,7 @@ func (u User) GetTinyProfileImageUrl() string {
|
|||||||
}
|
}
|
||||||
return r.ReplaceAllString(u.ProfileImageUrl, "_normal$1")
|
return r.ReplaceAllString(u.ProfileImageUrl, "_normal$1")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (u User) GetTinyProfileImageLocalPath() string {
|
||||||
|
return string(u.Handle) + "_profile_" + path.Base(u.GetTinyProfileImageUrl())
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user