Skip to content

Commit

Permalink
Expand Tidal structs and object error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
JoshuaDoes committed Jul 15, 2023
1 parent 443c27e commit 9388473
Show file tree
Hide file tree
Showing 2 changed files with 185 additions and 121 deletions.
36 changes: 28 additions & 8 deletions builders.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,10 +90,13 @@ func GetObjectLive(mediaURI string) (obj *Object) {
resultsJSON, err := json.Marshal(results)
if err != nil {
Error.Printf("Unable to marshal search results: %v\n", err)
return
return NewObjError(fmt.Sprintf("invalid search %s: %v", query, err))
}

obj.Object.UnmarshalJSON(resultsJSON)
if err := obj.Object.UnmarshalJSON(resultsJSON); err != nil {
Error.Printf("Unable to unmarshal search results: %v\n", err)
return NewObjError(fmt.Sprintf("invalid search %s: %v", query, err))
}
return
}

Expand All @@ -105,45 +108,62 @@ func GetObjectLive(mediaURI string) (obj *Object) {
case "artist", "creator", "user", "channel", "chan", "streamer":
creator, err := handler.Creator(id)
if err != nil {
Error.Printf("Invalid creator %s: %v\n", id, err)
return NewObjError(fmt.Sprintf("invalid creator %s: %v", id, err))
}
obj.Type = "creator"
creatorJSON, err := json.Marshal(creator)
if err != nil {
Error.Printf("Unable to marshal creator: %v\n", err)
return
return NewObjError(fmt.Sprintf("invalid creator %s: %v", id, err))
}
if err := obj.Object.UnmarshalJSON(creatorJSON); err != nil {
Error.Printf("Unable to unmarshal creator: %v\n", err)
return NewObjError(fmt.Sprintf("invalid creator %s: %v", id, err))
}
obj.Object.UnmarshalJSON(creatorJSON)
case "album":
Trace.Printf("Searching for album %s\n", mediaURI)
album, err := handler.Album(id)
if err != nil {
Error.Printf("Invalid album %s: %v\n", id, err)
return NewObjError(fmt.Sprintf("invalid album %s: %v", id, err))
}
Trace.Printf("Found album %s\n", mediaURI)
obj.Type = "album"
albumJSON, err := json.Marshal(album)
if err != nil {
Error.Printf("Unable to marshal album: %v\n", err)
return
return NewObjError(fmt.Sprintf("invalid album %s: %v", id, err))
}
obj.Object.UnmarshalJSON(albumJSON)
if err := obj.Object.UnmarshalJSON(albumJSON); err != nil {
Error.Printf("Unable to unmarshal album: %v\n", err)
return NewObjError(fmt.Sprintf("invalid album %s: %v", id, err))
}
Trace.Printf("Successfully loaded album %s\n", mediaURI)
case "track", "song", "video", "audio", "stream":
stream, err := handler.Stream(id)
if err != nil {
Error.Printf("Invalid stream %s: %v\n", id, err)
return NewObjError(fmt.Sprintf("invalid stream %s: %v", id, err))
}
obj.Type = "stream"
stream.Transcribe()
streamJSON, err := json.Marshal(stream)
if err != nil {
Error.Printf("Unable to marshal stream: %v\n", err)
return
return NewObjError(fmt.Sprintf("invalid stream %s: %v", id, err))
}
if err := obj.Object.UnmarshalJSON(streamJSON); err != nil {
Error.Printf("Unable to unmarshal stream: %v\n", err)
return NewObjError(fmt.Sprintf("invalid stream %s: %v", id, err))
}
obj.Object.UnmarshalJSON(streamJSON)
}

Info.Printf("Successfully found live object for %s\n", mediaURI)
return obj
}
}

Error.Printf("Failed to find live object for %s\n", mediaURI)
return nil
}
Loading

0 comments on commit 9388473

Please sign in to comment.