diff --git a/tools/archive/twitter/.hugo_build.lock b/tools/archive/twitter/.hugo_build.lock deleted file mode 100644 index e69de29b..00000000 diff --git a/tools/archive/twitter/main.go b/tools/archive/twitter/main.go index 0b626d31..8a4aeca0 100644 --- a/tools/archive/twitter/main.go +++ b/tools/archive/twitter/main.go @@ -72,7 +72,7 @@ type tweet struct { MediaURL string `json:"media_url"` ExpandedURL string `json:"expanded_url"` } - } `json:"entities"` + } `json:"extended_entities"` } `json:"tweet"` } @@ -212,7 +212,7 @@ func tweetToNote(t tweet, mediaMap map[string]string, outputDir string, selfUser fm.Tags = append(fm.Tags, tag) return fmt.Sprintf("%s{{< friend \"%s\" >}}", before, name) } else if prefix == "@" { - return fmt.Sprintf("%s[@%s](https://twitter.com/%s)", before, label, label) + return fmt.Sprintf("%s[@%s](/twitter/#/%s)", before, label, label) } else if prefix == "#" { fm.Tags = append(fm.Tags, label) return fmt.Sprintf("%s[%s](/tags/%s)", before, label, label) @@ -224,19 +224,24 @@ func tweetToNote(t tweet, mediaMap map[string]string, outputDir string, selfUser // Add media mp := getMediaPaths(t) i := 1 - for twitURL, zipPath := range mp { - ext := path.Ext(zipPath) - hugoName := fmt.Sprintf("media-%d%s", i, ext) - hugoMedia := path.Join(postDir, hugoName) + for twitURL, zipPaths := range mp { + var newImages string + + for _, zipPath := range zipPaths { + ext := path.Ext(zipPath) + hugoName := fmt.Sprintf("media-%d%s", i, ext) + newImages = fmt.Sprintf(`%s%s{{< imgorvid src="%s" >}}`, newImages, "\n", hugoName) + + mediaMap[zipPath] = path.Join(postDir, hugoName) + i++ + } - mediaMap[zipPath] = hugoMedia text = strings.Replace( text, fmt.Sprintf("[%s](%s)", twitURL, twitURL), - fmt.Sprintf(`{{< imgorvid src="%s" >}}`, hugoName), + newImages, 1, ) - i++ } // Add date @@ -411,8 +416,9 @@ func untwitpic(url string, postDir string) (string, error) { return fName, nil } -func getMediaPaths(t tweet) map[string]string { - paths := make(map[string]string) +func getMediaPaths(t tweet) map[string][]string { + paths := make(map[string][]string) + for _, m := range t.Tweet.Entities.Media { partName := path.Base(m.MediaURL) if strings.Contains(m.MediaURL, "/tweet_video_thumb/") { @@ -420,7 +426,8 @@ func getMediaPaths(t tweet) map[string]string { } fname := fmt.Sprintf("%s-%s", t.Tweet.ID, partName) - paths[m.ExpandedURL] = path.Join("data", "tweets_media", fname) + imgPath := path.Join("data", "tweets_media", fname) + paths[m.ExpandedURL] = append([]string{imgPath}, paths[m.ExpandedURL]...) } return paths } diff --git a/tools/go.work.sum b/tools/go.work.sum index 6aa0c94b..8f6e1ee1 100644 --- a/tools/go.work.sum +++ b/tools/go.work.sum @@ -1,3 +1,4 @@ +golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=