javascript-ampache 1.0.8 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -47
- package/dist/base.d.ts +6 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.m.js +1 -1
- package/dist/index.m.js.map +1 -1
- package/dist/index.modern.mjs +1 -1
- package/dist/index.modern.mjs.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +38 -38
- package/src/albums/index.ts +86 -86
- package/src/albums/types.ts +38 -32
- package/src/artists/index.ts +88 -88
- package/src/artists/types.ts +38 -32
- package/src/auth/index.ts +103 -103
- package/src/auth/types.ts +25 -25
- package/src/base.ts +134 -97
- package/src/bookmarks/index.ts +115 -122
- package/src/bookmarks/types.ts +15 -9
- package/src/catalogs/index.ts +130 -119
- package/src/catalogs/types.ts +27 -15
- package/src/genres/index.ts +39 -40
- package/src/genres/types.ts +23 -17
- package/src/index.ts +63 -26
- package/src/labels/index.ts +43 -44
- package/src/labels/types.ts +20 -14
- package/src/licenses/index.ts +43 -44
- package/src/licenses/types.ts +14 -8
- package/src/live-streams/index.ts +104 -107
- package/src/live-streams/types.ts +16 -10
- package/src/playlists/index.ts +264 -269
- package/src/playlists/types.ts +20 -14
- package/src/podcasts/index.ts +174 -177
- package/src/podcasts/types.ts +85 -67
- package/src/preferences/index.ts +114 -116
- package/src/preferences/types.ts +18 -12
- package/src/shares/index.ts +100 -96
- package/src/shares/types.ts +25 -19
- package/src/shouts/index.ts +18 -22
- package/src/shouts/types.ts +9 -9
- package/src/songs/index.ts +208 -203
- package/src/songs/types.ts +77 -65
- package/src/system/index.ts +689 -572
- package/src/system/types.ts +33 -19
- package/src/users/index.ts +227 -245
- package/src/users/types.ts +38 -32
- package/src/utils.ts +25 -25
- package/src/videos/index.ts +49 -53
- package/src/videos/types.ts +42 -30
package/package.json
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "javascript-ampache",
|
|
3
|
-
"version": "1.0
|
|
4
|
-
"description": "A JS library for the Ampache API",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"module": "dist/index.m.js",
|
|
7
|
-
"umd:main": "dist/index.umd.js",
|
|
8
|
-
"source": "src/index.ts",
|
|
9
|
-
"repository": "github:mitchray/javascript-ampache",
|
|
10
|
-
"scripts": {
|
|
11
|
-
"build": "rimraf dist && microbundle --tsconfig tsconfig.json",
|
|
12
|
-
"dev": "microbundle watch --tsconfig tsconfig.json",
|
|
13
|
-
"test": "jest"
|
|
14
|
-
},
|
|
15
|
-
"devDependencies": {
|
|
16
|
-
"@types/jest": "^25.2.3",
|
|
17
|
-
"isomorphic-unfetch": "^3.1.0",
|
|
18
|
-
"jest": "^29.3.1",
|
|
19
|
-
"jssha": "^3.3.0",
|
|
20
|
-
"microbundle": "^0.15.1",
|
|
21
|
-
"nock": "^13.0.0",
|
|
22
|
-
"querystringify": "2.2.0",
|
|
23
|
-
"rimraf": "^5.0.0"
|
|
24
|
-
},
|
|
25
|
-
"keywords": [
|
|
26
|
-
"ampache",
|
|
27
|
-
"javascript",
|
|
28
|
-
"typescript",
|
|
29
|
-
"api",
|
|
30
|
-
"js"
|
|
31
|
-
],
|
|
32
|
-
"author": "mitchray (https://github.com/mitchray)",
|
|
33
|
-
"license": "GPL-3.0-only",
|
|
34
|
-
"files": [
|
|
35
|
-
"src",
|
|
36
|
-
"dist"
|
|
37
|
-
]
|
|
38
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "javascript-ampache",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "A JS library for the Ampache API",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.m.js",
|
|
7
|
+
"umd:main": "dist/index.umd.js",
|
|
8
|
+
"source": "src/index.ts",
|
|
9
|
+
"repository": "github:mitchray/javascript-ampache",
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "rimraf dist && microbundle --tsconfig tsconfig.json",
|
|
12
|
+
"dev": "microbundle watch --tsconfig tsconfig.json",
|
|
13
|
+
"test": "jest"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@types/jest": "^25.2.3",
|
|
17
|
+
"isomorphic-unfetch": "^3.1.0",
|
|
18
|
+
"jest": "^29.3.1",
|
|
19
|
+
"jssha": "^3.3.0",
|
|
20
|
+
"microbundle": "^0.15.1",
|
|
21
|
+
"nock": "^13.0.0",
|
|
22
|
+
"querystringify": "2.2.0",
|
|
23
|
+
"rimraf": "^5.0.0"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"ampache",
|
|
27
|
+
"javascript",
|
|
28
|
+
"typescript",
|
|
29
|
+
"api",
|
|
30
|
+
"js"
|
|
31
|
+
],
|
|
32
|
+
"author": "mitchray (https://github.com/mitchray)",
|
|
33
|
+
"license": "GPL-3.0-only",
|
|
34
|
+
"files": [
|
|
35
|
+
"src",
|
|
36
|
+
"dist"
|
|
37
|
+
]
|
|
38
|
+
}
|
package/src/albums/index.ts
CHANGED
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
import qs from
|
|
2
|
-
import {
|
|
3
|
-
import { Base, BinaryBoolean, ExtendedPagination, UID } from
|
|
4
|
-
|
|
5
|
-
export class Albums extends Base {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
} & ExtendedPagination
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
1
|
+
import qs from "querystringify";
|
|
2
|
+
import { AlbumResponse, AlbumsResponse } from "./types";
|
|
3
|
+
import { Base, BinaryBoolean, ExtendedPagination, UID } from "../base";
|
|
4
|
+
|
|
5
|
+
export class Albums extends Base {
|
|
6
|
+
/**
|
|
7
|
+
* This returns albums based on the provided search filters
|
|
8
|
+
* @remarks MINIMUM_API_VERSION=380001
|
|
9
|
+
* @param [params.filter] UID to find
|
|
10
|
+
* @param [params.exact] 0, 1 (if true filter is exact = rather than fuzzy LIKE)
|
|
11
|
+
* @param [params.add] ISO 8601 Date Format (2020-09-16) Find objects with an 'add' date newer than the specified date
|
|
12
|
+
* @param [params.update] ISO 8601 Date Format (2020-09-16) Find objects with an 'update' time newer than the specified date
|
|
13
|
+
* @param [params.include] albums, songs (include child objects in the response)
|
|
14
|
+
* @param [params.offset]
|
|
15
|
+
* @param [params.limit]
|
|
16
|
+
* @param [params.cond]
|
|
17
|
+
* @param [params.sort]
|
|
18
|
+
* @see {@link https://ampache.org/api/api-json-methods#albums}
|
|
19
|
+
*/
|
|
20
|
+
albums(
|
|
21
|
+
params?: {
|
|
22
|
+
filter?: number;
|
|
23
|
+
exact?: BinaryBoolean;
|
|
24
|
+
add?: Date;
|
|
25
|
+
update?: Date;
|
|
26
|
+
include?: "albums" | "songs";
|
|
27
|
+
} & ExtendedPagination,
|
|
28
|
+
) {
|
|
29
|
+
let query = "albums";
|
|
30
|
+
query += qs.stringify(params, "&");
|
|
31
|
+
return this.request<AlbumsResponse>(query);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* This returns a single album based on the UID provided
|
|
36
|
+
* @remarks MINIMUM_API_VERSION=380001
|
|
37
|
+
* @param params.filter UID to find
|
|
38
|
+
* @param [params.include] songs (include child objects in the response)
|
|
39
|
+
* @see {@link https://ampache.org/api/api-json-methods#album}
|
|
40
|
+
*/
|
|
41
|
+
album(params: { filter: UID; include?: "songs" }) {
|
|
42
|
+
let query = "album";
|
|
43
|
+
query += qs.stringify(params, "&");
|
|
44
|
+
return this.request<AlbumResponse>(query);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* This returns the albums of an artist
|
|
49
|
+
* @remarks MINIMUM_API_VERSION=380001
|
|
50
|
+
* @param params.filter UID to find
|
|
51
|
+
* @param [params.offset]
|
|
52
|
+
* @param [params.limit]
|
|
53
|
+
* @param [params.cond]
|
|
54
|
+
* @param [params.sort]
|
|
55
|
+
* @see {@link https://ampache.org/api/api-json-methods#artist_albums}
|
|
56
|
+
*/
|
|
57
|
+
artistAlbums(
|
|
58
|
+
params: {
|
|
59
|
+
filter: UID;
|
|
60
|
+
} & ExtendedPagination,
|
|
61
|
+
) {
|
|
62
|
+
let query = "artist_albums";
|
|
63
|
+
query += qs.stringify(params, "&");
|
|
64
|
+
return this.request<AlbumsResponse>(query);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* This returns the albums associated with the genre in question
|
|
69
|
+
* @remarks MINIMUM_API_VERSION=380001
|
|
70
|
+
* @param params.filter UID to find
|
|
71
|
+
* @param [params.offset]
|
|
72
|
+
* @param [params.limit]
|
|
73
|
+
* @param [params.cond]
|
|
74
|
+
* @param [params.sort]
|
|
75
|
+
* @see {@link https://ampache.org/api/api-json-methods#genre_albums}
|
|
76
|
+
*/
|
|
77
|
+
genreAlbums(
|
|
78
|
+
params?: {
|
|
79
|
+
filter: UID;
|
|
80
|
+
} & ExtendedPagination,
|
|
81
|
+
) {
|
|
82
|
+
let query = "genre_albums";
|
|
83
|
+
query += qs.stringify(params, "&");
|
|
84
|
+
return this.request<AlbumsResponse>(query);
|
|
85
|
+
}
|
|
86
|
+
}
|
package/src/albums/types.ts
CHANGED
|
@@ -1,32 +1,38 @@
|
|
|
1
|
-
import { UID } from
|
|
2
|
-
import { GenreSummary } from "../genres/types";
|
|
3
|
-
import { ArtistSummary } from "../artists/types";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
export type AlbumSummary = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export type
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
1
|
+
import { UID } from "../base";
|
|
2
|
+
import { GenreSummary } from "../genres/types";
|
|
3
|
+
import { ArtistSummary } from "../artists/types";
|
|
4
|
+
import { SongResponse } from "../songs/types";
|
|
5
|
+
|
|
6
|
+
export type AlbumSummary = {
|
|
7
|
+
id: UID;
|
|
8
|
+
name: string;
|
|
9
|
+
prefix: string | null;
|
|
10
|
+
basename: string;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export type AlbumResponse = {
|
|
14
|
+
id: UID;
|
|
15
|
+
name: string;
|
|
16
|
+
prefix: string | null;
|
|
17
|
+
basename: string;
|
|
18
|
+
artist: ArtistSummary;
|
|
19
|
+
time: number;
|
|
20
|
+
year: number | string;
|
|
21
|
+
tracks?: SongResponse[];
|
|
22
|
+
songcount: number;
|
|
23
|
+
disccount: number;
|
|
24
|
+
type: string | null;
|
|
25
|
+
genre: GenreSummary[];
|
|
26
|
+
art: string;
|
|
27
|
+
has_art: boolean;
|
|
28
|
+
flag: boolean;
|
|
29
|
+
rating: number | null;
|
|
30
|
+
averagerating: number | null;
|
|
31
|
+
mbid: string | null;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export type AlbumsResponse = {
|
|
35
|
+
total_count: number;
|
|
36
|
+
md5: string;
|
|
37
|
+
album: AlbumResponse[];
|
|
38
|
+
};
|
package/src/artists/index.ts
CHANGED
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
import qs from
|
|
2
|
-
import {
|
|
3
|
-
import { Base, BinaryBoolean, ExtendedPagination, UID } from
|
|
4
|
-
|
|
5
|
-
export class Artists extends Base {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
} & ExtendedPagination
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
1
|
+
import qs from "querystringify";
|
|
2
|
+
import { ArtistResponse, ArtistsResponse } from "./types";
|
|
3
|
+
import { Base, BinaryBoolean, ExtendedPagination, UID } from "../base";
|
|
4
|
+
|
|
5
|
+
export class Artists extends Base {
|
|
6
|
+
/**
|
|
7
|
+
* This takes a collection of inputs and returns artist objects
|
|
8
|
+
* @remarks MINIMUM_API_VERSION=380001
|
|
9
|
+
* @param [params.filter] Filter results to match this string
|
|
10
|
+
* @param [params.exact] 0, 1 (if true filter is exact = rather than fuzzy LIKE)
|
|
11
|
+
* @param [params.add] ISO 8601 Date Format (2020-09-16) Find objects with an 'add' date newer than the specified date
|
|
12
|
+
* @param [params.update] ISO 8601 Date Format (2020-09-16) Find objects with an 'update' time newer than the specified date
|
|
13
|
+
* @param [params.include] (albums | songs) include child objects in the response
|
|
14
|
+
* @param [params.album_artist] 0, 1 (if true filter for album artists only)
|
|
15
|
+
* @param [params.offset]
|
|
16
|
+
* @param [params.limit]
|
|
17
|
+
* @param [params.cond]
|
|
18
|
+
* @param [params.sort]
|
|
19
|
+
* @see {@link https://ampache.org/api/api-json-methods#artists}
|
|
20
|
+
*/
|
|
21
|
+
artists(
|
|
22
|
+
params?: {
|
|
23
|
+
filter?: string;
|
|
24
|
+
exact?: BinaryBoolean;
|
|
25
|
+
add?: Date;
|
|
26
|
+
update?: Date;
|
|
27
|
+
include?: "albums" | "songs";
|
|
28
|
+
album_artist?: BinaryBoolean;
|
|
29
|
+
} & ExtendedPagination,
|
|
30
|
+
) {
|
|
31
|
+
let query = "artists";
|
|
32
|
+
query += qs.stringify(params, "&");
|
|
33
|
+
return this.request<ArtistsResponse>(query);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* This returns a single artist based on the UID of said artist
|
|
38
|
+
* @remarks MINIMUM_API_VERSION=380001
|
|
39
|
+
* @param params.filter UID to find
|
|
40
|
+
* @param [params.include] (albums | songs) include child objects in the response
|
|
41
|
+
* @see {@link https://ampache.org/api/api-json-methods#artist}
|
|
42
|
+
*/
|
|
43
|
+
artist(params: { filter: UID; include?: "albums" | "songs" }) {
|
|
44
|
+
let query = "artist";
|
|
45
|
+
query += qs.stringify(params, "&");
|
|
46
|
+
return this.request<ArtistResponse>(query);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* This returns the artists associated with the genre in question as defined by the UID
|
|
51
|
+
* @remarks MINIMUM_API_VERSION=380001
|
|
52
|
+
* @param params.filter UID to find
|
|
53
|
+
* @param [params.offset]
|
|
54
|
+
* @param [params.limit]
|
|
55
|
+
* @param [params.cond]
|
|
56
|
+
* @param [params.sort]
|
|
57
|
+
* @see {@link https://ampache.org/api/api-json-methods#genre_artists}
|
|
58
|
+
*/
|
|
59
|
+
genreArtists(
|
|
60
|
+
params: {
|
|
61
|
+
filter: UID;
|
|
62
|
+
} & ExtendedPagination,
|
|
63
|
+
) {
|
|
64
|
+
let query = "genre_artists";
|
|
65
|
+
query += qs.stringify(params, "&");
|
|
66
|
+
return this.request<ArtistsResponse>(query);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* This returns the artists associated with the label in question as defined by the UID
|
|
71
|
+
* @remarks MINIMUM_API_VERSION=420000
|
|
72
|
+
* @param params.filter UID of find
|
|
73
|
+
* @param [params.offset]
|
|
74
|
+
* @param [params.limit]
|
|
75
|
+
* @param [params.cond]
|
|
76
|
+
* @param [params.sort]
|
|
77
|
+
* @see {@link https://ampache.org/api/api-json-methods#label_artists}
|
|
78
|
+
*/
|
|
79
|
+
labelArtists(
|
|
80
|
+
params: {
|
|
81
|
+
filter: UID;
|
|
82
|
+
} & ExtendedPagination,
|
|
83
|
+
) {
|
|
84
|
+
let query = "label_artists";
|
|
85
|
+
query += qs.stringify(params, "&");
|
|
86
|
+
return this.request<ArtistsResponse>(query);
|
|
87
|
+
}
|
|
88
|
+
}
|
package/src/artists/types.ts
CHANGED
|
@@ -1,32 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Song } from "../songs/types";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type ArtistSummary = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export type
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
1
|
+
import { AlbumResponse } from "../albums/types";
|
|
2
|
+
import { Song } from "../songs/types";
|
|
3
|
+
import { GenreResponse } from "../genres/types";
|
|
4
|
+
|
|
5
|
+
export type ArtistSummary = {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
prefix: string | null;
|
|
9
|
+
basename: string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export type ArtistResponse = {
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
prefix: string | null;
|
|
16
|
+
basename: string;
|
|
17
|
+
albums: AlbumResponse[];
|
|
18
|
+
albumcount: number;
|
|
19
|
+
songs: Song[];
|
|
20
|
+
songcount: number;
|
|
21
|
+
genre: GenreResponse[];
|
|
22
|
+
art: string;
|
|
23
|
+
has_art: boolean;
|
|
24
|
+
flag: boolean;
|
|
25
|
+
rating: number | null;
|
|
26
|
+
averagerating: number | null;
|
|
27
|
+
mbid: string | null;
|
|
28
|
+
summary: string;
|
|
29
|
+
time: number;
|
|
30
|
+
yearformed: number;
|
|
31
|
+
placeformed: string;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export type ArtistsResponse = {
|
|
35
|
+
total_count: number;
|
|
36
|
+
md5: string;
|
|
37
|
+
artist: ArtistResponse[];
|
|
38
|
+
};
|