2020-01-19 04:11:53 +02:00
|
|
|
package models
|
|
|
|
|
|
|
|
import (
|
2020-02-08 01:51:17 +02:00
|
|
|
res "../resources"
|
|
|
|
utils "../utils"
|
2020-01-19 04:11:53 +02:00
|
|
|
"encoding/json"
|
2020-01-20 19:42:34 +02:00
|
|
|
"os"
|
2020-01-19 04:11:53 +02:00
|
|
|
"strings"
|
|
|
|
)
|
|
|
|
|
|
|
|
// 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-02-08 01:51:17 +02:00
|
|
|
utils.Logf(res.ErrorCouldNotSerializeJSON, u.GetUploadID())
|
2020-01-20 19:42:34 +02:00
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Create the file
|
|
|
|
out, err := os.Create(outputPath)
|
2020-02-08 01:51:17 +02:00
|
|
|
utils.CheckErr(err)
|
2020-01-20 19:42:34 +02:00
|
|
|
defer out.Close()
|
|
|
|
|
|
|
|
// Write to file
|
|
|
|
_, err = out.Write(bytes)
|
2020-02-08 01:51:17 +02:00
|
|
|
utils.CheckErr(err)
|
2020-01-20 19:42:34 +02:00
|
|
|
}
|