From 5a4da5857299c4276ca3d173ee9873e0c68d0b31 Mon Sep 17 00:00:00 2001 From: Alessio Date: Tue, 21 Dec 2021 21:29:27 -0500 Subject: [PATCH] Add conditional downloading for user content --- cmd/twitter/main.go | 20 +++++++++++--------- persistence/media_download.go | 14 ++++++++++++++ 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/cmd/twitter/main.go b/cmd/twitter/main.go index 2606150..87ccc25 100644 --- a/cmd/twitter/main.go +++ b/cmd/twitter/main.go @@ -157,15 +157,16 @@ func fetch_tweet_conversation(tweet_identifier string) { } for _, u := range users { - // fmt.Println(u) + fmt.Println(u.Handle) + _, err = profile.DownloadUserContentIfNeeded(&u) + if err != nil { + die("Error getting user content: " + err.Error(), false, 10) + } + err = profile.SaveUser(u) if err != nil { die("Error saving user: " + err.Error(), false, 4) } - err = profile.DownloadUserContentFor(&u) - if err != nil { - die("Error getting user content: " + err.Error(), false, 10) - } } for _, t := range tweets { @@ -200,14 +201,15 @@ func fetch_user_feed(handle string, how_many int) { } for _, u := range users { + fmt.Println(u.Handle) + _, err = profile.DownloadUserContentIfNeeded(&u) + if err != nil { + die("Error getting user content: " + err.Error(), false, 10) + } err = profile.SaveUser(u) if err != nil { die("Error saving user: " + err.Error(), false, 4) } - err = profile.DownloadUserContentFor(&u) - if err != nil { - die("Error getting user content: " + err.Error(), false, 10) - } } for _, t := range tweets { diff --git a/persistence/media_download.go b/persistence/media_download.go index f8cf79d..e31f8d2 100644 --- a/persistence/media_download.go +++ b/persistence/media_download.go @@ -162,3 +162,17 @@ func (p Profile) DownloadUserContentWithInjector(u *scraper.User, downloader Med u.IsContentDownloaded = true return p.SaveUser(*u) } + + +/** + * Download a User's content, if needed. + * + * Returns whether anything was downloaded or not. + */ +func (p Profile) DownloadUserContentIfNeeded(u *scraper.User) (bool, error) { + if !p.CheckUserContentDownloadNeeded(*u) { + return false, nil + } + return true, p.DownloadUserContentFor(u) + +}