mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 10:34:17 +00:00
160 lines
6.1 KiB
Plaintext
160 lines
6.1 KiB
Plaintext
---
|
|
id: music
|
|
title: MusicModel
|
|
sidebar_label: MusicModel
|
|
---
|
|
|
|
## MusicModel
|
|
|
|
The `MusicModel` class provides static methods for interacting with music-related data. It encapsulates various getters and setters for tracks, releases, library management, and search functionalities.
|
|
|
|
**Class Overview:**
|
|
|
|
The `MusicModel` class acts as a facade, providing a simplified interface to access and manipulate music data through its nested `Getters` and `Setters` classes.
|
|
|
|
### Static Properties
|
|
|
|
* `Getters`: An object containing static getter methods for retrieving music data.
|
|
* `Setters`: An object containing static setter methods for modifying music data.
|
|
|
|
### Track Related Methods
|
|
|
|
* `getAllTracks( { user_id, limit, page } )`
|
|
* Retrieves tracks for a given user.
|
|
* Parameters:
|
|
* `user_id`: *String* The ID of the user.
|
|
* `limit`: *Number* The number of tracks to retrieve per page.
|
|
* `page`: *Number* The page number to retrieve.
|
|
* Returns: *Promise[object]*
|
|
|
|
* `getTrackData(id: String, options: Object)`
|
|
* Retrieves data for a specific track.
|
|
* Parameters:
|
|
* `id`: *String* The ID of the track.
|
|
* `options`: *Object* Additional options for the request.
|
|
* Returns: *Promise[object]*
|
|
|
|
* `putTrack(track)`
|
|
* Creates/Updates a track.
|
|
* Parameters:
|
|
* `track`: *Object* The track object to create/update.
|
|
* Returns: *Promise[object]*
|
|
|
|
### Lyrics Related Methods
|
|
|
|
* `getTrackLyrics(id: String, options = { preferTranslation: false })`
|
|
* Retrieves lyrics for a specific track.
|
|
* Parameters:
|
|
* `id`: *String* The ID of the track.
|
|
* `options`: *Object*
|
|
* `preferTranslation`: *Boolean* If true, attempts to retrieve lyrics in the user's preferred language.
|
|
* Returns: *Promise[object]*
|
|
|
|
* `putTrackLyrics(track_id, data)`
|
|
* Updates lyrics for a specific track.
|
|
* Parameters:
|
|
* `track_id`: *String* The ID of the track.
|
|
* `data`: *Object* The lyrics data to update.
|
|
* Returns: *Promise[object]*
|
|
|
|
### Release Related Methods
|
|
|
|
* `getMyReleases({ limit, offset, keywords })`
|
|
* Retrieves the user's releases.
|
|
* Parameters:
|
|
* `limit`: *Number* The number of releases to retrieve.
|
|
* `offset`: *Number* The offset to start retrieving from.
|
|
* `keywords`: *String* Keywords to search for.
|
|
* Returns: *Promise[object]*
|
|
|
|
* `getAllReleases({ user_id, limit, page })`
|
|
* Retrieves releases for a given user.
|
|
* Parameters:
|
|
* `user_id`: *String* The ID of the user.
|
|
* `limit`: *Number* The number of releases to retrieve per page.
|
|
* `page`: *Number* The page number to retrieve.
|
|
* Returns: *Promise[object]*
|
|
|
|
* `getReleaseData(id: String)`
|
|
* Retrieves data for a specific release.
|
|
* Parameters:
|
|
* `id`: *String* The ID of the release.
|
|
* Returns: *Promise[object]*
|
|
|
|
* `putRelease(release)`
|
|
* Creates/Updates a release.
|
|
* Parameters:
|
|
* `release`: *Object* The release object to create/update.
|
|
* Returns: *Promise[object]*
|
|
|
|
* `deleteRelease(release_id)`
|
|
* Deletes a release.
|
|
* Parameters:
|
|
* `release_id`: *String* The ID of the release to delete.
|
|
* Returns: *Promise[object]*
|
|
|
|
### Library Related Methods
|
|
|
|
* `getMyLibrary({ limit = 100, offset = 0, order = "desc", kind })`
|
|
* Retrieves the user's music library.
|
|
* Parameters:
|
|
* `limit`: *Number* The number of items to retrieve.
|
|
* `offset`: *Number* The offset to start retrieving from.
|
|
* `order`: *String* The order to sort the items in ("asc" or "desc").
|
|
* `kind`: *String* Filter the library by kind (e.g., "track", "release").
|
|
* Returns: *Promise[object]*
|
|
|
|
* `toggleItemFavorite(type, item_id, to)`
|
|
* Toggles the favorite status of an item in the library.
|
|
* Parameters:
|
|
* `type`: *String* The type of item ("track", "release", etc.).
|
|
* `item_id`: *String* The ID of the item.
|
|
* `to`: *Boolean* Whether to add to favorites (true) or remove (false).
|
|
* Returns: *Promise[object]*
|
|
|
|
* `isItemFavorited(type, item_id)`
|
|
* Checks if an item is favorited in the library.
|
|
* Parameters:
|
|
* `type`: *String* The type of item ("track", "release", etc.).
|
|
* `item_id`: *String* The ID of the item.
|
|
* Returns: *Promise[object]*
|
|
|
|
### Other Methods
|
|
|
|
* `getRecentyPlayed(params)`
|
|
* Retrieves recently played tracks.
|
|
* Parameters:
|
|
* `params`: *Object* Additional parameters for the request.
|
|
* Returns: *Promise[object]*
|
|
|
|
* `search({ keywords, limit, offset })`
|
|
* Searches for music items.
|
|
* Parameters:
|
|
* `keywords`: *String* The search keywords.
|
|
* `limit`: *Number* The number of results to return.
|
|
* `offset`: *Number* The offset to start the search from.
|
|
* Returns: *Promise[object]*
|
|
|
|
### Aliases
|
|
|
|
* `toggleItemFavourite`: Alias for `toggleItemFavorite`.
|
|
* `isItemFavourited`: Alias for `isItemFavorited`.
|
|
|
|
### API Reference
|
|
|
|
* `getAllTracks( { user_id: String, limit: Number, page: Number } )`: *Promise[object]*
|
|
* `getTrackData(id: String, options: Object)`: *Promise[object]*
|
|
* `putTrack(track: Object)`: *Promise[object]*
|
|
* `getTrackLyrics(id: String, options: Object)`: *Promise[object]*
|
|
* `putTrackLyrics(track_id: String, data: Object)`: *Promise[object]*
|
|
* `getMyReleases({ limit: Number, offset: Number, keywords: String })`: *Promise[object]*
|
|
* `getAllReleases({ user_id: String, limit: Number, page: Number })`: *Promise[object]*
|
|
* `getReleaseData(id: String)`: *Promise[object]*
|
|
* `putRelease(release: Object)`: *Promise[object]*
|
|
* `deleteRelease(release_id: String)`: *Promise[object]*
|
|
* `getMyLibrary({ limit: Number, offset: Number, order: String, kind: String })`: *Promise[object]*
|
|
* `toggleItemFavorite(type: String, item_id: String, to: Boolean)`: *Promise[object]*
|
|
* `isItemFavorited(type: String, item_id: String)`: *Promise[object]*
|
|
* `getRecentyPlayed(params: Object)`: *Promise[object]*
|
|
* `search({ keywords: String, limit: Number, offset: Number })`: *Promise[object]*
|