move manifest error field check out

This commit is contained in:
tocariimaa 2024-12-31 13:56:35 -03:00
parent 05370ac335
commit 39164960de
2 changed files with 16 additions and 8 deletions

14
main.go
View file

@ -63,7 +63,13 @@ func getUgoira(postId PostId, flags CliFlags) {
die("error while fetching manifest: %s", err) die("error while fetching manifest: %s", err)
} }
// Now decode the JSON... // Now decode the JSON...
manifest := decodeUgoiraManifest(manifestJsonData) manifest, err := decodeUgoiraManifest(manifestJsonData)
if err != nil {
die("%s", err)
}
if manifest.Error {
die("Manifest returned error: %s", manifest.Message)
}
if len(manifest.Body.OriginalSrc) == 0 { if len(manifest.Body.OriginalSrc) == 0 {
die("Ugoira url is empty") die("Ugoira url is empty")
} }
@ -150,7 +156,11 @@ func ugoira2videoCmd(args []string, flags CliFlags) {
die("Could not read manifest: %s", err) die("Could not read manifest: %s", err)
} }
err = ugoira2video(decodeUgoiraManifest(manifestData), ugoiraFileName, flags.outputFileName, flags.ffmpegArgs) manifest, err := decodeUgoiraManifest(manifestData)
if err != nil {
die("%s", err)
}
err = ugoira2video(manifest, ugoiraFileName, flags.outputFileName, flags.ffmpegArgs)
if err != nil { if err != nil {
die("Conversion failed: %s", err) die("Conversion failed: %s", err)
} }

View file

@ -2,6 +2,7 @@ package main
import ( import (
"encoding/json" "encoding/json"
"fmt"
) )
type UgoiraManifestFrame struct { type UgoiraManifestFrame struct {
@ -22,13 +23,10 @@ type UgoiraManifest struct {
Body UgoiraManifestBodyDesc `json:"body"` Body UgoiraManifestBodyDesc `json:"body"`
} }
func decodeUgoiraManifest(jsonData []byte) UgoiraManifest { func decodeUgoiraManifest(jsonData []byte) (UgoiraManifest, error) {
var manifest UgoiraManifest var manifest UgoiraManifest
if err := json.Unmarshal(jsonData, &manifest); err != nil { if err := json.Unmarshal(jsonData, &manifest); err != nil {
die("Could not parse manifest JSON: %s", err) return manifest, fmt.Errorf("Could not decode manifest JSON: %w", err)
} }
if manifest.Error { return manifest, nil
die("Manifest returned error: %s", manifest.Message)
}
return manifest
} }