Add remaining model types and client methods
Models added: - Disclaimer, ForeignAgent (credits.go) - ArtistConcerts (concert.go) - Dashboard, StationResult, Station, AdParams, GenerativeStream, GenerativeStreamData, GenerativeStreamInfo (radio.go) - FileInfo, FileDownloadInfo, TrackFullInfo, SimilarTracks, TrackTrailer (track.go) - Removed duplicate AdParams from feed.go Client methods added: - artists.go: GetArtistBriefInfo, GetArtistSimilar, GetArtistLinks, GetArtistAlsoAlbums, GetArtistDiscographyAlbums, GetArtistSafeDirectAlbums, GetArtistTrackIds, GetArtistAbout, GetArtistDonation, GetArtistInfo, GetArtistSkeleton, GetArtistTrailer - albums.go: GetAlbumSimilarEntities, GetAlbumTrailer - clips.go: GetClipsDisclaimer - concerts.go: GetArtistConcerts, GetConcertSkeleton - radio.go: GetRotorStationsDashboard, GetRotorStationsList, GetRotorStationInfo, GetRotorStationStream, GetRotorStationSettings - supplements.go: GetTracksCredits, GetClipsCredits - queue.go: GetQueuesList - tracks.go: GetTracksFileInfo, GetTracksSimilar, GetTrackTrailer, GetTrackFullInfo
This commit is contained in:
1 parent
49920d8908
commit
73775a8526
9 files changed
+639
-7
No files matched your search
@@ -52,6 +52,16 @@ func (c *Client) GetArtistClips(ctx context.Context, artistID string) (*models.A
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// GetClipsDisclaimer gets clips disclaimer (GET /clips/{id}/disclaimer).
|
||||
func (c *Client) GetClipsDisclaimer(ctx context.Context, clipID string) (*models.Disclaimer, error) {
|
||||
var result models.Disclaimer
|
||||
if err := c.request.Get(ctx, fmt.Sprintf("/clips/%s/disclaimer", clipID), nil, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.SetClient(c)
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// GetShots gets shots with pagination (GET /shots).
|
||||
func (c *Client) GetShots(ctx context.Context, page, pageSize int) ([]*models.Shot, error) {
|
||||
params := map[string]string{
|
||||
|
||||
@@ -63,3 +63,23 @@ func (c *Client) GetConcertTabs(ctx context.Context) (*models.ConcertTabConfig,
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// GetArtistConcerts gets concerts by artist (GET /artists/{id}/concerts).
|
||||
func (c *Client) GetArtistConcerts(ctx context.Context, artistID string) (*models.ArtistConcerts, error) {
|
||||
var result models.ArtistConcerts
|
||||
if err := c.request.Get(ctx, fmt.Sprintf("/artists/%s/concerts", artistID), nil, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.SetClient(c)
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// GetConcertSkeleton gets concert skeleton (GET /concerts/{id}/skeletons/{skeleton_id}).
|
||||
func (c *Client) GetConcertSkeleton(ctx context.Context, concertID, skeletonID string) (*models.ConcertSkeleton, error) {
|
||||
var result models.ConcertSkeleton
|
||||
if err := c.request.Get(ctx, fmt.Sprintf("/concerts/%s/skeletons/%s", concertID, skeletonID), nil, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.SetClient(c)
|
||||
return &result, nil
|
||||
}
|
||||
@@ -7,6 +7,21 @@ import (
|
||||
"gitea.mrixs.me/Mrixs/yandex-music-api-go/internal/models"
|
||||
)
|
||||
|
||||
// GetQueuesList gets the queues list (GET /queues).
|
||||
func (c *Client) GetQueuesList(ctx context.Context) ([]*models.QueueItem, error) {
|
||||
var result []models.QueueItem
|
||||
if err := c.request.Get(ctx, "/queues", nil, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
items := make([]*models.QueueItem, len(result))
|
||||
for i := range result {
|
||||
result[i].SetClient(c)
|
||||
items[i] = &result[i]
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
// GetQueue gets the current queue
|
||||
func (c *Client) GetQueue(ctx context.Context) (*models.Queue, error) {
|
||||
var result models.Queue
|
||||
|
||||
@@ -121,3 +121,61 @@ func (c *Client) RotorSessionFeedback(ctx context.Context, sessionID, trackID, f
|
||||
var result map[string]any
|
||||
return c.request.Post(ctx, fmt.Sprintf("/rotor/station/%s/feedback", sessionID), params, &result)
|
||||
}
|
||||
|
||||
// GetRotorStationsDashboard gets rotor stations dashboard (GET /rotor/stations/dashboard).
|
||||
func (c *Client) GetRotorStationsDashboard(ctx context.Context) (*models.Dashboard, error) {
|
||||
var result models.Dashboard
|
||||
if err := c.request.Get(ctx, "/rotor/stations/dashboard", nil, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.SetClient(c)
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// GetRotorStationsList gets rotor stations list (GET /rotor/stations/list).
|
||||
func (c *Client) GetRotorStationsList(ctx context.Context) ([]*models.StationResult, error) {
|
||||
var result []models.StationResult
|
||||
if err := c.request.Get(ctx, "/rotor/stations/list", nil, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
stations := make([]*models.StationResult, len(result))
|
||||
for i := range result {
|
||||
result[i].SetClient(c)
|
||||
stations[i] = &result[i]
|
||||
}
|
||||
return stations, nil
|
||||
}
|
||||
|
||||
// GetRotorStationInfo gets rotor station info (GET /rotor/station/{id}/info).
|
||||
func (c *Client) GetRotorStationInfo(ctx context.Context, stationID string) (*models.RotorStation, error) {
|
||||
var result models.RotorStation
|
||||
if err := c.request.Get(ctx, fmt.Sprintf("/rotor/station/%s/info", stationID), nil, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.SetClient(c)
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// GetRotorStationStream gets rotor station stream (GET /rotor/station/{id}/stream).
|
||||
func (c *Client) GetRotorStationStream(ctx context.Context, stationID string) (*models.GenerativeStream, error) {
|
||||
var result models.GenerativeStream
|
||||
if err := c.request.Get(ctx, fmt.Sprintf("/rotor/station/%s/stream", stationID), nil, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.SetClient(c)
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// GetRotorStationSettings gets rotor station settings (POST /rotor/station/{id}/settings3).
|
||||
func (c *Client) GetRotorStationSettings(ctx context.Context, stationID string, moodEnergy, diversity, language string) (bool, error) {
|
||||
params := map[string]string{
|
||||
"mood-energy": moodEnergy,
|
||||
"diversity": diversity,
|
||||
"language": language,
|
||||
}
|
||||
var result bool
|
||||
if err := c.request.Post(ctx, fmt.Sprintf("/rotor/station/%s/settings3", stationID), params, &result); err != nil {
|
||||
return false, err
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
@@ -129,6 +129,26 @@ type Sign struct {
|
||||
Value string
|
||||
}
|
||||
|
||||
// GetTracksCredits gets track credits (GET /tracks/{id}/credits).
|
||||
func (c *Client) GetTracksCredits(ctx context.Context, trackID string) (*models.Credits, error) {
|
||||
var result models.Credits
|
||||
if err := c.request.Get(ctx, fmt.Sprintf("/tracks/%s/credits", trackID), nil, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.SetClient(c)
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// GetClipsCredits gets clip credits (GET /clips/{id}/credits).
|
||||
func (c *Client) GetClipsCredits(ctx context.Context, clipID string) (*models.Credits, error) {
|
||||
var result models.Credits
|
||||
if err := c.request.Get(ctx, fmt.Sprintf("/clips/%s/credits", clipID), nil, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.SetClient(c)
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// GetSignRequest creates a signature for a track request (exported for external use).
|
||||
// It delegates to utils.GetSignRequest with the default signing key.
|
||||
func GetSignRequest(trackID string) Sign {
|
||||
|
||||
Reference in new issue
Block a user