tsarr 2.4.12 → 2.5.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 +10 -0
- package/dist/cli/commands/lidarr.d.ts.map +1 -1
- package/dist/cli/commands/radarr.d.ts.map +1 -1
- package/dist/cli/commands/readarr.d.ts.map +1 -1
- package/dist/cli/commands/sonarr.d.ts.map +1 -1
- package/dist/cli/index.js +480 -6
- package/dist/clients/lidarr.d.ts +79 -1
- package/dist/clients/lidarr.d.ts.map +1 -1
- package/dist/clients/lidarr.js +93 -0
- package/dist/clients/radarr.d.ts +92 -1
- package/dist/clients/radarr.d.ts.map +1 -1
- package/dist/clients/radarr.js +105 -0
- package/dist/clients/readarr.d.ts +79 -1
- package/dist/clients/readarr.d.ts.map +1 -1
- package/dist/clients/readarr.js +93 -0
- package/dist/clients/sonarr.d.ts +92 -1
- package/dist/clients/sonarr.d.ts.map +1 -1
- package/dist/clients/sonarr.js +105 -0
- package/dist/generated/bazarr/core/types.gen.d.ts +1 -1
- package/dist/generated/lidarr/core/types.gen.d.ts +1 -1
- package/dist/generated/prowlarr/core/types.gen.d.ts +1 -1
- package/dist/generated/radarr/core/types.gen.d.ts +1 -1
- package/dist/generated/readarr/core/types.gen.d.ts +1 -1
- package/dist/generated/sonarr/core/types.gen.d.ts +1 -1
- package/dist/index.js +25 -25
- package/dist/tsarr-2.5.0.tgz +0 -0
- package/package.json +6 -6
- package/dist/tsarr-2.4.12.tgz +0 -0
package/README.md
CHANGED
|
@@ -66,6 +66,16 @@ bunx tsarr doctor
|
|
|
66
66
|
brew install robbeverhelst/tsarr/tsarr
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
+
### OpenClaw / ClawHub
|
|
70
|
+
|
|
71
|
+
Install the published OpenClaw skill to manage your Servarr stack through TsArr:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
openclaw clawhub install tsarr
|
|
75
|
+
# or with the registry CLI
|
|
76
|
+
clawhub install tsarr
|
|
77
|
+
```
|
|
78
|
+
|
|
69
79
|
### Pre-built Binaries
|
|
70
80
|
|
|
71
81
|
Download standalone binaries from [GitHub Releases](https://github.com/robbeverhelst/tsarr/releases) — no runtime needed:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lidarr.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/lidarr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lidarr.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/lidarr.ts"],"names":[],"mappings":"AAojBA,eAAO,MAAM,MAAM,qDAKlB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radarr.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/radarr.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,SAAS,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"radarr.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/radarr.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,SAAS,EAAE,WAAW,EA6kBlC,CAAC;AAEF,eAAO,MAAM,MAAM,qDAKlB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readarr.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/readarr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"readarr.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/readarr.ts"],"names":[],"mappings":"AAqjBA,eAAO,MAAM,OAAO,qDAKnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sonarr.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sonarr.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,SAAS,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"sonarr.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sonarr.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,SAAS,EAAE,WAAW,EA8nBlC,CAAC;AAEF,eAAO,MAAM,MAAM,qDAKlB,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1931,6 +1931,78 @@ var getApiV3SystemBackup = (options) => (options?.client ?? client).get({
|
|
|
1931
1931
|
"Content-Type": "application/json",
|
|
1932
1932
|
...options.headers
|
|
1933
1933
|
}
|
|
1934
|
+
}), getApiV3Moviefile = (options) => (options?.client ?? client).get({
|
|
1935
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
1936
|
+
in: "query",
|
|
1937
|
+
name: "apikey",
|
|
1938
|
+
type: "apiKey"
|
|
1939
|
+
}],
|
|
1940
|
+
url: "/api/v3/moviefile",
|
|
1941
|
+
...options
|
|
1942
|
+
}), deleteApiV3MoviefileById = (options) => (options.client ?? client).delete({
|
|
1943
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
1944
|
+
in: "query",
|
|
1945
|
+
name: "apikey",
|
|
1946
|
+
type: "apiKey"
|
|
1947
|
+
}],
|
|
1948
|
+
url: "/api/v3/moviefile/{id}",
|
|
1949
|
+
...options
|
|
1950
|
+
}), getApiV3MoviefileById = (options) => (options.client ?? client).get({
|
|
1951
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
1952
|
+
in: "query",
|
|
1953
|
+
name: "apikey",
|
|
1954
|
+
type: "apiKey"
|
|
1955
|
+
}],
|
|
1956
|
+
url: "/api/v3/moviefile/{id}",
|
|
1957
|
+
...options
|
|
1958
|
+
}), putApiV3MoviefileById = (options) => (options.client ?? client).put({
|
|
1959
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
1960
|
+
in: "query",
|
|
1961
|
+
name: "apikey",
|
|
1962
|
+
type: "apiKey"
|
|
1963
|
+
}],
|
|
1964
|
+
url: "/api/v3/moviefile/{id}",
|
|
1965
|
+
...options,
|
|
1966
|
+
headers: {
|
|
1967
|
+
"Content-Type": "application/json",
|
|
1968
|
+
...options.headers
|
|
1969
|
+
}
|
|
1970
|
+
}), putApiV3MoviefileEditor = (options) => (options?.client ?? client).put({
|
|
1971
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
1972
|
+
in: "query",
|
|
1973
|
+
name: "apikey",
|
|
1974
|
+
type: "apiKey"
|
|
1975
|
+
}],
|
|
1976
|
+
url: "/api/v3/moviefile/editor",
|
|
1977
|
+
...options,
|
|
1978
|
+
headers: {
|
|
1979
|
+
"Content-Type": "application/json",
|
|
1980
|
+
...options?.headers
|
|
1981
|
+
}
|
|
1982
|
+
}), deleteApiV3MoviefileBulk = (options) => (options?.client ?? client).delete({
|
|
1983
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
1984
|
+
in: "query",
|
|
1985
|
+
name: "apikey",
|
|
1986
|
+
type: "apiKey"
|
|
1987
|
+
}],
|
|
1988
|
+
url: "/api/v3/moviefile/bulk",
|
|
1989
|
+
...options,
|
|
1990
|
+
headers: {
|
|
1991
|
+
"Content-Type": "application/json",
|
|
1992
|
+
...options?.headers
|
|
1993
|
+
}
|
|
1994
|
+
}), putApiV3MoviefileBulk = (options) => (options?.client ?? client).put({
|
|
1995
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
1996
|
+
in: "query",
|
|
1997
|
+
name: "apikey",
|
|
1998
|
+
type: "apiKey"
|
|
1999
|
+
}],
|
|
2000
|
+
url: "/api/v3/moviefile/bulk",
|
|
2001
|
+
...options,
|
|
2002
|
+
headers: {
|
|
2003
|
+
"Content-Type": "application/json",
|
|
2004
|
+
...options?.headers
|
|
2005
|
+
}
|
|
1934
2006
|
}), postApiV3MovieImport = (options) => (options?.client ?? client).post({
|
|
1935
2007
|
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
1936
2008
|
in: "query",
|
|
@@ -2456,6 +2528,32 @@ class RadarrClient {
|
|
|
2456
2528
|
async importMovies(movies) {
|
|
2457
2529
|
return postApiV3MovieImport({ body: movies });
|
|
2458
2530
|
}
|
|
2531
|
+
async getMovieFiles(movieId, movieFileIds) {
|
|
2532
|
+
const query = {};
|
|
2533
|
+
if (movieId !== undefined)
|
|
2534
|
+
query.movieId = movieId;
|
|
2535
|
+
if (movieFileIds !== undefined)
|
|
2536
|
+
query.movieFileIds = movieFileIds;
|
|
2537
|
+
return getApiV3Moviefile(Object.keys(query).length > 0 ? { query } : {});
|
|
2538
|
+
}
|
|
2539
|
+
async getMovieFile(id) {
|
|
2540
|
+
return getApiV3MoviefileById({ path: { id } });
|
|
2541
|
+
}
|
|
2542
|
+
async updateMovieFile(id, movieFile) {
|
|
2543
|
+
return putApiV3MoviefileById({ path: { id }, body: movieFile });
|
|
2544
|
+
}
|
|
2545
|
+
async deleteMovieFile(id) {
|
|
2546
|
+
return deleteApiV3MoviefileById({ path: { id } });
|
|
2547
|
+
}
|
|
2548
|
+
async updateMovieFilesEditor(movieFileList) {
|
|
2549
|
+
return putApiV3MoviefileEditor({ body: movieFileList });
|
|
2550
|
+
}
|
|
2551
|
+
async deleteMovieFilesBulk(movieFileList) {
|
|
2552
|
+
return deleteApiV3MoviefileBulk({ body: movieFileList });
|
|
2553
|
+
}
|
|
2554
|
+
async updateMovieFilesBulk(movieFiles) {
|
|
2555
|
+
return putApiV3MoviefileBulk({ body: movieFiles });
|
|
2556
|
+
}
|
|
2459
2557
|
async getQualityProfiles() {
|
|
2460
2558
|
return getApiV3Qualityprofile();
|
|
2461
2559
|
}
|
|
@@ -5484,6 +5582,32 @@ var init_radarr3 = __esm(() => {
|
|
|
5484
5582
|
}
|
|
5485
5583
|
]
|
|
5486
5584
|
},
|
|
5585
|
+
{
|
|
5586
|
+
name: "moviefile",
|
|
5587
|
+
description: "Manage movie files",
|
|
5588
|
+
actions: [
|
|
5589
|
+
{
|
|
5590
|
+
name: "list",
|
|
5591
|
+
description: "List movie files for a movie",
|
|
5592
|
+
args: [{ name: "movie-id", description: "Movie ID", required: true, type: "number" }],
|
|
5593
|
+
columns: ["id", "relativePath", "size", "quality", "dateAdded"],
|
|
5594
|
+
run: (c3, a2) => c3.getMovieFiles([a2["movie-id"]])
|
|
5595
|
+
},
|
|
5596
|
+
{
|
|
5597
|
+
name: "get",
|
|
5598
|
+
description: "Get a movie file by ID",
|
|
5599
|
+
args: [{ name: "id", description: "Movie file ID", required: true, type: "number" }],
|
|
5600
|
+
run: (c3, a2) => c3.getMovieFile(a2.id)
|
|
5601
|
+
},
|
|
5602
|
+
{
|
|
5603
|
+
name: "delete",
|
|
5604
|
+
description: "Delete a movie file from disk",
|
|
5605
|
+
args: [{ name: "id", description: "Movie file ID", required: true, type: "number" }],
|
|
5606
|
+
confirmMessage: "Are you sure you want to delete this movie file from disk?",
|
|
5607
|
+
run: (c3, a2) => c3.deleteMovieFile(a2.id)
|
|
5608
|
+
}
|
|
5609
|
+
]
|
|
5610
|
+
},
|
|
5487
5611
|
{
|
|
5488
5612
|
name: "profile",
|
|
5489
5613
|
description: "Manage quality profiles",
|
|
@@ -6995,6 +7119,78 @@ var getApi2 = (options) => (options?.client ?? client2).get({
|
|
|
6995
7119
|
"Content-Type": "application/json",
|
|
6996
7120
|
...options.headers
|
|
6997
7121
|
}
|
|
7122
|
+
}), getApiV3Episodefile = (options) => (options?.client ?? client2).get({
|
|
7123
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
7124
|
+
in: "query",
|
|
7125
|
+
name: "apikey",
|
|
7126
|
+
type: "apiKey"
|
|
7127
|
+
}],
|
|
7128
|
+
url: "/api/v3/episodefile",
|
|
7129
|
+
...options
|
|
7130
|
+
}), deleteApiV3EpisodefileById = (options) => (options.client ?? client2).delete({
|
|
7131
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
7132
|
+
in: "query",
|
|
7133
|
+
name: "apikey",
|
|
7134
|
+
type: "apiKey"
|
|
7135
|
+
}],
|
|
7136
|
+
url: "/api/v3/episodefile/{id}",
|
|
7137
|
+
...options
|
|
7138
|
+
}), getApiV3EpisodefileById = (options) => (options.client ?? client2).get({
|
|
7139
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
7140
|
+
in: "query",
|
|
7141
|
+
name: "apikey",
|
|
7142
|
+
type: "apiKey"
|
|
7143
|
+
}],
|
|
7144
|
+
url: "/api/v3/episodefile/{id}",
|
|
7145
|
+
...options
|
|
7146
|
+
}), putApiV3EpisodefileById = (options) => (options.client ?? client2).put({
|
|
7147
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
7148
|
+
in: "query",
|
|
7149
|
+
name: "apikey",
|
|
7150
|
+
type: "apiKey"
|
|
7151
|
+
}],
|
|
7152
|
+
url: "/api/v3/episodefile/{id}",
|
|
7153
|
+
...options,
|
|
7154
|
+
headers: {
|
|
7155
|
+
"Content-Type": "application/json",
|
|
7156
|
+
...options.headers
|
|
7157
|
+
}
|
|
7158
|
+
}), putApiV3EpisodefileEditor = (options) => (options?.client ?? client2).put({
|
|
7159
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
7160
|
+
in: "query",
|
|
7161
|
+
name: "apikey",
|
|
7162
|
+
type: "apiKey"
|
|
7163
|
+
}],
|
|
7164
|
+
url: "/api/v3/episodefile/editor",
|
|
7165
|
+
...options,
|
|
7166
|
+
headers: {
|
|
7167
|
+
"Content-Type": "application/json",
|
|
7168
|
+
...options?.headers
|
|
7169
|
+
}
|
|
7170
|
+
}), deleteApiV3EpisodefileBulk = (options) => (options?.client ?? client2).delete({
|
|
7171
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
7172
|
+
in: "query",
|
|
7173
|
+
name: "apikey",
|
|
7174
|
+
type: "apiKey"
|
|
7175
|
+
}],
|
|
7176
|
+
url: "/api/v3/episodefile/bulk",
|
|
7177
|
+
...options,
|
|
7178
|
+
headers: {
|
|
7179
|
+
"Content-Type": "application/json",
|
|
7180
|
+
...options?.headers
|
|
7181
|
+
}
|
|
7182
|
+
}), putApiV3EpisodefileBulk = (options) => (options?.client ?? client2).put({
|
|
7183
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
7184
|
+
in: "query",
|
|
7185
|
+
name: "apikey",
|
|
7186
|
+
type: "apiKey"
|
|
7187
|
+
}],
|
|
7188
|
+
url: "/api/v3/episodefile/bulk",
|
|
7189
|
+
...options,
|
|
7190
|
+
headers: {
|
|
7191
|
+
"Content-Type": "application/json",
|
|
7192
|
+
...options?.headers
|
|
7193
|
+
}
|
|
6998
7194
|
}), getApiV3History2 = (options) => (options?.client ?? client2).get({
|
|
6999
7195
|
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
7000
7196
|
in: "query",
|
|
@@ -7914,6 +8110,32 @@ class SonarrClient {
|
|
|
7914
8110
|
async updateEpisode(id, episode) {
|
|
7915
8111
|
return putApiV3EpisodeById({ path: { id }, body: episode });
|
|
7916
8112
|
}
|
|
8113
|
+
async getEpisodeFiles(seriesId, episodeFileIds) {
|
|
8114
|
+
const query = {};
|
|
8115
|
+
if (seriesId !== undefined)
|
|
8116
|
+
query.seriesId = seriesId;
|
|
8117
|
+
if (episodeFileIds !== undefined)
|
|
8118
|
+
query.episodeFileIds = episodeFileIds;
|
|
8119
|
+
return getApiV3Episodefile(Object.keys(query).length > 0 ? { query } : {});
|
|
8120
|
+
}
|
|
8121
|
+
async getEpisodeFile(id) {
|
|
8122
|
+
return getApiV3EpisodefileById({ path: { id } });
|
|
8123
|
+
}
|
|
8124
|
+
async updateEpisodeFile(id, episodeFile) {
|
|
8125
|
+
return putApiV3EpisodefileById({ path: { id }, body: episodeFile });
|
|
8126
|
+
}
|
|
8127
|
+
async deleteEpisodeFile(id) {
|
|
8128
|
+
return deleteApiV3EpisodefileById({ path: { id } });
|
|
8129
|
+
}
|
|
8130
|
+
async updateEpisodeFilesEditor(episodeFileList) {
|
|
8131
|
+
return putApiV3EpisodefileEditor({ body: episodeFileList });
|
|
8132
|
+
}
|
|
8133
|
+
async deleteEpisodeFilesBulk(episodeFileList) {
|
|
8134
|
+
return deleteApiV3EpisodefileBulk({ body: episodeFileList });
|
|
8135
|
+
}
|
|
8136
|
+
async updateEpisodeFilesBulk(episodeFiles) {
|
|
8137
|
+
return putApiV3EpisodefileBulk({ body: episodeFiles });
|
|
8138
|
+
}
|
|
7917
8139
|
async getQualityProfiles() {
|
|
7918
8140
|
return getApiV3Qualityprofile2();
|
|
7919
8141
|
}
|
|
@@ -8538,6 +8760,32 @@ var init_sonarr3 = __esm(() => {
|
|
|
8538
8760
|
}
|
|
8539
8761
|
]
|
|
8540
8762
|
},
|
|
8763
|
+
{
|
|
8764
|
+
name: "episodefile",
|
|
8765
|
+
description: "Manage episode files",
|
|
8766
|
+
actions: [
|
|
8767
|
+
{
|
|
8768
|
+
name: "list",
|
|
8769
|
+
description: "List episode files for a series",
|
|
8770
|
+
args: [{ name: "series-id", description: "Series ID", required: true, type: "number" }],
|
|
8771
|
+
columns: ["id", "relativePath", "size", "quality", "dateAdded"],
|
|
8772
|
+
run: (c3, a2) => c3.getEpisodeFiles(a2["series-id"])
|
|
8773
|
+
},
|
|
8774
|
+
{
|
|
8775
|
+
name: "get",
|
|
8776
|
+
description: "Get an episode file by ID",
|
|
8777
|
+
args: [{ name: "id", description: "Episode file ID", required: true, type: "number" }],
|
|
8778
|
+
run: (c3, a2) => c3.getEpisodeFile(a2.id)
|
|
8779
|
+
},
|
|
8780
|
+
{
|
|
8781
|
+
name: "delete",
|
|
8782
|
+
description: "Delete an episode file from disk",
|
|
8783
|
+
args: [{ name: "id", description: "Episode file ID", required: true, type: "number" }],
|
|
8784
|
+
confirmMessage: "Are you sure you want to delete this episode file from disk?",
|
|
8785
|
+
run: (c3, a2) => c3.deleteEpisodeFile(a2.id)
|
|
8786
|
+
}
|
|
8787
|
+
]
|
|
8788
|
+
},
|
|
8541
8789
|
{
|
|
8542
8790
|
name: "profile",
|
|
8543
8791
|
description: "Manage quality profiles",
|
|
@@ -10770,6 +11018,66 @@ var getApiV1Album = (options) => (options?.client ?? client3).get({
|
|
|
10770
11018
|
}],
|
|
10771
11019
|
url: "/api/v1/tag/detail",
|
|
10772
11020
|
...options
|
|
11021
|
+
}), deleteApiV1TrackfileById = (options) => (options.client ?? client3).delete({
|
|
11022
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
11023
|
+
in: "query",
|
|
11024
|
+
name: "apikey",
|
|
11025
|
+
type: "apiKey"
|
|
11026
|
+
}],
|
|
11027
|
+
url: "/api/v1/trackfile/{id}",
|
|
11028
|
+
...options
|
|
11029
|
+
}), getApiV1TrackfileById = (options) => (options.client ?? client3).get({
|
|
11030
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
11031
|
+
in: "query",
|
|
11032
|
+
name: "apikey",
|
|
11033
|
+
type: "apiKey"
|
|
11034
|
+
}],
|
|
11035
|
+
url: "/api/v1/trackfile/{id}",
|
|
11036
|
+
...options
|
|
11037
|
+
}), putApiV1TrackfileById = (options) => (options.client ?? client3).put({
|
|
11038
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
11039
|
+
in: "query",
|
|
11040
|
+
name: "apikey",
|
|
11041
|
+
type: "apiKey"
|
|
11042
|
+
}],
|
|
11043
|
+
url: "/api/v1/trackfile/{id}",
|
|
11044
|
+
...options,
|
|
11045
|
+
headers: {
|
|
11046
|
+
"Content-Type": "application/json",
|
|
11047
|
+
...options.headers
|
|
11048
|
+
}
|
|
11049
|
+
}), getApiV1Trackfile = (options) => (options?.client ?? client3).get({
|
|
11050
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
11051
|
+
in: "query",
|
|
11052
|
+
name: "apikey",
|
|
11053
|
+
type: "apiKey"
|
|
11054
|
+
}],
|
|
11055
|
+
url: "/api/v1/trackfile",
|
|
11056
|
+
...options
|
|
11057
|
+
}), putApiV1TrackfileEditor = (options) => (options?.client ?? client3).put({
|
|
11058
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
11059
|
+
in: "query",
|
|
11060
|
+
name: "apikey",
|
|
11061
|
+
type: "apiKey"
|
|
11062
|
+
}],
|
|
11063
|
+
url: "/api/v1/trackfile/editor",
|
|
11064
|
+
...options,
|
|
11065
|
+
headers: {
|
|
11066
|
+
"Content-Type": "application/json",
|
|
11067
|
+
...options?.headers
|
|
11068
|
+
}
|
|
11069
|
+
}), deleteApiV1TrackfileBulk = (options) => (options?.client ?? client3).delete({
|
|
11070
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
11071
|
+
in: "query",
|
|
11072
|
+
name: "apikey",
|
|
11073
|
+
type: "apiKey"
|
|
11074
|
+
}],
|
|
11075
|
+
url: "/api/v1/trackfile/bulk",
|
|
11076
|
+
...options,
|
|
11077
|
+
headers: {
|
|
11078
|
+
"Content-Type": "application/json",
|
|
11079
|
+
...options?.headers
|
|
11080
|
+
}
|
|
10773
11081
|
}), getApiV1ConfigUiById = (options) => (options.client ?? client3).get({
|
|
10774
11082
|
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
10775
11083
|
in: "query",
|
|
@@ -10903,6 +11211,33 @@ class LidarrClient {
|
|
|
10903
11211
|
query.tags = tags;
|
|
10904
11212
|
return getFeedV1CalendarLidarrIcs(Object.keys(query).length > 0 ? { query } : {});
|
|
10905
11213
|
}
|
|
11214
|
+
async getTrackFiles(artistId, trackFileIds, albumId, unmapped) {
|
|
11215
|
+
const query = {};
|
|
11216
|
+
if (artistId !== undefined)
|
|
11217
|
+
query.artistId = artistId;
|
|
11218
|
+
if (trackFileIds !== undefined)
|
|
11219
|
+
query.trackFileIds = trackFileIds;
|
|
11220
|
+
if (albumId !== undefined)
|
|
11221
|
+
query.albumId = albumId;
|
|
11222
|
+
if (unmapped !== undefined)
|
|
11223
|
+
query.unmapped = unmapped;
|
|
11224
|
+
return getApiV1Trackfile(Object.keys(query).length > 0 ? { query } : {});
|
|
11225
|
+
}
|
|
11226
|
+
async getTrackFile(id) {
|
|
11227
|
+
return getApiV1TrackfileById({ path: { id } });
|
|
11228
|
+
}
|
|
11229
|
+
async updateTrackFile(id, trackFile) {
|
|
11230
|
+
return putApiV1TrackfileById({ path: { id }, body: trackFile });
|
|
11231
|
+
}
|
|
11232
|
+
async deleteTrackFile(id) {
|
|
11233
|
+
return deleteApiV1TrackfileById({ path: { id } });
|
|
11234
|
+
}
|
|
11235
|
+
async updateTrackFilesEditor(trackFileList) {
|
|
11236
|
+
return putApiV1TrackfileEditor({ body: trackFileList });
|
|
11237
|
+
}
|
|
11238
|
+
async deleteTrackFilesBulk(trackFileList) {
|
|
11239
|
+
return deleteApiV1TrackfileBulk({ body: trackFileList });
|
|
11240
|
+
}
|
|
10906
11241
|
async getQualityProfiles() {
|
|
10907
11242
|
return getApiV1Qualityprofile();
|
|
10908
11243
|
}
|
|
@@ -11504,6 +11839,32 @@ var init_lidarr3 = __esm(() => {
|
|
|
11504
11839
|
}
|
|
11505
11840
|
]
|
|
11506
11841
|
},
|
|
11842
|
+
{
|
|
11843
|
+
name: "trackfile",
|
|
11844
|
+
description: "Manage track files",
|
|
11845
|
+
actions: [
|
|
11846
|
+
{
|
|
11847
|
+
name: "list",
|
|
11848
|
+
description: "List track files for an artist",
|
|
11849
|
+
args: [{ name: "artist-id", description: "Artist ID", required: true, type: "number" }],
|
|
11850
|
+
columns: ["id", "relativePath", "size", "quality", "dateAdded"],
|
|
11851
|
+
run: (c3, a2) => c3.getTrackFiles(a2["artist-id"])
|
|
11852
|
+
},
|
|
11853
|
+
{
|
|
11854
|
+
name: "get",
|
|
11855
|
+
description: "Get a track file by ID",
|
|
11856
|
+
args: [{ name: "id", description: "Track file ID", required: true, type: "number" }],
|
|
11857
|
+
run: (c3, a2) => c3.getTrackFile(a2.id)
|
|
11858
|
+
},
|
|
11859
|
+
{
|
|
11860
|
+
name: "delete",
|
|
11861
|
+
description: "Delete a track file from disk",
|
|
11862
|
+
args: [{ name: "id", description: "Track file ID", required: true, type: "number" }],
|
|
11863
|
+
confirmMessage: "Are you sure you want to delete this track file from disk?",
|
|
11864
|
+
run: (c3, a2) => c3.deleteTrackFile(a2.id)
|
|
11865
|
+
}
|
|
11866
|
+
]
|
|
11867
|
+
},
|
|
11507
11868
|
{
|
|
11508
11869
|
name: "profile",
|
|
11509
11870
|
description: "Manage quality profiles",
|
|
@@ -12815,6 +13176,66 @@ var getApiV1Author = (options) => (options?.client ?? client4).get({
|
|
|
12815
13176
|
"Content-Type": "application/json",
|
|
12816
13177
|
...options.headers
|
|
12817
13178
|
}
|
|
13179
|
+
}), getApiV1Bookfile = (options) => (options?.client ?? client4).get({
|
|
13180
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
13181
|
+
in: "query",
|
|
13182
|
+
name: "apikey",
|
|
13183
|
+
type: "apiKey"
|
|
13184
|
+
}],
|
|
13185
|
+
url: "/api/v1/bookfile",
|
|
13186
|
+
...options
|
|
13187
|
+
}), deleteApiV1BookfileById = (options) => (options.client ?? client4).delete({
|
|
13188
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
13189
|
+
in: "query",
|
|
13190
|
+
name: "apikey",
|
|
13191
|
+
type: "apiKey"
|
|
13192
|
+
}],
|
|
13193
|
+
url: "/api/v1/bookfile/{id}",
|
|
13194
|
+
...options
|
|
13195
|
+
}), getApiV1BookfileById = (options) => (options.client ?? client4).get({
|
|
13196
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
13197
|
+
in: "query",
|
|
13198
|
+
name: "apikey",
|
|
13199
|
+
type: "apiKey"
|
|
13200
|
+
}],
|
|
13201
|
+
url: "/api/v1/bookfile/{id}",
|
|
13202
|
+
...options
|
|
13203
|
+
}), putApiV1BookfileById = (options) => (options.client ?? client4).put({
|
|
13204
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
13205
|
+
in: "query",
|
|
13206
|
+
name: "apikey",
|
|
13207
|
+
type: "apiKey"
|
|
13208
|
+
}],
|
|
13209
|
+
url: "/api/v1/bookfile/{id}",
|
|
13210
|
+
...options,
|
|
13211
|
+
headers: {
|
|
13212
|
+
"Content-Type": "application/json",
|
|
13213
|
+
...options.headers
|
|
13214
|
+
}
|
|
13215
|
+
}), putApiV1BookfileEditor = (options) => (options?.client ?? client4).put({
|
|
13216
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
13217
|
+
in: "query",
|
|
13218
|
+
name: "apikey",
|
|
13219
|
+
type: "apiKey"
|
|
13220
|
+
}],
|
|
13221
|
+
url: "/api/v1/bookfile/editor",
|
|
13222
|
+
...options,
|
|
13223
|
+
headers: {
|
|
13224
|
+
"Content-Type": "application/json",
|
|
13225
|
+
...options?.headers
|
|
13226
|
+
}
|
|
13227
|
+
}), deleteApiV1BookfileBulk = (options) => (options?.client ?? client4).delete({
|
|
13228
|
+
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
13229
|
+
in: "query",
|
|
13230
|
+
name: "apikey",
|
|
13231
|
+
type: "apiKey"
|
|
13232
|
+
}],
|
|
13233
|
+
url: "/api/v1/bookfile/bulk",
|
|
13234
|
+
...options,
|
|
13235
|
+
headers: {
|
|
13236
|
+
"Content-Type": "application/json",
|
|
13237
|
+
...options?.headers
|
|
13238
|
+
}
|
|
12818
13239
|
}), getApiV1BookLookup = (options) => (options?.client ?? client4).get({
|
|
12819
13240
|
security: [{ name: "X-Api-Key", type: "apiKey" }, {
|
|
12820
13241
|
in: "query",
|
|
@@ -13934,6 +14355,33 @@ class ReadarrClient {
|
|
|
13934
14355
|
query.tagList = tagList;
|
|
13935
14356
|
return getFeedV1CalendarReadarrIcs(Object.keys(query).length > 0 ? { query } : {});
|
|
13936
14357
|
}
|
|
14358
|
+
async getBookFiles(authorId, bookFileIds, bookId, unmapped) {
|
|
14359
|
+
const query = {};
|
|
14360
|
+
if (authorId !== undefined)
|
|
14361
|
+
query.authorId = authorId;
|
|
14362
|
+
if (bookFileIds !== undefined)
|
|
14363
|
+
query.bookFileIds = bookFileIds;
|
|
14364
|
+
if (bookId !== undefined)
|
|
14365
|
+
query.bookId = bookId;
|
|
14366
|
+
if (unmapped !== undefined)
|
|
14367
|
+
query.unmapped = unmapped;
|
|
14368
|
+
return getApiV1Bookfile(Object.keys(query).length > 0 ? { query } : {});
|
|
14369
|
+
}
|
|
14370
|
+
async getBookFile(id) {
|
|
14371
|
+
return getApiV1BookfileById({ path: { id } });
|
|
14372
|
+
}
|
|
14373
|
+
async updateBookFile(id, bookFile) {
|
|
14374
|
+
return putApiV1BookfileById({ path: { id }, body: bookFile });
|
|
14375
|
+
}
|
|
14376
|
+
async deleteBookFile(id) {
|
|
14377
|
+
return deleteApiV1BookfileById({ path: { id } });
|
|
14378
|
+
}
|
|
14379
|
+
async updateBookFilesEditor(bookFileList) {
|
|
14380
|
+
return putApiV1BookfileEditor({ body: bookFileList });
|
|
14381
|
+
}
|
|
14382
|
+
async deleteBookFilesBulk(bookFileList) {
|
|
14383
|
+
return deleteApiV1BookfileBulk({ body: bookFileList });
|
|
14384
|
+
}
|
|
13937
14385
|
async getQualityProfiles() {
|
|
13938
14386
|
return getApiV1Qualityprofile2();
|
|
13939
14387
|
}
|
|
@@ -14426,6 +14874,32 @@ var init_readarr3 = __esm(() => {
|
|
|
14426
14874
|
}
|
|
14427
14875
|
]
|
|
14428
14876
|
},
|
|
14877
|
+
{
|
|
14878
|
+
name: "bookfile",
|
|
14879
|
+
description: "Manage book files",
|
|
14880
|
+
actions: [
|
|
14881
|
+
{
|
|
14882
|
+
name: "list",
|
|
14883
|
+
description: "List book files for an author",
|
|
14884
|
+
args: [{ name: "author-id", description: "Author ID", required: true, type: "number" }],
|
|
14885
|
+
columns: ["id", "relativePath", "size", "quality", "dateAdded"],
|
|
14886
|
+
run: (c3, a2) => c3.getBookFiles(a2["author-id"])
|
|
14887
|
+
},
|
|
14888
|
+
{
|
|
14889
|
+
name: "get",
|
|
14890
|
+
description: "Get a book file by ID",
|
|
14891
|
+
args: [{ name: "id", description: "Book file ID", required: true, type: "number" }],
|
|
14892
|
+
run: (c3, a2) => c3.getBookFile(a2.id)
|
|
14893
|
+
},
|
|
14894
|
+
{
|
|
14895
|
+
name: "delete",
|
|
14896
|
+
description: "Delete a book file from disk",
|
|
14897
|
+
args: [{ name: "id", description: "Book file ID", required: true, type: "number" }],
|
|
14898
|
+
confirmMessage: "Are you sure you want to delete this book file from disk?",
|
|
14899
|
+
run: (c3, a2) => c3.deleteBookFile(a2.id)
|
|
14900
|
+
}
|
|
14901
|
+
]
|
|
14902
|
+
},
|
|
14429
14903
|
{
|
|
14430
14904
|
name: "profile",
|
|
14431
14905
|
description: "Manage quality profiles",
|
|
@@ -18854,7 +19328,7 @@ init_dist();
|
|
|
18854
19328
|
// package.json
|
|
18855
19329
|
var package_default = {
|
|
18856
19330
|
name: "tsarr",
|
|
18857
|
-
version: "2.
|
|
19331
|
+
version: "2.5.0",
|
|
18858
19332
|
author: "Robbe Verhelst",
|
|
18859
19333
|
repository: {
|
|
18860
19334
|
type: "git",
|
|
@@ -18866,15 +19340,15 @@ var package_default = {
|
|
|
18866
19340
|
main: "dist/index.js",
|
|
18867
19341
|
module: "dist/index.js",
|
|
18868
19342
|
devDependencies: {
|
|
18869
|
-
"@biomejs/biome": "2.4.
|
|
18870
|
-
"@hey-api/openapi-ts": "^0.94.
|
|
19343
|
+
"@biomejs/biome": "2.4.10",
|
|
19344
|
+
"@hey-api/openapi-ts": "^0.94.5",
|
|
18871
19345
|
"@semantic-release/changelog": "^6.0.3",
|
|
18872
19346
|
"@semantic-release/git": "^10.0.1",
|
|
18873
19347
|
"@semantic-release/github": "^12.0.6",
|
|
18874
19348
|
"@semantic-release/npm": "^13.1.5",
|
|
18875
|
-
"@types/bun": "^1.3.
|
|
19349
|
+
"@types/bun": "^1.3.11",
|
|
18876
19350
|
"semantic-release": "^25.0.3",
|
|
18877
|
-
typedoc: "^0.28.
|
|
19351
|
+
typedoc: "^0.28.18",
|
|
18878
19352
|
typescript: "^5.9.3"
|
|
18879
19353
|
},
|
|
18880
19354
|
exports: {
|
|
@@ -18927,7 +19401,7 @@ var package_default = {
|
|
|
18927
19401
|
},
|
|
18928
19402
|
description: "Type-safe TypeScript SDK for Servarr APIs (Radarr, Sonarr, etc.)",
|
|
18929
19403
|
engines: {
|
|
18930
|
-
node: ">=
|
|
19404
|
+
node: ">=24.14.1"
|
|
18931
19405
|
},
|
|
18932
19406
|
files: [
|
|
18933
19407
|
"dist",
|