Deal with hashtags
This commit is contained in:
parent
d269b6a500
commit
582b3ac10a
@ -148,3 +148,13 @@ func FileExists(path string) (bool, error) {
|
|||||||
}
|
}
|
||||||
return true, err
|
return true, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CreateDirIfNotExist(path string) error {
|
||||||
|
fmt.Println("Making directory", path)
|
||||||
|
exist, _ := FileExists(path)
|
||||||
|
if exist {
|
||||||
|
fmt.Println("Path Exists")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return os.MkdirAll(path, os.ModePerm)
|
||||||
|
}
|
||||||
|
29
main.go
29
main.go
@ -75,18 +75,31 @@ func ProcessTimeline(httpClient *http.Client) error {
|
|||||||
|
|
||||||
for _, t := range tweets {
|
for _, t := range tweets {
|
||||||
for _, m := range t.Entities.Media {
|
for _, m := range t.Entities.Media {
|
||||||
filename := t.Text[:strings.LastIndex(t.Text, " ")]
|
var filenamePts []string
|
||||||
filename = strings.ReplaceAll(filename, " ", "_") + ".jpg"
|
txtPts := strings.Fields(t.Text)
|
||||||
|
var subFolder string
|
||||||
|
for _, v := range txtPts {
|
||||||
|
if strings.HasPrefix(v, "http") {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if v[0] == '#' {
|
||||||
|
if subFolder == "" {
|
||||||
|
subFolder = v[1:]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
filenamePts = append(filenamePts, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
filename := strings.Join(filenamePts, "_") + ".jpg"
|
||||||
create, err := t.CreatedAtTime()
|
create, err := t.CreatedAtTime()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
create = time.Now()
|
create = time.Now()
|
||||||
}
|
}
|
||||||
filename = create.Format("20060102T150405") + "_" + filename
|
filename = subFolder + "/" + create.Format("20060102T150405") + "_" + filename
|
||||||
if ImageNeedsDownload(filename) || appConfig.ForceDownload {
|
if ImageNeedsDownload(filename) || appConfig.ForceDownload {
|
||||||
err = DownloadImage(httpClient, m.MediaURLHttps, filename)
|
err = DownloadImage(httpClient, m.MediaURLHttps, filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
PrintIfVerbose("Error downloading image (", m.MediaURLHttps, ")", err.Error(), "\n")
|
PrintIfVerbose("Error downloading image (", m.MediaURLHttps, ")", err.Error(), "\n")
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -103,6 +116,14 @@ func ImageNeedsDownload(filename string) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func DownloadImage(httpClient *http.Client, url, filename string) error {
|
func DownloadImage(httpClient *http.Client, url, filename string) error {
|
||||||
|
pts := strings.FieldsFunc(filename, func(c rune) bool { return c == '/' })
|
||||||
|
if len(pts) > 1 {
|
||||||
|
err := CreateDirIfNotExist(appConfig.GetFilePath(pts[0]))
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err.Error())
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
fmt.Println("Downloading ", url, " -> ", filename, "...")
|
fmt.Println("Downloading ", url, " -> ", filename, "...")
|
||||||
imgResp, err := httpClient.Get(url)
|
imgResp, err := httpClient.Get(url)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user