2020-01-19 04:11:53 +02:00
|
|
|
package models
|
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
2020-01-20 19:42:34 +02:00
|
|
|
"os"
|
2020-01-19 04:11:53 +02:00
|
|
|
"strings"
|
2020-03-22 02:10:24 +02:00
|
|
|
|
|
|
|
res "../resources"
|
|
|
|
checkErr "../utils/checkErr"
|
|
|
|
log "../utils/log"
|
2020-01-19 04:11:53 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
// Upload - Upload object
|
|
|
|
type Upload struct {
|
|
|
|
URL string `json:"url"`
|
2020-01-20 19:42:34 +02:00
|
|
|
ShareLink string `json:"shareLink"`
|
|
|
|
Caption string `json:"caption"`
|
2020-01-26 19:44:25 +02:00
|
|
|
Uploader string `json:"uploader"`
|
2020-01-20 19:42:34 +02:00
|
|
|
Sound Sound `json:"sound"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// Sound - Sound object
|
|
|
|
type Sound struct {
|
|
|
|
Title string `json:"title"`
|
|
|
|
Link string `json:"link"`
|
2020-01-19 04:11:53 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// ParseUploads - Parses json uploads array
|
|
|
|
func ParseUploads(str string) []Upload {
|
|
|
|
var uploads []Upload
|
|
|
|
json.Unmarshal([]byte(str), &uploads)
|
|
|
|
return uploads
|
|
|
|
}
|
|
|
|
|
2020-01-19 17:54:16 +02:00
|
|
|
// ParseUpload - Parses json uploads array
|
|
|
|
func ParseUpload(str string) Upload {
|
|
|
|
var upload Upload
|
|
|
|
json.Unmarshal([]byte(str), &upload)
|
|
|
|
return upload
|
|
|
|
}
|
|
|
|
|
2020-01-19 04:11:53 +02:00
|
|
|
// GetUploadID - Returns upload id
|
|
|
|
func (u Upload) GetUploadID() string {
|
|
|
|
parts := strings.Split(u.ShareLink, "/")
|
|
|
|
return parts[len(parts)-1]
|
|
|
|
}
|
2020-01-20 19:42:34 +02:00
|
|
|
|
|
|
|
// WriteToFile - Writes object to file
|
|
|
|
func (u Upload) WriteToFile(outputPath string) {
|
|
|
|
bytes, err := json.Marshal(u)
|
|
|
|
if err != nil {
|
2020-03-22 02:10:24 +02:00
|
|
|
log.Logf(res.ErrorCouldNotSerializeJSON, u.GetUploadID())
|
2020-01-20 19:42:34 +02:00
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Create the file
|
|
|
|
out, err := os.Create(outputPath)
|
2020-03-22 02:10:24 +02:00
|
|
|
checkErr.CheckErr(err)
|
2020-01-20 19:42:34 +02:00
|
|
|
defer out.Close()
|
|
|
|
|
|
|
|
// Write to file
|
|
|
|
_, err = out.Write(bytes)
|
2020-03-22 02:10:24 +02:00
|
|
|
checkErr.CheckErr(err)
|
2020-01-20 19:42:34 +02:00
|
|
|
}
|