Radarr and Sonarr V3 api support optional

pull/365/head
Duy NGUYEN 2022-02-01 17:05:23 +01:00
parent cb154a6818
commit 8ede30411e
3 changed files with 30 additions and 4 deletions

View File

@ -79,6 +79,16 @@ Two lines are needed in the config.yml :
The url must be the root url of Lidarr, Radarr or Sonarr application.
The Lidarr, Radarr or Sonarr API key can be found in Settings > General. It is needed to access the API.
If you are using an older version of Radarr or Sonarr which don't support the new V3 api endpoints, add the following line to your service config "legacyApi: true", example:
```yaml
- name: "Radarr"
type: "Radarr"
url: "http://localhost:8989/"
apikey: "MY-SUPER-SECRET-API-KEY"
target: "_blank" # optional html tag target attribute
legacyApi: true
```
## PaperlessNG

View File

@ -26,6 +26,9 @@
import service from "@/mixins/service.js";
import Generic from "./Generic.vue";
const V3_API = "/api/v3";
const LEGACY_API = "/api";
export default {
name: "Radarr",
mixins: [service],
@ -46,9 +49,14 @@ export default {
created: function () {
this.fetchConfig();
},
computed: {
apiPath() {
return this.item.legacyApi ? LEGACY_API : V3_API;
},
},
methods: {
fetchConfig: function () {
this.fetch(`/api/v3/health?apikey=${this.item.apikey}`)
this.fetch(`${this.apiPath}/health?apikey=${this.item.apikey}`)
.then((health) => {
this.warnings = 0;
this.errors = 0;
@ -64,7 +72,7 @@ export default {
console.error(e);
this.serverError = true;
});
this.fetch(`/api/v3/queue?apikey=${this.item.apikey}`)
this.fetch(`${this.apiPath}/queue?apikey=${this.item.apikey}`)
.then((queue) => {
this.activity = 0;
for (var i = 0; i < queue.length; i++) {

View File

@ -27,6 +27,9 @@
import service from "@/mixins/service.js";
import Generic from "./Generic.vue";
const V3_API = "/api/v3";
const LEGACY_API = "/api";
export default {
name: "Sonarr",
mixins: [service],
@ -36,6 +39,11 @@ export default {
components: {
Generic,
},
computed: {
apiPath() {
return this.item.legacyApi ? LEGACY_API : V3_API;
},
},
data: () => {
return {
activity: null,
@ -49,7 +57,7 @@ export default {
},
methods: {
fetchConfig: function () {
this.fetch(`/api/v3/health?apikey=${this.item.apikey}`)
this.fetch(`${this.apiPath}/health?apikey=${this.item.apikey}`)
.then((health) => {
this.warnings = 0;
this.errors = 0;
@ -65,7 +73,7 @@ export default {
console.error(e);
this.serverError = true;
});
this.fetch(`/api/v3/queue?apikey=${this.item.apikey}`)
this.fetch(`${this.apiPath}/queue?apikey=${this.item.apikey}`)
.then((queue) => {
this.activity = 0;
for (var i = 0; i < queue.length; i++) {