aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--docs/customservices.md8
-rw-r--r--src/components/services/Prowlarr.vue94
-rw-r--r--yarn.lock14
3 files changed, 105 insertions, 11 deletions
diff --git a/docs/customservices.md b/docs/customservices.md
index 77109b7..747d7a4 100644
--- a/docs/customservices.md
+++ b/docs/customservices.md
@@ -67,18 +67,18 @@ Two lines are needed in the config.yml :
67The url must be the root url of Medusa application. 67The url must be the root url of Medusa application.
68The Medusa API key can be found in General configuration > Interface. It is needed to access Medusa API. 68The Medusa API key can be found in General configuration > Interface. It is needed to access Medusa API.
69 69
70## Lidarr, Sonarr and Radarr 70## Lidarr, Prowlarr, Sonarr and Radarr
71 71
72This service displays Activity (blue), Warning (orange) or Error (red) notifications bubbles from the Lidarr, Radarr or Sonarr application. 72This service displays Activity (blue), Warning (orange) or Error (red) notifications bubbles from the Lidarr, Radarr or Sonarr application.
73Two lines are needed in the config.yml : 73Two lines are needed in the config.yml :
74 74
75```yaml 75```yaml
76 type: "Lidarr", "Radarr" or "Sonarr" 76 type: "Lidarr", "Prowlarr", "Radarr" or "Sonarr"
77 apikey: "01234deb70424befb1f4ef6a23456789" 77 apikey: "01234deb70424befb1f4ef6a23456789"
78``` 78```
79 79
80The url must be the root url of Lidarr, Radarr or Sonarr application. 80The url must be the root url of Lidarr, Prowlarr, Radarr or Sonarr application.
81The Lidarr, Radarr or Sonarr API key can be found in Settings > General. It is needed to access the API. 81The Lidarr, Prowlarr, Radarr or Sonarr API key can be found in Settings > General. It is needed to access the API.
82 82
83## PaperlessNG 83## PaperlessNG
84 84
diff --git a/src/components/services/Prowlarr.vue b/src/components/services/Prowlarr.vue
new file mode 100644
index 0000000..c122ca0
--- /dev/null
+++ b/src/components/services/Prowlarr.vue
@@ -0,0 +1,94 @@
1<template>
2 <Generic :item="item">
3 <template #indicator>
4 <div class="notifs">
5 <strong v-if="warnings > 0" class="notif warnings" title="Warning">
6 {{ warnings }}
7 </strong>
8 <strong v-if="errors > 0" class="notif errors" title="Error">
9 {{ errors }}
10 </strong>
11 <strong
12 v-if="serverError"
13 class="notif errors"
14 title="Connection error to Prowlarr API, check url and apikey in config.yml"
15 >
16 ?
17 </strong>
18 </div>
19 </template>
20 </Generic>
21</template>
22
23<script>
24import service from "@/mixins/service.js"
25import Generic from "./Generic.vue"
26
27export default {
28 name: "Prowlarr",
29 mixins: [service],
30 props: {
31 item: Object,
32 },
33 components: {
34 Generic,
35 },
36 data: () => {
37 return {
38 warnings: null,
39 errors: null,
40 serverError: false,
41 }
42 },
43 created: function () {
44 this.fetchConfig()
45 },
46 methods: {
47 fetchConfig: function () {
48 this.fetch(`/api/v1/health?apikey=${this.item.apikey}`)
49 .then((health) => {
50 this.warnings = 0
51 this.errors = 0
52 for (var i = 0; i < health.length; i++) {
53 if (health[i].type == "warning") {
54 this.warnings++
55 } else if (health[i].type == "error") {
56 this.errors++
57 }
58 }
59 })
60 .catch((e) => {
61 console.error(e)
62 this.serverError = true
63 })
64 },
65 },
66}
67</script>
68
69<style scoped lang="scss">
70.notifs {
71 position: absolute;
72 color: white;
73 font-family: sans-serif;
74 top: 0.3em;
75 right: 0.5em;
76
77 .notif {
78 display: inline-block;
79 padding: 0.2em 0.35em;
80 border-radius: 0.25em;
81 position: relative;
82 margin-left: 0.3em;
83 font-size: 0.8em;
84
85 &.warnings {
86 background-color: #d08d2e;
87 }
88
89 &.errors {
90 background-color: #e51111;
91 }
92 }
93}
94</style>
diff --git a/yarn.lock b/yarn.lock
index ca36eb7..f3a16d9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2773,10 +2773,10 @@ core-js@^2.4.0:
2773 resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" 2773 resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
2774 integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== 2774 integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
2775 2775
2776core-js@^3.17.3: 2776core-js@^3.19.3:
2777 version "3.17.3" 2777 version "3.20.2"
2778 resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.17.3.tgz#8e8bd20e91df9951e903cabe91f9af4a0895bc1e" 2778 resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.2.tgz#46468d8601eafc8b266bd2dd6bf9dee622779581"
2779 integrity sha512-lyvajs+wd8N1hXfzob1LdOCCHFU4bGMbqqmLn1Q4QlCpDqWPpGf+p0nj+LNrvDDG33j0hZXw2nsvvVpHysxyNw== 2779 integrity sha512-nuqhq11DcOAbFBV4zCbKeGbKQsUDRqTX0oqx7AttUBuqe3h20ixsE039QHelbL6P4h+9kytVqyEtyZ6gsiwEYw==
2780 2780
2781core-js@^3.6.5: 2781core-js@^3.6.5:
2782 version "3.15.2" 2782 version "3.15.2"
@@ -3999,9 +3999,9 @@ flush-write-stream@^1.0.0:
3999 readable-stream "^2.3.6" 3999 readable-stream "^2.3.6"
4000 4000
4001follow-redirects@^1.0.0: 4001follow-redirects@^1.0.0:
4002 version "1.14.1" 4002 version "1.14.7"
4003 resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" 4003 resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
4004 integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== 4004 integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
4005 4005
4006for-in@^1.0.2: 4006for-in@^1.0.2:
4007 version "1.0.2" 4007 version "1.0.2"