Fix multiple images

This commit is contained in:
JP Hastings-Spital 2024-03-31 19:35:37 +01:00
parent 3297f5c35d
commit 9f8c504395
3 changed files with 20 additions and 12 deletions

View file

@ -72,7 +72,7 @@ type tweet struct {
MediaURL string `json:"media_url"` MediaURL string `json:"media_url"`
ExpandedURL string `json:"expanded_url"` ExpandedURL string `json:"expanded_url"`
} }
} `json:"entities"` } `json:"extended_entities"`
} `json:"tweet"` } `json:"tweet"`
} }
@ -212,7 +212,7 @@ func tweetToNote(t tweet, mediaMap map[string]string, outputDir string, selfUser
fm.Tags = append(fm.Tags, tag) fm.Tags = append(fm.Tags, tag)
return fmt.Sprintf("%s{{< friend \"%s\" >}}", before, name) return fmt.Sprintf("%s{{< friend \"%s\" >}}", before, name)
} else if prefix == "@" { } 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 == "#" { } else if prefix == "#" {
fm.Tags = append(fm.Tags, label) fm.Tags = append(fm.Tags, label)
return fmt.Sprintf("%s[%s](/tags/%s)", before, label, 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 // Add media
mp := getMediaPaths(t) mp := getMediaPaths(t)
i := 1 i := 1
for twitURL, zipPath := range mp { for twitURL, zipPaths := range mp {
ext := path.Ext(zipPath) var newImages string
hugoName := fmt.Sprintf("media-%d%s", i, ext)
hugoMedia := path.Join(postDir, hugoName) 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 = strings.Replace(
text, text,
fmt.Sprintf("[%s](%s)", twitURL, twitURL), fmt.Sprintf("[%s](%s)", twitURL, twitURL),
fmt.Sprintf(`{{< imgorvid src="%s" >}}`, hugoName), newImages,
1, 1,
) )
i++
} }
// Add date // Add date
@ -411,8 +416,9 @@ func untwitpic(url string, postDir string) (string, error) {
return fName, nil return fName, nil
} }
func getMediaPaths(t tweet) map[string]string { func getMediaPaths(t tweet) map[string][]string {
paths := make(map[string]string) paths := make(map[string][]string)
for _, m := range t.Tweet.Entities.Media { for _, m := range t.Tweet.Entities.Media {
partName := path.Base(m.MediaURL) partName := path.Base(m.MediaURL)
if strings.Contains(m.MediaURL, "/tweet_video_thumb/") { 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) 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 return paths
} }

View file

@ -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/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=