mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-07 09:35:54 -08:00
Compare commits
201 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
62e294a715 | ||
|
|
f7aa4f13c8 | ||
|
|
e9c7118e53 | ||
|
|
43ee714fb0 | ||
|
|
a4b5cb490c | ||
|
|
f3eefd917c | ||
|
|
d2d2041dd1 | ||
|
|
962c345083 | ||
|
|
34bea0c076 | ||
|
|
32d803c54b | ||
|
|
e884707bfc | ||
|
|
00b0265350 | ||
|
|
c987df8f81 | ||
|
|
94b2c9c822 | ||
|
|
ee4b0ca450 | ||
|
|
70ab398432 | ||
|
|
4b752bb63a | ||
|
|
7a18ec05f1 | ||
|
|
1666034f1f | ||
|
|
d935cb35bf | ||
|
|
f5d1ae2c4e | ||
|
|
0482e86cd1 | ||
|
|
67608ef79f | ||
|
|
59520e4a69 | ||
|
|
1ae33d6925 | ||
|
|
aecf77c0ef | ||
|
|
ea8514fc19 | ||
|
|
e338328c23 | ||
|
|
8138dd832d | ||
|
|
1a63587ceb | ||
|
|
e5490fd5e8 | ||
|
|
16ecd7b426 | ||
|
|
9053ef53f3 | ||
|
|
0071cadfac | ||
|
|
791e9fd95a | ||
|
|
f1ad45a010 | ||
|
|
e4a4c64c2b | ||
|
|
c3dce716ee | ||
|
|
ec12139da2 | ||
|
|
e957a03334 | ||
|
|
e64a4108b2 | ||
|
|
31ec795c61 | ||
|
|
992516cebd | ||
|
|
2f4d4e52be | ||
|
|
1f0d1bc393 | ||
|
|
d3c0ad2190 | ||
|
|
523909f63b | ||
|
|
fbf20d5b8e | ||
|
|
9bbb28dbc2 | ||
|
|
8aeff333d8 | ||
|
|
e4e822a1e2 | ||
|
|
5ec8a1204d | ||
|
|
f6484bb23c | ||
|
|
0996cba02e | ||
|
|
291baa97b7 | ||
|
|
cc7b5350ac | ||
|
|
8e41853d58 | ||
|
|
eb08d989ad | ||
|
|
c142991a21 | ||
|
|
6d403511ce | ||
|
|
40d6afcec2 | ||
|
|
634e169d0d | ||
|
|
25d7fb8930 | ||
|
|
04ff059379 | ||
|
|
8d347d8b26 | ||
|
|
61aac831cb | ||
|
|
6bdad76366 | ||
|
|
36f48cf863 | ||
|
|
771f5493fd | ||
|
|
84cca259a6 | ||
|
|
5a3f141f9d | ||
|
|
f5855514fa | ||
|
|
76ff3d142c | ||
|
|
b5ec54b319 | ||
|
|
4545b785f0 | ||
|
|
f66a4e4a42 | ||
|
|
1590029aec | ||
|
|
cf8efb38f7 | ||
|
|
9058613b97 | ||
|
|
fcecdd3c4a | ||
|
|
7fbac755bc | ||
|
|
99a55c85bb | ||
|
|
19c56de8b0 | ||
|
|
59c7bcb392 | ||
|
|
556cb0f039 | ||
|
|
9054561212 | ||
|
|
d2c565da27 | ||
|
|
7e05adc02a | ||
|
|
ac61dc5d0c | ||
|
|
e9ebf67cda | ||
|
|
4d50ca21dc | ||
|
|
4a051bdaed | ||
|
|
846181eaeb | ||
|
|
6de158897c | ||
|
|
3f1fdc2426 | ||
|
|
970842cee2 | ||
|
|
4203d2d45c | ||
|
|
51c386e9b3 | ||
|
|
e39734e101 | ||
|
|
29a7336b74 | ||
|
|
4863bf9249 | ||
|
|
f7ffb87e7c | ||
|
|
5b9a478a0f | ||
|
|
28acc9207c | ||
|
|
5aa82ae928 | ||
|
|
7aa3220e50 | ||
|
|
de47fc6e7f | ||
|
|
8658d24d15 | ||
|
|
9dfc9f261b | ||
|
|
bd229a7f8f | ||
|
|
bb2b2de97e | ||
|
|
b94a4834c1 | ||
|
|
078b1cbfd6 | ||
|
|
70aab41ffc | ||
|
|
8ebc7937c1 | ||
|
|
f28ce55e42 | ||
|
|
d7be22c7c8 | ||
|
|
f1e7b2b92f | ||
|
|
05ca31ecb6 | ||
|
|
c379f3592e | ||
|
|
c43cec32d0 | ||
|
|
c48d10adcb | ||
|
|
28026a7fa1 | ||
|
|
16daf4e97c | ||
|
|
374e0c215e | ||
|
|
2c84b378ef | ||
|
|
2b21d50ce2 | ||
|
|
3572b53ad6 | ||
|
|
fc39c1b45a | ||
|
|
259cb955d0 | ||
|
|
420aa896d7 | ||
|
|
6586af17a3 | ||
|
|
454d8d03c2 | ||
|
|
1560bb7762 | ||
|
|
e23dc8f277 | ||
|
|
115bb432ff | ||
|
|
f4fa098f6b | ||
|
|
92ed6dc1cb | ||
|
|
e265a7c645 | ||
|
|
aa9b682f5f | ||
|
|
d2c1226d74 | ||
|
|
c749c02ff5 | ||
|
|
a6c6b6f4c7 | ||
|
|
7022ae9be2 | ||
|
|
e4e6bbab93 | ||
|
|
2d1aed4252 | ||
|
|
0adf5e69e0 | ||
|
|
f410dd302b | ||
|
|
89e3857773 | ||
|
|
376a665591 | ||
|
|
f230260633 | ||
|
|
d223687e07 | ||
|
|
a8c2e6500b | ||
|
|
5f3a657eba | ||
|
|
f76d3509ce | ||
|
|
f313be4e41 | ||
|
|
38235a05fb | ||
|
|
b49d9ca409 | ||
|
|
80432b88b1 | ||
|
|
54ad99d83f | ||
|
|
687f992b56 | ||
|
|
b880b3496b | ||
|
|
9879b3e272 | ||
|
|
308d1e16c6 | ||
|
|
a898be0bd7 | ||
|
|
095acc098e | ||
|
|
feaf1ed503 | ||
|
|
ab03d4b1ec | ||
|
|
8633db187f | ||
|
|
9952123468 | ||
|
|
d1fc7a0e07 | ||
|
|
b03a0103e8 | ||
|
|
d0f5d0bbb0 | ||
|
|
972a9ab395 | ||
|
|
b9f144f576 | ||
|
|
b98131cdac | ||
|
|
b404337e1f | ||
|
|
7ff8ba7c6a | ||
|
|
027b85997b | ||
|
|
b5c1b54168 | ||
|
|
d6201a670b | ||
|
|
f412b988b6 | ||
|
|
b9f468bcd9 | ||
|
|
8386dc2774 | ||
|
|
492e8fa5fd | ||
|
|
3b0cd4c3d6 | ||
|
|
8571209026 | ||
|
|
0a2dd3f740 | ||
|
|
b957f57dc5 | ||
|
|
460c67be77 | ||
|
|
04cccfdd60 | ||
|
|
179512672a | ||
|
|
60fa4205d3 | ||
|
|
dfa9e3b8fa | ||
|
|
6e581913ea | ||
|
|
77ac06993b | ||
|
|
08ac9fe7c9 | ||
|
|
6ceaf3686c | ||
|
|
82c54f197d | ||
|
|
597a8d8b9a | ||
|
|
43b5263f41 |
@@ -141,7 +141,7 @@ pnpm dev
|
||||
|
||||
Open [http://localhost:3000](http://localhost:3000) to start.
|
||||
|
||||
This is a [Next.js](https://nextjs.org/) application, see their doucmentation for more information:
|
||||
This is a [Next.js](https://nextjs.org/) application, see their documentation for more information:
|
||||
|
||||
## Contributors
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
"compare-versions": "^5.0.1",
|
||||
"dockerode": "^3.3.4",
|
||||
"follow-redirects": "^1.15.2",
|
||||
"gamedig": "^4.0.6",
|
||||
"i18next": "^21.9.2",
|
||||
"js-yaml": "^4.1.0",
|
||||
"json-rpc-2.0": "^1.4.1",
|
||||
@@ -33,6 +34,7 @@
|
||||
"swr": "^1.3.0",
|
||||
"systeminformation": "^5.17.12",
|
||||
"tough-cookie": "^4.1.2",
|
||||
"urbackup-server-api": "^0.8.9",
|
||||
"winston": "^3.8.2",
|
||||
"xml-js": "^1.6.11"
|
||||
},
|
||||
|
||||
420
pnpm-lock.yaml
generated
420
pnpm-lock.yaml
generated
@@ -19,6 +19,9 @@ dependencies:
|
||||
follow-redirects:
|
||||
specifier: ^1.15.2
|
||||
version: 1.15.2
|
||||
gamedig:
|
||||
specifier: ^4.0.6
|
||||
version: 4.0.6
|
||||
i18next:
|
||||
specifier: ^21.9.2
|
||||
version: 21.10.0
|
||||
@@ -70,6 +73,9 @@ dependencies:
|
||||
tough-cookie:
|
||||
specifier: ^4.1.2
|
||||
version: 4.1.2
|
||||
urbackup-server-api:
|
||||
specifier: ^0.8.9
|
||||
version: 0.8.9
|
||||
winston:
|
||||
specifier: ^3.8.2
|
||||
version: 3.8.2
|
||||
@@ -402,12 +408,24 @@ packages:
|
||||
resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==}
|
||||
dev: true
|
||||
|
||||
/@sindresorhus/is@5.4.1:
|
||||
resolution: {integrity: sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==}
|
||||
engines: {node: '>=14.16'}
|
||||
dev: false
|
||||
|
||||
/@swc/helpers@0.4.11:
|
||||
resolution: {integrity: sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==}
|
||||
dependencies:
|
||||
tslib: 2.5.0
|
||||
dev: false
|
||||
|
||||
/@szmarczak/http-timer@5.0.1:
|
||||
resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
|
||||
engines: {node: '>=14.16'}
|
||||
dependencies:
|
||||
defer-to-connect: 2.0.1
|
||||
dev: false
|
||||
|
||||
/@tailwindcss/forms@0.5.3(tailwindcss@3.3.0):
|
||||
resolution: {integrity: sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==}
|
||||
peerDependencies:
|
||||
@@ -424,6 +442,10 @@ packages:
|
||||
hoist-non-react-statics: 3.3.2
|
||||
dev: false
|
||||
|
||||
/@types/http-cache-semantics@4.0.1:
|
||||
resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==}
|
||||
dev: false
|
||||
|
||||
/@types/json5@0.0.29:
|
||||
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
|
||||
dev: true
|
||||
@@ -531,6 +553,11 @@ packages:
|
||||
json-schema-traverse: 0.4.1
|
||||
uri-js: 4.4.1
|
||||
|
||||
/amdefine@1.0.1:
|
||||
resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==}
|
||||
engines: {node: '>=0.4.2'}
|
||||
dev: false
|
||||
|
||||
/ansi-regex@5.0.1:
|
||||
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -545,7 +572,6 @@ packages:
|
||||
|
||||
/any-promise@1.3.0:
|
||||
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
|
||||
dev: true
|
||||
|
||||
/anymatch@3.1.3:
|
||||
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
|
||||
@@ -636,6 +662,12 @@ packages:
|
||||
resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
|
||||
dev: true
|
||||
|
||||
/async-mutex@0.3.2:
|
||||
resolution: {integrity: sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==}
|
||||
dependencies:
|
||||
tslib: 2.5.0
|
||||
dev: false
|
||||
|
||||
/async@3.2.4:
|
||||
resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
|
||||
dev: false
|
||||
@@ -687,6 +719,12 @@ packages:
|
||||
/balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
|
||||
/barse@0.4.3:
|
||||
resolution: {integrity: sha512-UEpvriJqAn8zuVinYICuKoPttZy3XxXEoqX/V2uYAL4zzJRuNzCK3+20nAu3YUIa2U7G53kf90wfBIp9/A+Odw==}
|
||||
dependencies:
|
||||
readable-stream: 1.0.34
|
||||
dev: false
|
||||
|
||||
/base64-js@1.5.1:
|
||||
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
|
||||
dev: false
|
||||
@@ -710,6 +748,10 @@ packages:
|
||||
readable-stream: 3.6.2
|
||||
dev: false
|
||||
|
||||
/boolbase@1.0.0:
|
||||
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
|
||||
dev: false
|
||||
|
||||
/brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
dependencies:
|
||||
@@ -756,6 +798,24 @@ packages:
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/cacheable-lookup@7.0.0:
|
||||
resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
|
||||
engines: {node: '>=14.16'}
|
||||
dev: false
|
||||
|
||||
/cacheable-request@10.2.12:
|
||||
resolution: {integrity: sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==}
|
||||
engines: {node: '>=14.16'}
|
||||
dependencies:
|
||||
'@types/http-cache-semantics': 4.0.1
|
||||
get-stream: 6.0.1
|
||||
http-cache-semantics: 4.1.1
|
||||
keyv: 4.5.2
|
||||
mimic-response: 4.0.0
|
||||
normalize-url: 8.0.0
|
||||
responselike: 3.0.0
|
||||
dev: false
|
||||
|
||||
/call-bind@1.0.2:
|
||||
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
|
||||
dependencies:
|
||||
@@ -788,6 +848,30 @@ packages:
|
||||
supports-color: 7.2.0
|
||||
dev: true
|
||||
|
||||
/cheerio-select@2.1.0:
|
||||
resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
|
||||
dependencies:
|
||||
boolbase: 1.0.0
|
||||
css-select: 5.1.0
|
||||
css-what: 6.1.0
|
||||
domelementtype: 2.3.0
|
||||
domhandler: 5.0.3
|
||||
domutils: 3.1.0
|
||||
dev: false
|
||||
|
||||
/cheerio@1.0.0-rc.12:
|
||||
resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
|
||||
engines: {node: '>= 6'}
|
||||
dependencies:
|
||||
cheerio-select: 2.1.0
|
||||
dom-serializer: 2.0.0
|
||||
domhandler: 5.0.3
|
||||
domutils: 3.1.0
|
||||
htmlparser2: 8.0.2
|
||||
parse5: 7.1.2
|
||||
parse5-htmlparser2-tree-adapter: 7.0.0
|
||||
dev: false
|
||||
|
||||
/chokidar@3.5.3:
|
||||
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
|
||||
engines: {node: '>= 8.10.0'}
|
||||
@@ -868,6 +952,13 @@ packages:
|
||||
delayed-stream: 1.0.0
|
||||
dev: false
|
||||
|
||||
/commander@2.8.1:
|
||||
resolution: {integrity: sha512-+pJLBFVk+9ZZdlAOB5WuIElVPPth47hILFkmGym57aq8kwxsowvByvB0DHs1vQAhyMZzdcpTtF0VDKGkSDR4ZQ==}
|
||||
engines: {node: '>= 0.6.x'}
|
||||
dependencies:
|
||||
graceful-readlink: 1.0.1
|
||||
dev: false
|
||||
|
||||
/commander@4.1.1:
|
||||
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
|
||||
engines: {node: '>= 6'}
|
||||
@@ -877,6 +968,14 @@ packages:
|
||||
resolution: {integrity: sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A==}
|
||||
dev: false
|
||||
|
||||
/compressjs@1.0.3:
|
||||
resolution: {integrity: sha512-jpKJjBTretQACTGLNuvnozP1JdP2ZLrjdGdBgk/tz1VfXlUcBhhSZW6vEsuThmeot/yjvSrPQKEgfF3X2Lpi8Q==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
amdefine: 1.0.1
|
||||
commander: 2.8.1
|
||||
dev: false
|
||||
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
||||
|
||||
@@ -911,6 +1010,21 @@ packages:
|
||||
shebang-command: 2.0.0
|
||||
which: 2.0.2
|
||||
|
||||
/css-select@5.1.0:
|
||||
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
|
||||
dependencies:
|
||||
boolbase: 1.0.0
|
||||
css-what: 6.1.0
|
||||
domhandler: 5.0.3
|
||||
domutils: 3.1.0
|
||||
nth-check: 2.1.1
|
||||
dev: false
|
||||
|
||||
/css-what@6.1.0:
|
||||
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
|
||||
engines: {node: '>= 6'}
|
||||
dev: false
|
||||
|
||||
/cssesc@3.0.0:
|
||||
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -953,6 +1067,13 @@ packages:
|
||||
dependencies:
|
||||
ms: 2.1.2
|
||||
|
||||
/decompress-response@6.0.0:
|
||||
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
mimic-response: 3.1.0
|
||||
dev: false
|
||||
|
||||
/deep-equal@2.2.0:
|
||||
resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==}
|
||||
dependencies:
|
||||
@@ -979,6 +1100,11 @@ packages:
|
||||
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
||||
dev: true
|
||||
|
||||
/defer-to-connect@2.0.1:
|
||||
resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
|
||||
engines: {node: '>=10'}
|
||||
dev: false
|
||||
|
||||
/define-properties@1.2.0:
|
||||
resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@@ -1049,6 +1175,33 @@ packages:
|
||||
esutils: 2.0.3
|
||||
dev: true
|
||||
|
||||
/dom-serializer@2.0.0:
|
||||
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
|
||||
dependencies:
|
||||
domelementtype: 2.3.0
|
||||
domhandler: 5.0.3
|
||||
entities: 4.5.0
|
||||
dev: false
|
||||
|
||||
/domelementtype@2.3.0:
|
||||
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
|
||||
dev: false
|
||||
|
||||
/domhandler@5.0.3:
|
||||
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
|
||||
engines: {node: '>= 4'}
|
||||
dependencies:
|
||||
domelementtype: 2.3.0
|
||||
dev: false
|
||||
|
||||
/domutils@3.1.0:
|
||||
resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
|
||||
dependencies:
|
||||
dom-serializer: 2.0.0
|
||||
domelementtype: 2.3.0
|
||||
domhandler: 5.0.3
|
||||
dev: false
|
||||
|
||||
/ecc-jsbn@0.1.2:
|
||||
resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==}
|
||||
dependencies:
|
||||
@@ -1074,6 +1227,11 @@ packages:
|
||||
once: 1.4.0
|
||||
dev: false
|
||||
|
||||
/entities@4.5.0:
|
||||
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
||||
engines: {node: '>=0.12'}
|
||||
dev: false
|
||||
|
||||
/es-abstract@1.21.2:
|
||||
resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@@ -1491,6 +1649,11 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/event-to-promise@0.7.0:
|
||||
resolution: {integrity: sha512-VOBBfyaADfe378ZzG0tgkzmsvzUyeU5arehrFzNRt5yaASUDshgctTwSrPI17ocAwR3+YftsxRClHF+GBKFByQ==}
|
||||
deprecated: Use promise-toolbox/fromEvent instead
|
||||
dev: false
|
||||
|
||||
/execa@5.0.0:
|
||||
resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -1608,6 +1771,11 @@ packages:
|
||||
resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==}
|
||||
dev: false
|
||||
|
||||
/form-data-encoder@2.1.4:
|
||||
resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
|
||||
engines: {node: '>= 14.17'}
|
||||
dev: false
|
||||
|
||||
/form-data@2.3.3:
|
||||
resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==}
|
||||
engines: {node: '>= 0.12'}
|
||||
@@ -1660,6 +1828,33 @@ packages:
|
||||
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
|
||||
dev: true
|
||||
|
||||
/gamedig@4.0.6:
|
||||
resolution: {integrity: sha512-h0k9n/e5vNrd9Mh2wyFUp2Vo7ABWbDkdBxKC6FNJLOZiU5d9Z29bntGeYbXtOkcRWoV6Q63wSAJ3jLWxYQkpZw==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
cheerio: 1.0.0-rc.12
|
||||
compressjs: 1.0.3
|
||||
gbxremote: 0.2.1
|
||||
got: 12.6.1
|
||||
iconv-lite: 0.6.3
|
||||
long: 5.2.3
|
||||
minimist: 1.2.8
|
||||
punycode: 2.3.0
|
||||
varint: 6.0.0
|
||||
dev: false
|
||||
|
||||
/gbxremote@0.2.1:
|
||||
resolution: {integrity: sha512-SMehu6Y6ndq2Qgp9VxAb8Np3f+UUD+RWoW2SAMaxzGS96rWXyr4T1GGkecO0HHtxeH1m7pEh4FJWB8a/6aM2XQ==}
|
||||
engines: {node: '>=0.10'}
|
||||
dependencies:
|
||||
any-promise: 1.3.0
|
||||
barse: 0.4.3
|
||||
event-to-promise: 0.7.0
|
||||
string-to-stream: 1.1.1
|
||||
xmlrpc: 1.3.2
|
||||
dev: false
|
||||
|
||||
/get-intrinsic@1.2.0:
|
||||
resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
|
||||
dependencies:
|
||||
@@ -1765,6 +1960,27 @@ packages:
|
||||
get-intrinsic: 1.2.0
|
||||
dev: true
|
||||
|
||||
/got@12.6.1:
|
||||
resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
|
||||
engines: {node: '>=14.16'}
|
||||
dependencies:
|
||||
'@sindresorhus/is': 5.4.1
|
||||
'@szmarczak/http-timer': 5.0.1
|
||||
cacheable-lookup: 7.0.0
|
||||
cacheable-request: 10.2.12
|
||||
decompress-response: 6.0.0
|
||||
form-data-encoder: 2.1.4
|
||||
get-stream: 6.0.1
|
||||
http2-wrapper: 2.2.0
|
||||
lowercase-keys: 3.0.0
|
||||
p-cancelable: 3.0.0
|
||||
responselike: 3.0.0
|
||||
dev: false
|
||||
|
||||
/graceful-readlink@1.0.1:
|
||||
resolution: {integrity: sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==}
|
||||
dev: false
|
||||
|
||||
/grapheme-splitter@1.0.4:
|
||||
resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
|
||||
dev: true
|
||||
@@ -1832,6 +2048,19 @@ packages:
|
||||
void-elements: 3.1.0
|
||||
dev: false
|
||||
|
||||
/htmlparser2@8.0.2:
|
||||
resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
|
||||
dependencies:
|
||||
domelementtype: 2.3.0
|
||||
domhandler: 5.0.3
|
||||
domutils: 3.1.0
|
||||
entities: 4.5.0
|
||||
dev: false
|
||||
|
||||
/http-cache-semantics@4.1.1:
|
||||
resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
|
||||
dev: false
|
||||
|
||||
/http-errors@2.0.0:
|
||||
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
@@ -1852,6 +2081,14 @@ packages:
|
||||
sshpk: 1.17.0
|
||||
dev: false
|
||||
|
||||
/http2-wrapper@2.2.0:
|
||||
resolution: {integrity: sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==}
|
||||
engines: {node: '>=10.19.0'}
|
||||
dependencies:
|
||||
quick-lru: 5.1.1
|
||||
resolve-alpn: 1.2.1
|
||||
dev: false
|
||||
|
||||
/human-signals@2.1.0:
|
||||
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
|
||||
engines: {node: '>=10.17.0'}
|
||||
@@ -1874,6 +2111,13 @@ packages:
|
||||
safer-buffer: 2.1.2
|
||||
dev: false
|
||||
|
||||
/iconv-lite@0.6.3:
|
||||
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dependencies:
|
||||
safer-buffer: 2.1.2
|
||||
dev: false
|
||||
|
||||
/ieee754@1.2.1:
|
||||
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
|
||||
dev: false
|
||||
@@ -2084,6 +2328,14 @@ packages:
|
||||
get-intrinsic: 1.2.0
|
||||
dev: true
|
||||
|
||||
/isarray@0.0.1:
|
||||
resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
|
||||
dev: false
|
||||
|
||||
/isarray@1.0.0:
|
||||
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
|
||||
dev: false
|
||||
|
||||
/isarray@2.0.5:
|
||||
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
|
||||
dev: true
|
||||
@@ -2128,6 +2380,10 @@ packages:
|
||||
resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==}
|
||||
dev: false
|
||||
|
||||
/json-buffer@3.0.1:
|
||||
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
|
||||
dev: false
|
||||
|
||||
/json-rpc-2.0@1.5.1:
|
||||
resolution: {integrity: sha512-ZY/vYl/uUgKN3tNrZMq7w+CGLcoUT+8AzDO/HJZVa+K4XcwgfgES1QDa5y7ieAeh4NgRo3hLexMxgdaiEiK9aA==}
|
||||
dev: false
|
||||
@@ -2176,6 +2432,12 @@ packages:
|
||||
object.assign: 4.1.4
|
||||
dev: true
|
||||
|
||||
/keyv@4.5.2:
|
||||
resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==}
|
||||
dependencies:
|
||||
json-buffer: 3.0.1
|
||||
dev: false
|
||||
|
||||
/kuler@2.0.0:
|
||||
resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
|
||||
dev: false
|
||||
@@ -2229,11 +2491,20 @@ packages:
|
||||
triple-beam: 1.3.0
|
||||
dev: false
|
||||
|
||||
/long@5.2.3:
|
||||
resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==}
|
||||
dev: false
|
||||
|
||||
/loose-envify@1.4.0:
|
||||
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
|
||||
dependencies:
|
||||
js-tokens: 4.0.0
|
||||
|
||||
/lowercase-keys@3.0.0:
|
||||
resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
dev: false
|
||||
|
||||
/lru-cache@6.0.0:
|
||||
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -2278,6 +2549,16 @@ packages:
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/mimic-response@3.1.0:
|
||||
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
|
||||
engines: {node: '>=10'}
|
||||
dev: false
|
||||
|
||||
/mimic-response@4.0.0:
|
||||
resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
dev: false
|
||||
|
||||
/minecraft-ping-js@1.0.2:
|
||||
resolution: {integrity: sha512-h9QYG2n+fBKgp520tXBwR354XRzR/w5wXe8CJCmxKm6jbLpAoLODM8Nj5+ssuIVQF8rtxkAnjwv7PH+7ehFzQQ==}
|
||||
dependencies:
|
||||
@@ -2296,7 +2577,6 @@ packages:
|
||||
|
||||
/minimist@1.2.8:
|
||||
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
|
||||
dev: true
|
||||
|
||||
/minipass@3.3.6:
|
||||
resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
|
||||
@@ -2420,6 +2700,18 @@ packages:
|
||||
- babel-plugin-macros
|
||||
dev: false
|
||||
|
||||
/node-fetch@2.6.12:
|
||||
resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==}
|
||||
engines: {node: 4.x || >=6.0.0}
|
||||
peerDependencies:
|
||||
encoding: ^0.1.0
|
||||
peerDependenciesMeta:
|
||||
encoding:
|
||||
optional: true
|
||||
dependencies:
|
||||
whatwg-url: 5.0.0
|
||||
dev: false
|
||||
|
||||
/node-int64@0.4.0:
|
||||
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
|
||||
dev: false
|
||||
@@ -2438,6 +2730,11 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/normalize-url@8.0.0:
|
||||
resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==}
|
||||
engines: {node: '>=14.16'}
|
||||
dev: false
|
||||
|
||||
/npm-run-path@4.0.1:
|
||||
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -2445,6 +2742,12 @@ packages:
|
||||
path-key: 3.1.1
|
||||
dev: false
|
||||
|
||||
/nth-check@2.1.1:
|
||||
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
|
||||
dependencies:
|
||||
boolbase: 1.0.0
|
||||
dev: false
|
||||
|
||||
/oauth-sign@0.9.0:
|
||||
resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==}
|
||||
dev: false
|
||||
@@ -2581,6 +2884,11 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/p-cancelable@3.0.0:
|
||||
resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
|
||||
engines: {node: '>=12.20'}
|
||||
dev: false
|
||||
|
||||
/p-limit@3.1.0:
|
||||
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -2602,6 +2910,19 @@ packages:
|
||||
callsites: 3.1.0
|
||||
dev: true
|
||||
|
||||
/parse5-htmlparser2-tree-adapter@7.0.0:
|
||||
resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
|
||||
dependencies:
|
||||
domhandler: 5.0.3
|
||||
parse5: 7.1.2
|
||||
dev: false
|
||||
|
||||
/parse5@7.1.2:
|
||||
resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
|
||||
dependencies:
|
||||
entities: 4.5.0
|
||||
dev: false
|
||||
|
||||
/path-exists@4.0.0:
|
||||
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -2746,6 +3067,10 @@ packages:
|
||||
engines: {node: ^14.13.1 || >=16.0.0}
|
||||
dev: false
|
||||
|
||||
/process-nextick-args@2.0.1:
|
||||
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
|
||||
dev: false
|
||||
|
||||
/prop-types@15.8.1:
|
||||
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
|
||||
dependencies:
|
||||
@@ -2785,7 +3110,6 @@ packages:
|
||||
/quick-lru@5.1.1:
|
||||
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/raw-body@2.5.2:
|
||||
resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
|
||||
@@ -2851,6 +3175,27 @@ packages:
|
||||
pify: 2.3.0
|
||||
dev: true
|
||||
|
||||
/readable-stream@1.0.34:
|
||||
resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==}
|
||||
dependencies:
|
||||
core-util-is: 1.0.2
|
||||
inherits: 2.0.4
|
||||
isarray: 0.0.1
|
||||
string_decoder: 0.10.31
|
||||
dev: false
|
||||
|
||||
/readable-stream@2.3.8:
|
||||
resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
|
||||
dependencies:
|
||||
core-util-is: 1.0.2
|
||||
inherits: 2.0.4
|
||||
isarray: 1.0.0
|
||||
process-nextick-args: 2.0.1
|
||||
safe-buffer: 5.1.2
|
||||
string_decoder: 1.1.1
|
||||
util-deprecate: 1.0.2
|
||||
dev: false
|
||||
|
||||
/readable-stream@3.6.2:
|
||||
resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
|
||||
engines: {node: '>= 6'}
|
||||
@@ -2916,6 +3261,10 @@ packages:
|
||||
resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
|
||||
dev: false
|
||||
|
||||
/resolve-alpn@1.2.1:
|
||||
resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
|
||||
dev: false
|
||||
|
||||
/resolve-from@4.0.0:
|
||||
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -2936,6 +3285,13 @@ packages:
|
||||
supports-preserve-symlinks-flag: 1.0.0
|
||||
dev: true
|
||||
|
||||
/responselike@3.0.0:
|
||||
resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
|
||||
engines: {node: '>=14.16'}
|
||||
dependencies:
|
||||
lowercase-keys: 3.0.0
|
||||
dev: false
|
||||
|
||||
/reusify@1.0.4:
|
||||
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
|
||||
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
|
||||
@@ -2956,6 +3312,10 @@ packages:
|
||||
queue-microtask: 1.2.3
|
||||
dev: true
|
||||
|
||||
/safe-buffer@5.1.2:
|
||||
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
|
||||
dev: false
|
||||
|
||||
/safe-buffer@5.2.1:
|
||||
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
|
||||
dev: false
|
||||
@@ -3104,6 +3464,13 @@ packages:
|
||||
engines: {node: '>= 0.10.0'}
|
||||
dev: false
|
||||
|
||||
/string-to-stream@1.1.1:
|
||||
resolution: {integrity: sha512-QySF2+3Rwq0SdO3s7BAp4x+c3qsClpPQ6abAmb0DGViiSBAkT5kL6JT2iyzEVP+T1SmzHrQD1TwlP9QAHCc+Sw==}
|
||||
dependencies:
|
||||
inherits: 2.0.4
|
||||
readable-stream: 2.3.8
|
||||
dev: false
|
||||
|
||||
/string.prototype.matchall@4.0.8:
|
||||
resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==}
|
||||
dependencies:
|
||||
@@ -3142,6 +3509,16 @@ packages:
|
||||
es-abstract: 1.21.2
|
||||
dev: true
|
||||
|
||||
/string_decoder@0.10.31:
|
||||
resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
|
||||
dev: false
|
||||
|
||||
/string_decoder@1.1.1:
|
||||
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
|
||||
dependencies:
|
||||
safe-buffer: 5.1.2
|
||||
dev: false
|
||||
|
||||
/string_decoder@1.3.0:
|
||||
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
|
||||
dependencies:
|
||||
@@ -3363,6 +3740,10 @@ packages:
|
||||
url-parse: 1.5.10
|
||||
dev: false
|
||||
|
||||
/tr46@0.0.3:
|
||||
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
|
||||
dev: false
|
||||
|
||||
/triple-beam@1.3.0:
|
||||
resolution: {integrity: sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==}
|
||||
dev: false
|
||||
@@ -3466,6 +3847,15 @@ packages:
|
||||
picocolors: 1.0.0
|
||||
dev: true
|
||||
|
||||
/urbackup-server-api@0.8.9:
|
||||
resolution: {integrity: sha512-Igu6A0xSZeMsiN6PWT7zG4aD+iJR5fXT/j5+xwAvnD/vCNfvVrettIsXv6MftxOajvTmtlgaYu8KDoH1EJQ6DQ==}
|
||||
dependencies:
|
||||
async-mutex: 0.3.2
|
||||
node-fetch: 2.6.12
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
dev: false
|
||||
|
||||
/uri-js@4.4.1:
|
||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||
dependencies:
|
||||
@@ -3511,6 +3901,17 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/webidl-conversions@3.0.1:
|
||||
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
|
||||
dev: false
|
||||
|
||||
/whatwg-url@5.0.0:
|
||||
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
|
||||
dependencies:
|
||||
tr46: 0.0.3
|
||||
webidl-conversions: 3.0.1
|
||||
dev: false
|
||||
|
||||
/which-boxed-primitive@1.0.2:
|
||||
resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
|
||||
dependencies:
|
||||
@@ -3601,6 +4002,19 @@ packages:
|
||||
sax: 1.2.4
|
||||
dev: false
|
||||
|
||||
/xmlbuilder@8.2.2:
|
||||
resolution: {integrity: sha512-eKRAFz04jghooy8muekqzo8uCSVNeyRedbuJrp0fovbLIi7wlsYtdUn3vBAAPq2Y3/0xMz2WMEUQ8yhVVO9Stw==}
|
||||
engines: {node: '>=4.0'}
|
||||
dev: false
|
||||
|
||||
/xmlrpc@1.3.2:
|
||||
resolution: {integrity: sha512-jQf5gbrP6wvzN71fgkcPPkF4bF/Wyovd7Xdff8d6/ihxYmgETQYSuTc+Hl+tsh/jmgPLro/Aro48LMFlIyEKKQ==}
|
||||
engines: {node: '>=0.8', npm: '>=1.0.0'}
|
||||
dependencies:
|
||||
sax: 1.2.4
|
||||
xmlbuilder: 8.2.2
|
||||
dev: false
|
||||
|
||||
/yallist@4.0.0:
|
||||
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
|
||||
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"totalUsed": "Used Storage",
|
||||
"noRecent": "Out of Date"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"name": "Name",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping",
|
||||
"maxPlayers": "Max players"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved",
|
||||
"inProgress": "In Progress"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved",
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -664,5 +664,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok" : "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Serie",
|
||||
"totalFiles": "Archivos"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Nombre",
|
||||
"map": "Mapa",
|
||||
"currentPlayers": "Jugadores actuales",
|
||||
"players": "Jugadores",
|
||||
"maxPlayers": "Jugadores máximos",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"currentPlayers": "Current players",
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"notStarted": "Not Started",
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Séries",
|
||||
"totalFiles": "Fichiers"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Nom",
|
||||
"map": "Carte",
|
||||
"currentPlayers": "Joueurs actuels",
|
||||
"players": "Joueurs",
|
||||
"maxPlayers": "Joueurs max",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Résultat",
|
||||
"status": "Statut",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Réussi",
|
||||
"notStarted": "Arrêté",
|
||||
"failed": "Échoué",
|
||||
"canceled": "Annulé",
|
||||
"inProgress": "En cours",
|
||||
"totalPrs": "PRs Total",
|
||||
"myPrs": "Mes PRs",
|
||||
"approved": "Approuvé"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"myPrs": "My PRs",
|
||||
"totalPrs": "Total PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"myPrs": "My PRs",
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
"transcoding": "Prekodiranje",
|
||||
"bitrate": "Stopa bitova",
|
||||
"no_active": "Nema aktivnih prijenosa",
|
||||
"plex_connection_error": "Check Plex Connection"
|
||||
"plex_connection_error": "Provjeri Plex vezu"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "Stopa",
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Serije",
|
||||
"totalFiles": "Datoteke"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage",
|
||||
"ok": "Ok",
|
||||
"errored": "Errors"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
"free": "Szabad",
|
||||
"used": "Használt",
|
||||
"load": "Terhelés",
|
||||
"cpu": "CPU",
|
||||
"cpu": "Processzor",
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
"uptime": "FUT",
|
||||
"months": "hó",
|
||||
"days": "n",
|
||||
"hours": "ó",
|
||||
"minutes": "p"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
@@ -20,20 +20,20 @@
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown",
|
||||
"unhealthy": "Unhealthy",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
"error": "Hiba",
|
||||
"unknown": "Ismeretlen",
|
||||
"unhealthy": "Egészségtelen",
|
||||
"running": "Futó",
|
||||
"starting": "Indul",
|
||||
"not_found": "Nem található",
|
||||
"exited": "Kilépett",
|
||||
"partial": "Részleges",
|
||||
"healthy": "Egészséges"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Keresett",
|
||||
"queued": "Sorban áll",
|
||||
"artists": "Artists"
|
||||
"artists": "Előadók"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Keresett",
|
||||
@@ -48,16 +48,16 @@
|
||||
"missing_type": "Hiányzó Widget Típus: {{type}}",
|
||||
"api_error": "API Hiba",
|
||||
"status": "Státusz",
|
||||
"information": "Information",
|
||||
"information": "Információ",
|
||||
"url": "URL",
|
||||
"raw_error": "Raw Error",
|
||||
"response_data": "Response Data"
|
||||
"raw_error": "Nyers hiba",
|
||||
"response_data": "Válaszadatok"
|
||||
},
|
||||
"weather": {
|
||||
"current": "Aktuális hely",
|
||||
"allow": "Kattints az engedélyezéshez",
|
||||
"updating": "Frissítés",
|
||||
"wait": "Kérlek várj"
|
||||
"wait": "Kérjük várjon"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Keresés…"
|
||||
@@ -77,7 +77,7 @@
|
||||
"transcoding": "Átkódolás",
|
||||
"bitrate": "Bitráta",
|
||||
"no_active": "Nincs aktív lejátszás",
|
||||
"plex_connection_error": "Check Plex Connection"
|
||||
"plex_connection_error": "Plex kapcsolat ellenőrzése"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "Ráta",
|
||||
@@ -110,16 +110,16 @@
|
||||
"wanted": "Keresett",
|
||||
"queued": "Sorban áll",
|
||||
"series": "Sorozat",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
"queue": "Várólista",
|
||||
"unknown": "Ismeretlen"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Keresett",
|
||||
"queued": "Sorban áll",
|
||||
"movies": "Filmek",
|
||||
"missing": "Missing",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
"missing": "Hiányzik",
|
||||
"queue": "Várólista",
|
||||
"unknown": "Ismeretlen"
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "Függőben",
|
||||
@@ -135,13 +135,13 @@
|
||||
"pending": "Függőben",
|
||||
"approved": "Engedélyezett",
|
||||
"available": "Elérhető",
|
||||
"processing": "Processing"
|
||||
"processing": "Feldolgozás"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Lekérdezések",
|
||||
"blocked": "Blokkolt",
|
||||
"gravity": "Gravitáció",
|
||||
"blocked_percent": "Blocked %"
|
||||
"blocked_percent": "Blokkolt %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Lekérdezések",
|
||||
@@ -193,184 +193,184 @@
|
||||
"errored": "Hibás"
|
||||
},
|
||||
"mastodon": {
|
||||
"user_count": "Users",
|
||||
"status_count": "Posts",
|
||||
"domain_count": "Domains"
|
||||
"user_count": "Felhasználók",
|
||||
"status_count": "Posztok",
|
||||
"domain_count": "Domainek"
|
||||
},
|
||||
"strelaysrv": {
|
||||
"numActiveSessions": "Sessions",
|
||||
"numConnections": "Connections",
|
||||
"dataRelayed": "Relayed",
|
||||
"transferRate": "Rate"
|
||||
"numActiveSessions": "Munkamenetek",
|
||||
"numConnections": "Csatlakozások",
|
||||
"dataRelayed": "Átirányított",
|
||||
"transferRate": "Ráta"
|
||||
},
|
||||
"authentik": {
|
||||
"users": "Users",
|
||||
"loginsLast24H": "Logins (24h)",
|
||||
"failedLoginsLast24H": "Failed Logins (24h)"
|
||||
"users": "Felhasználók",
|
||||
"loginsLast24H": "Bejelentkezések (24 óra)",
|
||||
"failedLoginsLast24H": "Sikertelen bejelentkezések (24h)"
|
||||
},
|
||||
"proxmox": {
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"mem": "RAM",
|
||||
"cpu": "Processzor",
|
||||
"lxc": "LXC",
|
||||
"vms": "VMs"
|
||||
"vms": "VM-ek"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Users",
|
||||
"uptime": "System Uptime",
|
||||
"days": "Days",
|
||||
"users": "Felhasználók",
|
||||
"uptime": "Rendszer üzemidő",
|
||||
"days": "Napok",
|
||||
"wan": "WAN",
|
||||
"lan_users": "LAN Users",
|
||||
"wlan_users": "WLAN Users",
|
||||
"up": "UP",
|
||||
"down": "DOWN",
|
||||
"wait": "Please wait",
|
||||
"lan_users": "LAN Felhasználók",
|
||||
"wlan_users": "WLAN Felhasználók",
|
||||
"up": "FUT",
|
||||
"down": "ÁLL",
|
||||
"wait": "Kérjük várjon",
|
||||
"lan": "LAN",
|
||||
"wlan": "WLAN",
|
||||
"devices": "Devices",
|
||||
"lan_devices": "LAN Devices",
|
||||
"wlan_devices": "WLAN Devices",
|
||||
"empty_data": "Subsystem status unknown"
|
||||
"devices": "Eszközök",
|
||||
"lan_devices": "LAN Eszközök",
|
||||
"wlan_devices": "WLAN Eszközök",
|
||||
"empty_data": "Az alrendszer állapota ismeretlen"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Active Streams",
|
||||
"movies": "Movies",
|
||||
"tv": "TV Shows",
|
||||
"albums": "Albums"
|
||||
"streams": "Aktív Stream-ek",
|
||||
"movies": "Filmek",
|
||||
"tv": "TV műsorok",
|
||||
"albums": "Albumok"
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
"cpu": "Processzor",
|
||||
"wait": "Kérjük várjon",
|
||||
"temp": "HŐMÉRSÉKLET",
|
||||
"uptime": "FUT",
|
||||
"days": "n",
|
||||
"hours": "ó",
|
||||
"load": "Kapacitáskihasználás",
|
||||
"warn": "Figyelmeztet",
|
||||
"total": "Összes",
|
||||
"free": "Szabad",
|
||||
"used": "Felhasznált"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
"diffsDetected": "Diffs Detected"
|
||||
"totalObserved": "Összes Megfigyelt",
|
||||
"diffsDetected": "Észlelt különbségek"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Napos",
|
||||
"0-night": "Derült",
|
||||
"3-day": "Cloudy",
|
||||
"3-night": "Cloudy",
|
||||
"45-day": "Foggy",
|
||||
"53-day": "Drizzle",
|
||||
"56-night": "Light Freezing Drizzle",
|
||||
"57-day": "Freezing Drizzle",
|
||||
"3-day": "Felhős",
|
||||
"3-night": "Felhős",
|
||||
"45-day": "Ködös",
|
||||
"53-day": "Szitálás",
|
||||
"56-night": "Enyhe fagyos szitálás",
|
||||
"57-day": "Fagyos szitálás",
|
||||
"1-day": "Többnyire napos",
|
||||
"1-night": "Többnyire derült",
|
||||
"2-day": "Partly Cloudy",
|
||||
"2-night": "Partly Cloudy",
|
||||
"45-night": "Foggy",
|
||||
"48-day": "Foggy",
|
||||
"48-night": "Foggy",
|
||||
"51-day": "Light Drizzle",
|
||||
"51-night": "Light Drizzle",
|
||||
"57-night": "Freezing Drizzle",
|
||||
"61-day": "Light Rain",
|
||||
"61-night": "Light Rain",
|
||||
"53-night": "Drizzle",
|
||||
"55-day": "Heavy Drizzle",
|
||||
"55-night": "Heavy Drizzle",
|
||||
"56-day": "Light Freezing Drizzle",
|
||||
"63-day": "Rain",
|
||||
"63-night": "Rain",
|
||||
"65-day": "Heavy Rain",
|
||||
"65-night": "Heavy Rain",
|
||||
"66-day": "Freezing Rain",
|
||||
"66-night": "Freezing Rain",
|
||||
"67-day": "Freezing Rain",
|
||||
"67-night": "Freezing Rain",
|
||||
"71-day": "Light Snow",
|
||||
"71-night": "Light Snow",
|
||||
"73-day": "Snow",
|
||||
"73-night": "Snow",
|
||||
"75-day": "Heavy Snow",
|
||||
"75-night": "Heavy Snow",
|
||||
"77-day": "Snow Grains",
|
||||
"77-night": "Snow Grains",
|
||||
"80-day": "Light Showers",
|
||||
"80-night": "Light Showers",
|
||||
"81-day": "Showers",
|
||||
"81-night": "Showers",
|
||||
"82-day": "Heavy Showers",
|
||||
"82-night": "Heavy Showers",
|
||||
"85-day": "Snow Showers",
|
||||
"85-night": "Snow Showers",
|
||||
"86-day": "Snow Showers",
|
||||
"86-night": "Snow Showers",
|
||||
"95-day": "Thunderstorm",
|
||||
"95-night": "Thunderstorm",
|
||||
"96-day": "Thunderstorm With Hail",
|
||||
"96-night": "Thunderstorm With Hail",
|
||||
"99-day": "Thunderstorm With Hail",
|
||||
"99-night": "Thunderstorm With Hail"
|
||||
"2-day": "Részben felhős",
|
||||
"2-night": "Részben felhős",
|
||||
"45-night": "Ködös",
|
||||
"48-day": "Ködös",
|
||||
"48-night": "Ködös",
|
||||
"51-day": "Enyhe szitálás",
|
||||
"51-night": "Enyhe szitálás",
|
||||
"57-night": "Fagyos szitálás",
|
||||
"61-day": "Enyhe eső",
|
||||
"61-night": "Enyhe eső",
|
||||
"53-night": "Szitálás",
|
||||
"55-day": "Erős szitálás",
|
||||
"55-night": "Erős szitálás",
|
||||
"56-day": "Enyhe fagyos szitálás",
|
||||
"63-day": "Eső",
|
||||
"63-night": "Eső",
|
||||
"65-day": "Heves eső",
|
||||
"65-night": "Heves eső",
|
||||
"66-day": "Ónos eső",
|
||||
"66-night": "Ónos eső",
|
||||
"67-day": "Ónos eső",
|
||||
"67-night": "Ónos eső",
|
||||
"71-day": "Enyhe havazás",
|
||||
"71-night": "Enyhe havazás",
|
||||
"73-day": "Hó",
|
||||
"73-night": "Hó",
|
||||
"75-day": "Erős havazás",
|
||||
"75-night": "Erős havazás",
|
||||
"77-day": "Hódara",
|
||||
"77-night": "Hódara",
|
||||
"80-day": "Enyhe záporok",
|
||||
"80-night": "Enyhe záporok",
|
||||
"81-day": "Záporok",
|
||||
"81-night": "Záporok",
|
||||
"82-day": "Heves záporok",
|
||||
"82-night": "Heves záporok",
|
||||
"85-day": "Hózáporok",
|
||||
"85-night": "Hózáporok",
|
||||
"86-day": "Hózáporok",
|
||||
"86-night": "Hózáporok",
|
||||
"95-day": "Zivatar",
|
||||
"95-night": "Zivatar",
|
||||
"96-day": "Zivatar jégesővel",
|
||||
"96-night": "Zivatar jégesővel",
|
||||
"99-day": "Zivatar jégesővel",
|
||||
"99-night": "Zivatar jégesővel"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"bookmark": "Könyvjelző",
|
||||
"service": "Szolgáltatás",
|
||||
"search": "Keresés",
|
||||
"custom": "Egyedi",
|
||||
"visit": "Megnéz",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
"updates": "Updates",
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"available_update": "Rendszer",
|
||||
"updates": "Frissítések",
|
||||
"update_available": "Elérhető Frissítés",
|
||||
"up_to_date": "Naprakész",
|
||||
"child_bridges": "Gyerek Hidak",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
"up": "Fut",
|
||||
"pending": "Függőben",
|
||||
"down": "Áll"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
"rejectedPushes": "Rejected",
|
||||
"filters": "Filters",
|
||||
"indexers": "Indexers"
|
||||
"approvedPushes": "Jóváhagyott",
|
||||
"rejectedPushes": "Elutasított",
|
||||
"filters": "Szűrők",
|
||||
"indexers": "Indexelők"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
"containers_updated": "Updated",
|
||||
"containers_failed": "Failed"
|
||||
"containers_scanned": "Beolvasott",
|
||||
"containers_updated": "Frissített",
|
||||
"containers_failed": "Sikertelen"
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "Queue",
|
||||
"videos": "Videos",
|
||||
"channels": "Channels",
|
||||
"playlists": "Playlists"
|
||||
"downloads": "Várólista",
|
||||
"videos": "Videók",
|
||||
"channels": "Csatornák",
|
||||
"playlists": "Lejátszási listák"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "System Load",
|
||||
"uptime": "Uptime",
|
||||
"alerts": "Alerts",
|
||||
"load": "Rendszerterheltség",
|
||||
"uptime": "Üzemidő",
|
||||
"alerts": "Riasztások",
|
||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||
},
|
||||
"navidrome": {
|
||||
"nothing_streaming": "No Active Streams",
|
||||
"please_wait": "Please Wait"
|
||||
"nothing_streaming": "Nincsenek Aktív Stream-ek",
|
||||
"please_wait": "Kérjük Várjon"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Speed",
|
||||
"active": "Active",
|
||||
"queue": "Queue",
|
||||
"total": "Total"
|
||||
"speed": "Sebesség",
|
||||
"active": "Aktív",
|
||||
"queue": "Várólista",
|
||||
"total": "Összes"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
"public_ip": "Nyilvános IP-cím",
|
||||
"region": "Régió",
|
||||
"country": "Ország"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"channels": "Csatornák",
|
||||
"hd": "HD"
|
||||
},
|
||||
"ping": {
|
||||
@@ -378,197 +378,197 @@
|
||||
"ping": "Ping"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
"passed": "Megfelelt",
|
||||
"failed": "Sikertelen",
|
||||
"unknown": "Ismeretlen"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"total": "Total"
|
||||
"inbox": "Beérkezett",
|
||||
"total": "Összes"
|
||||
},
|
||||
"deluge": {
|
||||
"download": "Download",
|
||||
"download": "Letöltés",
|
||||
"seed": "Seed",
|
||||
"upload": "Upload",
|
||||
"upload": "Feltöltés",
|
||||
"leech": "Leech"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "Letöltés",
|
||||
"upload": "Feltöltés",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Queue",
|
||||
"processed": "Processed",
|
||||
"errored": "Errored",
|
||||
"saved": "Saved"
|
||||
"queue": "Várólista",
|
||||
"processed": "Feldolgozott",
|
||||
"errored": "Hibás",
|
||||
"saved": "Mentett"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
"read": "Olvasott",
|
||||
"unread": "Olvasatlan"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
"wait": "Kérjük Várjon",
|
||||
"no_devices": "Nincs fogadott eszközadat"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||
},
|
||||
"omada": {
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedAp": "Connected APs",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
"activeUser": "Aktív eszközök",
|
||||
"alerts": "Riasztások",
|
||||
"connectedAp": "Csatlakoztatott AP-k",
|
||||
"connectedGateway": "Csatlakoztatott gateway-ek",
|
||||
"connectedSwitches": "Csatlakoztatott switch-ek"
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "Letöltés",
|
||||
"upload": "Feltöltés",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
"cpuLoad": "Processzor Terhelés",
|
||||
"memoryUsed": "Felhasznált Memória",
|
||||
"uptime": "Üzemidő",
|
||||
"numberOfLeases": "Bérletek"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_active": "Active Streams",
|
||||
"streams_xepg": "XEPG Channels"
|
||||
"streams_all": "Minden Stream",
|
||||
"streams_active": "Aktív Stream-ek",
|
||||
"streams_xepg": "XEPG Csatornák"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
"cpu": "Processzor Terhelés",
|
||||
"memory": "Aktív Memória",
|
||||
"wanUpload": "WAN Feltöltés",
|
||||
"wanDownload": "WAN Letöltés"
|
||||
},
|
||||
"moonraker": {
|
||||
"layers": "Layers",
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progress"
|
||||
"layers": "Rétegek",
|
||||
"printer_state": "Nyomtató Állapota",
|
||||
"print_status": "Nyomtatás Állapota",
|
||||
"print_progress": "Folyamat"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"wanted": "Keresett",
|
||||
"queued": "Sorba állítva",
|
||||
"series": "Sorozatok"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
"printer_state": "Állapot",
|
||||
"temp_tool": "Szerszám hőmérséklet",
|
||||
"temp_bed": "Ágy Hőmérséklet",
|
||||
"job_completion": "Teljesítés"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"status": "Status"
|
||||
"origin_ip": "Eredeti IP",
|
||||
"status": "Állapot"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
"datastore_usage": "Adattár",
|
||||
"failed_tasks_24h": "Sikertelen feladatok 24h",
|
||||
"cpu_usage": "Processzor",
|
||||
"memory_usage": "Memória"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
"users": "Felhasználók",
|
||||
"photos": "Fényképek",
|
||||
"videos": "Videók",
|
||||
"storage": "Tárhely"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"incident": "Incident",
|
||||
"m": "m"
|
||||
"up": "Futó Webhelyek",
|
||||
"down": "Nem Elérhető Webhelyek",
|
||||
"uptime": "Üzemidő",
|
||||
"incident": "Incidens",
|
||||
"m": "perc"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
"libraries": "Könyvtárak",
|
||||
"series": "Sorozatok",
|
||||
"books": "Könyvek"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
"series": "Sorozatok",
|
||||
"issues": "Problémák",
|
||||
"wanted": "Keresett"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
"albums": "Albumok",
|
||||
"photos": "Fényképek",
|
||||
"videos": "Videók",
|
||||
"people": "Emberek"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"days": "Napok",
|
||||
"uptime": "Üzemidő",
|
||||
"volumeAvailable": "Elérhető"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
"queue": "Várólista",
|
||||
"processing": "Feldolgozás",
|
||||
"processed": "Feldolgozott",
|
||||
"time": "Idő"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
"dashboards": "Műszerfalak",
|
||||
"datasources": "Adatforrások",
|
||||
"totalalerts": "Összes Riasztás",
|
||||
"alertstriggered": "Aktivált riasztások"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
"cpuload": "Processzor Terhelés",
|
||||
"memoryusage": "Memória Használat",
|
||||
"freespace": "Szabad hely",
|
||||
"activeusers": "Aktív Felhasználók",
|
||||
"numfiles": "Fájlok",
|
||||
"numshares": "Megosztott Elemek"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
"status": "Állapot",
|
||||
"size": "Méret",
|
||||
"lastrun": "Legutóbbi futtatás",
|
||||
"nextrun": "Következő Futtatás",
|
||||
"failed": "Sikertelen"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
"active_workers": "Aktív Dolgozók",
|
||||
"total_workers": "Összes Dolgozó",
|
||||
"records_total": "Várólista Hossza"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"new": "Új",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"grace": "Türelmi idő alatt",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
"paused": "Szünetel",
|
||||
"status": "Állapot",
|
||||
"last_ping": "Legutóbbi Ping",
|
||||
"never": "Még nincsenek ping-ek"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
"servers": "Szerverek",
|
||||
"nodes": "Node-ok"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
"targets_up": "Célpontok Futnak",
|
||||
"targets_down": "Célpontok Állnak",
|
||||
"targets_total": "Összes Célpont"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"players": "Lejátszók",
|
||||
"version": "Verzió",
|
||||
"status": "Állapot",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
"gross_percent_today": "Ma",
|
||||
"gross_percent_1y": "Egy év",
|
||||
"gross_percent_max": "Mindig"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcast",
|
||||
@@ -577,83 +577,111 @@
|
||||
"booksDuration": "Időtartam"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "People Home",
|
||||
"lights_on": "Lights On",
|
||||
"switches_on": "Switches On"
|
||||
"people_home": "Emberek otthon",
|
||||
"lights_on": "Fények bekapcsolva",
|
||||
"switches_on": "Kapcsolók felkapcsolva"
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "Subscriptions",
|
||||
"unread": "Unread"
|
||||
"subscriptions": "Előfizetések",
|
||||
"unread": "Olvasatlan"
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Shows",
|
||||
"recordings": "Recordings",
|
||||
"scheduled": "Scheduled",
|
||||
"passes": "Passes"
|
||||
"shows": "Műsorok",
|
||||
"recordings": "Felvételek",
|
||||
"scheduled": "Ütemezett",
|
||||
"passes": "Engedélyek"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
"monitoring": "Nyomonkövetés",
|
||||
"updates": "Frissítések"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"address": "Cím",
|
||||
"expires": "Lejár",
|
||||
"never": "Soha",
|
||||
"last_seen": "Utoljára látott",
|
||||
"now": "Most",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago",
|
||||
"ago": "{{value}} Ezelőtt",
|
||||
"hours": "{{number}}h"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
"cpuUsage": "Processzor Használat",
|
||||
"memUsage": "Memória Használat",
|
||||
"systemTempC": "Rendszerhőmérséklet",
|
||||
"poolUsage": "Pool Használat",
|
||||
"volumeUsage": "Kötet Használat",
|
||||
"invalid": "Érvénytelen"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"load": "Átlagos terhelés",
|
||||
"memory": "RAM Használat",
|
||||
"wanStatus": "WAN Állapot",
|
||||
"up": "Fut",
|
||||
"down": "Áll",
|
||||
"temp": "Hőmérséklet",
|
||||
"disk": "Lemezhasználat",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
"upstreams": "Upstreamek",
|
||||
"requests": "Jelenlegi kérelmek",
|
||||
"requests_failed": "Sikertelen kérelmek"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"pv_power": "Termelés",
|
||||
"battery_soc": "Akkumulátor",
|
||||
"grid_power": "Rács",
|
||||
"home_power": "Fogyasztás",
|
||||
"charge_power": "Töltő",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
"total": "Összes",
|
||||
"connected": "Csatlakoztatott",
|
||||
"new_devices": "Új Eszközök",
|
||||
"down_alerts": "Leállási Figyelmeztetések"
|
||||
},
|
||||
"jdownloader": {
|
||||
"downloadSpeed": "Download Speed",
|
||||
"downloadCount": "Queue Count",
|
||||
"downloadTotalBytes": "Size",
|
||||
"downloadBytesRemaining": "Remaining"
|
||||
"downloadSpeed": "Sebesség",
|
||||
"downloadCount": "Összes függőben lévő",
|
||||
"downloadTotalBytes": "Méret",
|
||||
"downloadBytesRemaining": "Fennmaradó"
|
||||
},
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
"seriesCount": "Sorozatok",
|
||||
"totalFiles": "Fájlok"
|
||||
},
|
||||
"gamedig": {
|
||||
"ping": "Ping",
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots"
|
||||
},
|
||||
"azuredevops": {
|
||||
"status": "Status",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved",
|
||||
"result": "Result",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -494,9 +494,9 @@
|
||||
},
|
||||
"weather": {
|
||||
"wait": "Harap tunggu",
|
||||
"current": "Current Location",
|
||||
"allow": "Click to allow",
|
||||
"updating": "Updating"
|
||||
"current": "Lokasi Saat Ini",
|
||||
"allow": "Klik untuk mengizinkan",
|
||||
"updating": "Memperbarui"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Telusuri…"
|
||||
@@ -590,11 +590,11 @@
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used",
|
||||
"free": "Luang",
|
||||
"used": "Digunakan",
|
||||
"load": "Load",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"max": "Maks",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"hours": "h",
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Serie",
|
||||
"totalFiles": "File"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"ping": "Ping",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Filer"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved",
|
||||
"result": "Result",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
"transcoding": "Transcodificando",
|
||||
"bitrate": "Taxa de bits",
|
||||
"no_active": "Sem transmissões ativas",
|
||||
"plex_connection_error": "Check Plex Connection"
|
||||
"plex_connection_error": "Verifique a conexão do Plex"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "Taxa",
|
||||
@@ -114,21 +114,21 @@
|
||||
"wanted": "Desejado",
|
||||
"queued": "Na fila",
|
||||
"series": "Séries",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
"queue": "Fila",
|
||||
"unknown": "Desconhecido"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Desejado",
|
||||
"queued": "Na fila",
|
||||
"movies": "Filmes",
|
||||
"missing": "Faltando",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
"queue": "Fila",
|
||||
"unknown": "Desconhecido"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Desejado",
|
||||
"queued": "Na fila",
|
||||
"artists": "Artists"
|
||||
"artists": "Artistas"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Desejado",
|
||||
@@ -159,7 +159,7 @@
|
||||
"queries": "Consultas",
|
||||
"blocked": "Bloqueados",
|
||||
"gravity": "Gravidade",
|
||||
"blocked_percent": "Blocked %"
|
||||
"blocked_percent": "Bloqueado %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Consultas",
|
||||
@@ -244,11 +244,11 @@
|
||||
"uptime": "LIGADO",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"load": "Carga",
|
||||
"warn": "Aviso",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
"free": "Livre",
|
||||
"used": "Usado"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Observados",
|
||||
@@ -524,8 +524,8 @@
|
||||
"memoryusage": "Memória Utilizada",
|
||||
"freespace": "Espaço Livre",
|
||||
"activeusers": "Usuários Ativos",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
"numfiles": "Arquivos",
|
||||
"numshares": "Itens Compartilhados"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,78 +582,106 @@
|
||||
"switches_on": "Interruptores Ligados"
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "Subscriptions",
|
||||
"unread": "Unread"
|
||||
"subscriptions": "Assinaturas",
|
||||
"unread": "Não lida"
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Shows",
|
||||
"recordings": "Recordings",
|
||||
"scheduled": "Scheduled",
|
||||
"recordings": "Gravações",
|
||||
"scheduled": "Agendado",
|
||||
"passes": "Passes"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
"monitoring": "Monitorando",
|
||||
"updates": "Atualizações"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"address": "Endereço",
|
||||
"expires": "Expira",
|
||||
"never": "Nunca",
|
||||
"last_seen": "Visto pela última vez",
|
||||
"now": "Agora",
|
||||
"years": "{{number}}a",
|
||||
"weeks": "{{number}}s",
|
||||
"hours": "{{number}}h",
|
||||
"days": "{{number}}d",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
"ago": "{{value}} Atrás"
|
||||
},
|
||||
"qnap": {
|
||||
"systemTempC": "System Temp",
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "Temp Sistema",
|
||||
"cpuUsage": "Uso CPU",
|
||||
"memUsage": "Uso MEM",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
"volumeUsage": "Uso Volume",
|
||||
"invalid": "Invalido"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"load": "Média de carga",
|
||||
"memory": "Uso Mem",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"disk": "Uso de disco",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
"requests": "Solicitações atuais",
|
||||
"requests_failed": "Solicitações com falha"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"pv_power": "Produção",
|
||||
"battery_soc": "Bateria",
|
||||
"grid_power": "Grade",
|
||||
"home_power": "Consumo",
|
||||
"charge_power": "Carregador",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
"connected": "Conectado",
|
||||
"new_devices": "Novos dispositivos",
|
||||
"down_alerts": "Alertas de Quedas"
|
||||
},
|
||||
"jdownloader": {
|
||||
"downloadCount": "Queue Count",
|
||||
"downloadSpeed": "Download Speed",
|
||||
"downloadBytesRemaining": "Remaining",
|
||||
"downloadTotalBytes": "Size"
|
||||
"downloadCount": "Fila",
|
||||
"downloadSpeed": "Velocidade de download",
|
||||
"downloadBytesRemaining": "Restante",
|
||||
"downloadTotalBytes": "Tamanho"
|
||||
},
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
"totalFiles": "Arquivos"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Nome",
|
||||
"map": "Mapa",
|
||||
"currentPlayers": "Jogadores atuais",
|
||||
"players": "Jogadores",
|
||||
"maxPlayers": "Jogadores Max",
|
||||
"bots": "Robos",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -664,5 +664,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"approved": "Approved",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved",
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"inProgress": "In Progress",
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Serije",
|
||||
"totalFiles": "Datoteke"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"totalFiles": "Files",
|
||||
"seriesCount": "Series"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"approved": "Approved",
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"totalFiles": "Files",
|
||||
"seriesCount": "Series"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Серій",
|
||||
"totalFiles": "Файлів"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Назва",
|
||||
"map": "Мапа",
|
||||
"currentPlayers": "Поточні гравці",
|
||||
"players": "Гравці",
|
||||
"maxPlayers": "Максимум гравців",
|
||||
"bots": "Ботів",
|
||||
"ping": "Пінг"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,5 +655,33 @@
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
"status": "Status",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Approved"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { useRef } from "react";
|
||||
import classNames from "classnames";
|
||||
import { Disclosure, Transition } from '@headlessui/react';
|
||||
import { MdKeyboardArrowDown } from "react-icons/md";
|
||||
@@ -6,6 +7,7 @@ import ErrorBoundary from "components/errorboundry";
|
||||
import List from "components/bookmarks/list";
|
||||
|
||||
export default function BookmarksGroup({ group, disableCollapse }) {
|
||||
const panel = useRef();
|
||||
return (
|
||||
<div key={group.name} className="flex-1">
|
||||
<Disclosure defaultOpen>
|
||||
@@ -15,19 +17,24 @@ export default function BookmarksGroup({ group, disableCollapse }) {
|
||||
<h2 className="text-theme-800 dark:text-theme-300 text-xl font-medium">{group.name}</h2>
|
||||
<MdKeyboardArrowDown className={classNames(
|
||||
disableCollapse ? 'hidden' : '',
|
||||
'transition-opacity opacity-0 group-hover:opacity-100 ml-auto text-theme-800 dark:text-theme-300 text-xl',
|
||||
open ? 'rotate-180 transform' : ''
|
||||
'transition-all opacity-0 group-hover:opacity-100 ml-auto text-theme-800 dark:text-theme-300 text-xl',
|
||||
open ? '' : 'rotate-90'
|
||||
)} />
|
||||
</Disclosure.Button>
|
||||
<Transition
|
||||
enter="transition duration-200 ease-out"
|
||||
enterFrom="transform scale-75 opacity-0"
|
||||
enterTo="transform scale-100 opacity-100"
|
||||
leave="transition duration-75 ease-out"
|
||||
leaveFrom="transform scale-100 opacity-100"
|
||||
leaveTo="transform scale-75 opacity-0"
|
||||
// Otherwise the transition group does display: none and cancels animation
|
||||
className="!block"
|
||||
unmount={false}
|
||||
beforeLeave={() => {
|
||||
panel.current.style.height = `${panel.current.scrollHeight}px`;
|
||||
setTimeout(() => {panel.current.style.height = `0`}, 1);
|
||||
}}
|
||||
beforeEnter={() => {
|
||||
panel.current.style.height = `0px`;
|
||||
setTimeout(() => {panel.current.style.height = `${panel.current.scrollHeight}px`}, 1);
|
||||
}}
|
||||
>
|
||||
<Disclosure.Panel>
|
||||
<Disclosure.Panel className="transition-all overflow-hidden duration-300 ease-out" ref={panel} static>
|
||||
<ErrorBoundary>
|
||||
<List bookmarks={group.bookmarks} />
|
||||
</ErrorBoundary>
|
||||
|
||||
@@ -33,11 +33,22 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
|
||||
}
|
||||
|
||||
// check mdi- or si- prefixed icons
|
||||
const prefix = icon.split("-")[0]
|
||||
const prefix = icon.split("-")[0];
|
||||
|
||||
if (prefix in iconSetURLs) {
|
||||
// get icon source
|
||||
const iconName = icon.replace(`${prefix}-`, "").replace(".svg", "");
|
||||
// default to theme setting
|
||||
let iconName = icon.replace(`${prefix}-`, "").replace(".svg", "");
|
||||
let iconColor = settings.iconStyle === "theme" ?
|
||||
`rgb(var(--color-${ theme === "dark" ? 300 : 900 }) / var(--tw-text-opacity, 1))` :
|
||||
"linear-gradient(180deg, rgb(var(--color-logo-start)), rgb(var(--color-logo-stop)))";
|
||||
|
||||
// use custom hex color if provided
|
||||
const colorMatches = icon.match(/[#][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]$/i)
|
||||
if (colorMatches?.length) {
|
||||
iconName = icon.replace(`${prefix}-`, "").replace(".svg", "").replace(`-${colorMatches[0]}`, "");
|
||||
iconColor = `${colorMatches[0]}`;
|
||||
}
|
||||
|
||||
const iconSource = `${iconSetURLs[prefix]}${iconName}.svg`;
|
||||
|
||||
return (
|
||||
@@ -47,16 +58,13 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
|
||||
height,
|
||||
maxWidth: '100%',
|
||||
maxHeight: '100%',
|
||||
background: settings.iconStyle === "theme" ?
|
||||
`rgb(var(--color-${ theme === "dark" ? 300 : 900 }) / var(--tw-text-opacity, 1))` :
|
||||
"linear-gradient(180deg, rgb(var(--color-logo-start)), rgb(var(--color-logo-stop)))",
|
||||
background: `${iconColor}`,
|
||||
mask: `url(${iconSource}) no-repeat center / contain`,
|
||||
WebkitMask: `url(${iconSource}) no-repeat center / contain`,
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// fallback to dashboard-icons
|
||||
if (icon.endsWith(".svg")) {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { useRef } from "react";
|
||||
import classNames from "classnames";
|
||||
import { Disclosure, Transition } from '@headlessui/react';
|
||||
import { MdKeyboardArrowDown } from "react-icons/md";
|
||||
@@ -7,6 +8,8 @@ import ResolvedIcon from "components/resolvedicon";
|
||||
|
||||
export default function ServicesGroup({ group, services, layout, fiveColumns, disableCollapse }) {
|
||||
|
||||
const panel = useRef();
|
||||
|
||||
return (
|
||||
<div
|
||||
key={services.name}
|
||||
@@ -28,19 +31,24 @@ export default function ServicesGroup({ group, services, layout, fiveColumns, di
|
||||
<h2 className="flex text-theme-800 dark:text-theme-300 text-xl font-medium">{services.name}</h2>
|
||||
<MdKeyboardArrowDown className={classNames(
|
||||
disableCollapse ? 'hidden' : '',
|
||||
'transition-opacity opacity-0 group-hover:opacity-100 ml-auto text-theme-800 dark:text-theme-300 text-xl',
|
||||
open ? 'rotate-180 transform' : ''
|
||||
'transition-all opacity-0 group-hover:opacity-100 ml-auto text-theme-800 dark:text-theme-300 text-xl',
|
||||
open ? '' : 'rotate-90'
|
||||
)} />
|
||||
</Disclosure.Button>
|
||||
<Transition
|
||||
enter="transition duration-200 ease-out"
|
||||
enterFrom="transform scale-75 opacity-0"
|
||||
enterTo="transform scale-100 opacity-100"
|
||||
leave="transition duration-75 ease-out"
|
||||
leaveFrom="transform scale-100 opacity-100"
|
||||
leaveTo="transform scale-75 opacity-0"
|
||||
// Otherwise the transition group does display: none and cancels animation
|
||||
className="!block"
|
||||
unmount={false}
|
||||
beforeLeave={() => {
|
||||
panel.current.style.height = `${panel.current.scrollHeight}px`;
|
||||
setTimeout(() => {panel.current.style.height = `0`}, 1);
|
||||
}}
|
||||
beforeEnter={() => {
|
||||
panel.current.style.height = `0px`;
|
||||
setTimeout(() => {panel.current.style.height = `${panel.current.scrollHeight}px`}, 1);
|
||||
}}
|
||||
>
|
||||
<Disclosure.Panel>
|
||||
<Disclosure.Panel className="transition-all overflow-hidden duration-300 ease-out" ref={panel} static>
|
||||
<List group={group} services={services.services} layout={layout} />
|
||||
</Disclosure.Panel>
|
||||
</Transition>
|
||||
|
||||
@@ -18,7 +18,8 @@ export default function Container({ error = false, children, service }) {
|
||||
const childrenArray = Array.isArray(children) ? children : [children];
|
||||
|
||||
let visibleChildren = childrenArray;
|
||||
const fields = service?.widget?.fields;
|
||||
let fields = service?.widget?.fields;
|
||||
if (typeof service.widget.fields === 'string') fields = JSON.parse(service.widget.fields);
|
||||
const type = service?.widget?.type;
|
||||
if (fields && type) {
|
||||
// if the field contains a "." then it most likely contains a common loc value
|
||||
|
||||
@@ -37,7 +37,7 @@ export default function Widget({ options }) {
|
||||
<Resource icon={FaMemory} label={t("glances.wait")} percentage="0" />
|
||||
{ options.cputemp && <Resource icon={FaThermometerHalf} label={t("glances.wait")} percentage="0" /> }
|
||||
{ options.disk && !Array.isArray(options.disk) && <Resource key={options.disk} icon={FiHardDrive} label={t("glances.wait")} percentage="0" /> }
|
||||
{ options.disk && Array.isArray(options.disk) && options.disk.map((disk) => <Resource key={disk.mnt_point} icon={FiHardDrive} label={t("glances.wait")} percentage="0" /> )}
|
||||
{ options.disk && Array.isArray(options.disk) && options.disk.map((disk) => <Resource key={`disk_${disk.mnt_point}`} icon={FiHardDrive} label={t("glances.wait")} percentage="0" /> ) }
|
||||
{ options.uptime && <Resource icon={FaRegClock} label={t("glances.wait")} percentage="0" /> }
|
||||
{ options.label && <WidgetLabel label={options.label} /> }
|
||||
</Resources>;
|
||||
@@ -50,7 +50,7 @@ export default function Widget({ options }) {
|
||||
if (options.cputemp && cpuSensors) {
|
||||
try {
|
||||
mainTemp = cpuSensors.reduce((acc, s) => acc + s.value, 0) / cpuSensors.length;
|
||||
maxTemp = Math.max(cpuSensors.reduce((acc, s) => acc + s.warning, 0) / cpuSensors.length, maxTemp);
|
||||
maxTemp = Math.max(cpuSensors.reduce((acc, s) => acc + (s.warning > 0 ? s.warning : 0), 0) / cpuSensors.length, maxTemp);
|
||||
if (unit === "fahrenheit") {
|
||||
mainTemp = convertToFahrenheit(mainTemp);
|
||||
maxTemp = convertToFahrenheit(maxTemp);
|
||||
@@ -108,7 +108,7 @@ export default function Widget({ options }) {
|
||||
expanded={options.expanded}
|
||||
/>
|
||||
{disks.map((disk) => (
|
||||
<Resource key={disk.mnt_point}
|
||||
<Resource key={`disk_${disk.mnt_point}`}
|
||||
icon={FiHardDrive}
|
||||
value={t("common.bytes", { value: disk.free })}
|
||||
label={t("glances.free")}
|
||||
|
||||
@@ -8,58 +8,62 @@ export default function Logo({ options }) {
|
||||
<Container options={options}>
|
||||
<Raw>
|
||||
{options.icon ?
|
||||
<ResolvedIcon icon={options.icon} width={48} height={48} /> :
|
||||
<div className="mr-3">
|
||||
<ResolvedIcon icon={options.icon} width={48} height={48} />
|
||||
</div> :
|
||||
// fallback to homepage logo
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 1024 1024"
|
||||
style={{
|
||||
enableBackground: "new 0 0 1024 1024",
|
||||
}}
|
||||
xmlSpace="preserve"
|
||||
className="w-full h-full"
|
||||
>
|
||||
<style>
|
||||
{
|
||||
".st0{display:none}.st3{stroke-linecap:square}.st3,.st4{fill:none;stroke:#fff;stroke-miterlimit:10}.st6{display:inline;fill:#333}.st7{fill:#fff}"
|
||||
}
|
||||
</style>
|
||||
<g id="Icon">
|
||||
<path
|
||||
d="M771.9 191c27.7 0 50.1 26.5 50.1 59.3v186.4l-100.2.3V250.3c0-32.8 22.4-59.3 50.1-59.3z"
|
||||
style={{
|
||||
fill: "rgba(var(--color-logo-start))",
|
||||
}}
|
||||
/>
|
||||
<linearGradient
|
||||
id="homepage_logo_gradient"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1={200.746}
|
||||
y1={225.015}
|
||||
x2={764.986}
|
||||
y2={789.255}
|
||||
>
|
||||
<stop
|
||||
offset={0}
|
||||
<div className="w-12 h-12">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 1024 1024"
|
||||
style={{
|
||||
enableBackground: "new 0 0 1024 1024",
|
||||
}}
|
||||
xmlSpace="preserve"
|
||||
className="w-full h-full"
|
||||
>
|
||||
<style>
|
||||
{
|
||||
".st0{display:none}.st3{stroke-linecap:square}.st3,.st4{fill:none;stroke:#fff;stroke-miterlimit:10}.st6{display:inline;fill:#333}.st7{fill:#fff}"
|
||||
}
|
||||
</style>
|
||||
<g id="Icon">
|
||||
<path
|
||||
d="M771.9 191c27.7 0 50.1 26.5 50.1 59.3v186.4l-100.2.3V250.3c0-32.8 22.4-59.3 50.1-59.3z"
|
||||
style={{
|
||||
stopColor: "rgba(var(--color-logo-start))",
|
||||
fill: "rgba(var(--color-logo-start))",
|
||||
}}
|
||||
/>
|
||||
<stop
|
||||
offset={1}
|
||||
<linearGradient
|
||||
id="homepage_logo_gradient"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1={200.746}
|
||||
y1={225.015}
|
||||
x2={764.986}
|
||||
y2={789.255}
|
||||
>
|
||||
<stop
|
||||
offset={0}
|
||||
style={{
|
||||
stopColor: "rgba(var(--color-logo-start))",
|
||||
}}
|
||||
/>
|
||||
<stop
|
||||
offset={1}
|
||||
style={{
|
||||
stopColor: "rgba(var(--color-logo-stop))",
|
||||
}}
|
||||
/>
|
||||
</linearGradient>
|
||||
<path
|
||||
d="M721.8 250.3c0-32.7 22.4-59.3 50.1-59.3H253.1c-27.7 0-50.1 26.5-50.1 59.3v582.2l90.2-75.7-.1-130.3H375v61.8l88-73.8 258.8 217.9V250.6"
|
||||
style={{
|
||||
stopColor: "rgba(var(--color-logo-stop))",
|
||||
fill: "url(#homepage_logo_gradient)",
|
||||
}}
|
||||
/>
|
||||
</linearGradient>
|
||||
<path
|
||||
d="M721.8 250.3c0-32.7 22.4-59.3 50.1-59.3H253.1c-27.7 0-50.1 26.5-50.1 59.3v582.2l90.2-75.7-.1-130.3H375v61.8l88-73.8 258.8 217.9V250.6"
|
||||
style={{
|
||||
fill: "url(#homepage_logo_gradient)",
|
||||
}}
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
}
|
||||
</Raw>
|
||||
</Container>
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
import mapIcon from "utils/weather/openmeteo-condition-map";
|
||||
|
||||
export default function Icon({ condition, timeOfDay }) {
|
||||
const IconComponent = mapIcon(condition, timeOfDay);
|
||||
|
||||
return <IconComponent className="w-10 h-10 text-theme-800 dark:text-theme-200" />;
|
||||
}
|
||||
@@ -10,8 +10,7 @@ import ContainerButton from "../widget/container_button";
|
||||
import WidgetIcon from "../widget/widget_icon";
|
||||
import PrimaryText from "../widget/primary_text";
|
||||
import SecondaryText from "../widget/secondary_text";
|
||||
|
||||
import Icon from "./icon";
|
||||
import mapIcon from "../../../utils/weather/openmeteo-condition-map";
|
||||
|
||||
function Widget({ options }) {
|
||||
const { t } = useTranslation();
|
||||
@@ -33,10 +32,8 @@ function Widget({ options }) {
|
||||
}
|
||||
|
||||
const unit = options.units === "metric" ? "celsius" : "fahrenheit";
|
||||
const weatherInfo = {
|
||||
condition: data.current_weather.weathercode,
|
||||
timeOfDay: data.current_weather.time > data.daily.sunrise[0] && data.current_weather.time < data.daily.sunset[0] ? "day" : "night"
|
||||
};
|
||||
const condition = data.current_weather.weathercode;
|
||||
const timeOfDay = data.current_weather.time > data.daily.sunrise[0] && data.current_weather.time < data.daily.sunset[0] ? "day" : "night";
|
||||
|
||||
return <Container options={options}>
|
||||
<PrimaryText>
|
||||
@@ -47,8 +44,8 @@ function Widget({ options }) {
|
||||
unit,
|
||||
})}
|
||||
</PrimaryText>
|
||||
<SecondaryText>{t(`wmo.${data.current_weather.weathercode}-${weatherInfo.timeOfDay}`)}</SecondaryText>
|
||||
<WidgetIcon icon={Icon} size="xl" weatherInfo={weatherInfo} />
|
||||
<SecondaryText>{t(`wmo.${data.current_weather.weathercode}-${timeOfDay}`)}</SecondaryText>
|
||||
<WidgetIcon icon={mapIcon(condition, timeOfDay)} size="xl" />
|
||||
</Container>;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
import mapIcon from "utils/weather/owm-condition-map";
|
||||
|
||||
export default function Icon({ condition, timeOfDay }) {
|
||||
const IconComponent = mapIcon(condition, timeOfDay);
|
||||
|
||||
return <IconComponent className="w-10 h-10 text-theme-800 dark:text-theme-200" />;
|
||||
}
|
||||
@@ -10,9 +10,7 @@ import ContainerButton from "../widget/container_button";
|
||||
import PrimaryText from "../widget/primary_text";
|
||||
import SecondaryText from "../widget/secondary_text";
|
||||
import WidgetIcon from "../widget/widget_icon";
|
||||
|
||||
import Icon from "./icon";
|
||||
|
||||
import mapIcon from "../../../utils/weather/owm-condition-map";
|
||||
|
||||
function Widget({ options }) {
|
||||
const { t, i18n } = useTranslation();
|
||||
@@ -35,15 +33,13 @@ function Widget({ options }) {
|
||||
|
||||
const unit = options.units === "metric" ? "celsius" : "fahrenheit";
|
||||
|
||||
const weatherInfo = {
|
||||
condition: data.weather[0].id,
|
||||
timeOfDay: data.dt > data.sys.sunrise && data.dt < data.sys.sunset ? "day" : "night"
|
||||
};
|
||||
const condition = data.weather[0].id;
|
||||
const timeOfDay = data.dt > data.sys.sunrise && data.dt < data.sys.sunset ? "day" : "night";
|
||||
|
||||
return <Container options={options}>
|
||||
<PrimaryText>{options.label && `${options.label}, ` }{t("common.number", { value: data.main.temp, style: "unit", unit })}</PrimaryText>
|
||||
<SecondaryText>{data.weather[0].description}</SecondaryText>
|
||||
<WidgetIcon icon={Icon} size="xl" weatherInfo={weatherInfo} />
|
||||
<WidgetIcon icon={mapIcon(condition, timeOfDay)} size="xl" />
|
||||
</Container>;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ import { useTranslation } from "next-i18next";
|
||||
import Resource from "../widget/resource";
|
||||
import Error from "../widget/error";
|
||||
|
||||
export default function Cpu({ expanded }) {
|
||||
export default function Cpu({ expanded, refresh = 1500 }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { data, error } = useSWR(`/api/widgets/resources?type=cpu`, {
|
||||
refreshInterval: 1500,
|
||||
refreshInterval: refresh,
|
||||
});
|
||||
|
||||
if (error || data?.error) {
|
||||
|
||||
@@ -9,11 +9,11 @@ function convertToFahrenheit(t) {
|
||||
return t * 9/5 + 32
|
||||
}
|
||||
|
||||
export default function CpuTemp({ expanded, units }) {
|
||||
export default function CpuTemp({ expanded, units, refresh = 1500 }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { data, error } = useSWR(`/api/widgets/resources?type=cputemp`, {
|
||||
refreshInterval: 1500,
|
||||
refreshInterval: refresh,
|
||||
});
|
||||
|
||||
if (error || data?.error) {
|
||||
|
||||
@@ -5,11 +5,11 @@ import { useTranslation } from "next-i18next";
|
||||
import Resource from "../widget/resource";
|
||||
import Error from "../widget/error";
|
||||
|
||||
export default function Disk({ options, expanded }) {
|
||||
export default function Disk({ options, expanded, refresh = 1500 }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { data, error } = useSWR(`/api/widgets/resources?type=disk&target=${options.disk}`, {
|
||||
refreshInterval: 1500,
|
||||
refreshInterval: refresh,
|
||||
});
|
||||
|
||||
if (error || data?.error) {
|
||||
|
||||
@@ -5,11 +5,11 @@ import { useTranslation } from "next-i18next";
|
||||
import Resource from "../widget/resource";
|
||||
import Error from "../widget/error";
|
||||
|
||||
export default function Memory({ expanded }) {
|
||||
export default function Memory({ expanded, refresh = 1500 }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { data, error } = useSWR(`/api/widgets/resources?type=memory`, {
|
||||
refreshInterval: 1500,
|
||||
refreshInterval: refresh,
|
||||
});
|
||||
|
||||
if (error || data?.error) {
|
||||
|
||||
@@ -9,16 +9,18 @@ import Uptime from "./uptime";
|
||||
|
||||
export default function Resources({ options }) {
|
||||
const { expanded, units } = options;
|
||||
let { refresh } = options;
|
||||
refresh = Math.max(refresh, 1000);
|
||||
return <Container options={options}>
|
||||
<Raw>
|
||||
<div className="flex flex-row self-center flex-wrap justify-between">
|
||||
{options.cpu && <Cpu expanded={expanded} />}
|
||||
{options.memory && <Memory expanded={expanded} />}
|
||||
{options.cpu && <Cpu expanded={expanded} refresh={refresh} />}
|
||||
{options.memory && <Memory expanded={expanded} refresh={refresh} />}
|
||||
{Array.isArray(options.disk)
|
||||
? options.disk.map((disk) => <Disk key={disk} options={{ disk }} expanded={expanded} />)
|
||||
: options.disk && <Disk options={options} expanded={expanded} />}
|
||||
{options.cputemp && <CpuTemp expanded={expanded} units={units} />}
|
||||
{options.uptime && <Uptime />}
|
||||
? options.disk.map((disk) => <Disk key={disk} options={{ disk }} expanded={expanded} refresh={refresh} />)
|
||||
: options.disk && <Disk options={options} expanded={expanded} refresh={refresh} />}
|
||||
{options.cputemp && <CpuTemp expanded={expanded} units={units} refresh={refresh} />}
|
||||
{options.uptime && <Uptime refresh={refresh} />}
|
||||
</div>
|
||||
{options.label && (
|
||||
<div className="ml-6 pt-1 text-center text-theme-800 dark:text-theme-200 text-xs">{options.label}</div>
|
||||
|
||||
@@ -5,11 +5,11 @@ import { useTranslation } from "next-i18next";
|
||||
import Resource from "../widget/resource";
|
||||
import Error from "../widget/error";
|
||||
|
||||
export default function Uptime() {
|
||||
export default function Uptime({ refresh = 1500 }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { data, error } = useSWR(`/api/widgets/resources?type=uptime`, {
|
||||
refreshInterval: 1500,
|
||||
refreshInterval: refresh,
|
||||
});
|
||||
|
||||
if (error || data?.error) {
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
import mapIcon from "utils/weather/condition-map";
|
||||
|
||||
export default function Icon({ condition, timeOfDay }) {
|
||||
const IconComponent = mapIcon(condition, timeOfDay);
|
||||
|
||||
return <IconComponent className="w-10 h-10 text-theme-800 dark:text-theme-200" />;
|
||||
}
|
||||
@@ -10,8 +10,7 @@ import PrimaryText from "../widget/primary_text";
|
||||
import SecondaryText from "../widget/secondary_text";
|
||||
import WidgetIcon from "../widget/widget_icon";
|
||||
import ContainerButton from "../widget/container_button";
|
||||
|
||||
import Icon from "./icon";
|
||||
import mapIcon from "../../../utils/weather/condition-map";
|
||||
|
||||
function Widget({ options }) {
|
||||
const { t, i18n } = useTranslation();
|
||||
@@ -33,10 +32,8 @@ function Widget({ options }) {
|
||||
}
|
||||
|
||||
const unit = options.units === "metric" ? "celsius" : "fahrenheit";
|
||||
const weatherInfo = {
|
||||
condition: data.current.condition.code,
|
||||
timeOfDay: data.current.is_day ? "day" : "night",
|
||||
};
|
||||
const condition = data.current.condition.code;
|
||||
const timeOfDay = data.current.is_day ? "day" : "night";
|
||||
|
||||
return <Container options={options}>
|
||||
<PrimaryText>
|
||||
@@ -48,7 +45,7 @@ function Widget({ options }) {
|
||||
})}
|
||||
</PrimaryText>
|
||||
<SecondaryText>{data.current.condition.text}</SecondaryText>
|
||||
<WidgetIcon icon={Icon} size="xl" weatherInfo={weatherInfo} />
|
||||
<WidgetIcon icon={mapIcon(condition, timeOfDay)} size="xl" />
|
||||
</Container>;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
export default function WidgetIcon({ icon, size = "s", pulse = false, weatherInfo = {} }) {
|
||||
export default function WidgetIcon({ icon, size = "s", pulse = false }) {
|
||||
const Icon = icon;
|
||||
const { condition, timeOfDay } = weatherInfo;
|
||||
let additionalClasses = "text-theme-800 dark:text-theme-200 ";
|
||||
|
||||
switch (size) {
|
||||
@@ -14,5 +13,5 @@ export default function WidgetIcon({ icon, size = "s", pulse = false, weatherInf
|
||||
additionalClasses += "animate-pulse ";
|
||||
}
|
||||
|
||||
return <Icon className={additionalClasses} condition={condition} timeOfDay={timeOfDay} />;
|
||||
return <Icon className={additionalClasses} />;
|
||||
}
|
||||
|
||||
@@ -290,6 +290,11 @@ export function cleanServiceGroups(groups) {
|
||||
enableNowPlaying,
|
||||
volume, // diskstation widget,
|
||||
enableQueue, // sonarr/radarr
|
||||
node, // Proxmox
|
||||
snapshotHost, // kopia
|
||||
snapshotPath,
|
||||
userEmail, // azuredevops
|
||||
repositoryId
|
||||
} = cleanedService.widget;
|
||||
|
||||
let fieldsList = fields;
|
||||
@@ -300,7 +305,7 @@ export function cleanServiceGroups(groups) {
|
||||
fieldsList = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
cleanedService.widget = {
|
||||
type,
|
||||
fields: fieldsList || null,
|
||||
@@ -309,6 +314,11 @@ export function cleanServiceGroups(groups) {
|
||||
service_group: serviceGroup.name,
|
||||
};
|
||||
|
||||
if (type === "azuredevops") {
|
||||
if (userEmail) cleanedService.widget.userEmail = userEmail;
|
||||
if (repositoryId) cleanedService.widget.repositoryId = repositoryId;
|
||||
}
|
||||
|
||||
if (type === "coinmarketcap") {
|
||||
if (currency) cleanedService.widget.currency = currency;
|
||||
if (symbols) cleanedService.widget.symbols = symbols;
|
||||
@@ -323,6 +333,9 @@ export function cleanServiceGroups(groups) {
|
||||
if (type === "unifi") {
|
||||
if (site) cleanedService.widget.site = site;
|
||||
}
|
||||
if (type === "proxmox") {
|
||||
if (node) cleanedService.widget.node = node;
|
||||
}
|
||||
if (type === "kubernetes") {
|
||||
if (namespace) cleanedService.widget.namespace = namespace;
|
||||
if (app) cleanedService.widget.app = app;
|
||||
@@ -341,6 +354,10 @@ export function cleanServiceGroups(groups) {
|
||||
if (["diskstation", "qnap"].includes(type)) {
|
||||
if (volume) cleanedService.widget.volume = volume;
|
||||
}
|
||||
if (type === "kopia") {
|
||||
if (snapshotHost) cleanedService.widget.snapshotHost = snapshotHost;
|
||||
if (snapshotPath) cleanedService.widget.snapshotPath = snapshotPath;
|
||||
}
|
||||
}
|
||||
|
||||
return cleanedService;
|
||||
|
||||
@@ -5,7 +5,7 @@ export function formatApiCall(url, args) {
|
||||
return args[key] || "";
|
||||
};
|
||||
|
||||
return url.replace(/\/+$/, "").replace(find, replace);
|
||||
return url.replace(/\/+$/, "").replace(find, replace).replace(find,replace);
|
||||
}
|
||||
|
||||
function getURLSearchParams(widget, endpoint) {
|
||||
|
||||
@@ -61,6 +61,9 @@ export default async function credentialedProxyHandler(req, res, map) {
|
||||
} else {
|
||||
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
|
||||
}
|
||||
}
|
||||
else if (widget.type === "azuredevops") {
|
||||
headers.Authorization = `Basic ${Buffer.from(`$:${widget.key}`).toString("base64")}`;
|
||||
} else {
|
||||
headers["X-API-Key"] = `${widget.key}`;
|
||||
}
|
||||
|
||||
65
src/widgets/azuredevops/component.jsx
Normal file
65
src/widgets/azuredevops/component.jsx
Normal file
@@ -0,0 +1,65 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
const { widget } = service;
|
||||
const { userEmail, repositoryId } = widget;
|
||||
const includePR = userEmail !== undefined && repositoryId !== undefined;
|
||||
const { data: prData, error: prError } = useWidgetAPI(widget, includePR ? "pr" : null);
|
||||
const { data: pipelineData, error: pipelineError } = useWidgetAPI(widget, "pipeline");
|
||||
|
||||
if (
|
||||
pipelineError ||
|
||||
(includePR && (prError || prData?.errorCode !== undefined))
|
||||
) {
|
||||
let finalError = pipelineError ?? prError;
|
||||
if (includePR && prData?.errorCode !== null) {
|
||||
// pr call failed possibly with more specific message
|
||||
finalError = { message: prData?.message ?? 'Error communicating with Azure API' }
|
||||
}
|
||||
return <Container service={service} error={finalError} />;
|
||||
}
|
||||
|
||||
if (!pipelineData || !Array.isArray(pipelineData.value) || (includePR && !prData)) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="azuredevops.result" />
|
||||
<Block label="azuredevops.totalPrs" />
|
||||
<Block label="azuredevops.myPrs" />
|
||||
<Block label="azuredevops.approved" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
{pipelineData.value[0].result ? (
|
||||
<Block label="azuredevops.result" value={t(`azuredevops.${pipelineData.value[0].result.toString()}`)} />
|
||||
) : (
|
||||
<Block label="azuredevops.status" value={t(`azuredevops.${pipelineData.value[0].status.toString()}`)} />
|
||||
)}
|
||||
|
||||
{includePR && <Block label="azuredevops.totalPrs" value={t("common.number", { value: prData.count })} />}
|
||||
{includePR && <Block
|
||||
label="azuredevops.myPrs"
|
||||
value={t("common.number", {
|
||||
value: prData.value?.filter((item) => item.createdBy.uniqueName.toLowerCase() === userEmail.toLowerCase())
|
||||
.length,
|
||||
})}
|
||||
/>}
|
||||
{includePR && <Block
|
||||
label="azuredevops.approved"
|
||||
value={t("common.number", {
|
||||
value: prData.value
|
||||
?.filter((item) => item.createdBy.uniqueName.toLowerCase() === userEmail.toLowerCase())
|
||||
.filter((item) => item.reviewers.some((reviewer) => reviewer.vote === 10)).length,
|
||||
})}
|
||||
/>}
|
||||
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
18
src/widgets/azuredevops/widget.js
Normal file
18
src/widgets/azuredevops/widget.js
Normal file
@@ -0,0 +1,18 @@
|
||||
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
|
||||
|
||||
const widget = {
|
||||
api: "https://dev.azure.com/{organization}/{project}/_apis/{endpoint}",
|
||||
proxyHandler: credentialedProxyHandler,
|
||||
|
||||
mappings: {
|
||||
pr: {
|
||||
endpoint: "git/repositories/{repositoryId}/pullrequests"
|
||||
},
|
||||
|
||||
pipeline: {
|
||||
endpoint: "build/Builds?branchName={branchName}&definitions={definitionId}&$top=1"
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default widget;
|
||||
@@ -5,6 +5,7 @@ const components = {
|
||||
audiobookshelf: dynamic(() => import("./audiobookshelf/component")),
|
||||
authentik: dynamic(() => import("./authentik/component")),
|
||||
autobrr: dynamic(() => import("./autobrr/component")),
|
||||
azuredevops: dynamic(() => import("./azuredevops/component")),
|
||||
bazarr: dynamic(() => import("./bazarr/component")),
|
||||
caddy: dynamic(() => import("./caddy/component")),
|
||||
changedetectionio: dynamic(() => import("./changedetectionio/component")),
|
||||
@@ -21,6 +22,7 @@ const components = {
|
||||
fileflows: dynamic(() => import("./fileflows/component")),
|
||||
flood: dynamic(() => import("./flood/component")),
|
||||
freshrss: dynamic(() => import("./freshrss/component")),
|
||||
gamedig: dynamic(() => import("./gamedig/component")),
|
||||
ghostfolio: dynamic(() => import("./ghostfolio/component")),
|
||||
gluetun: dynamic(() => import("./gluetun/component")),
|
||||
gotify: dynamic(() => import("./gotify/component")),
|
||||
@@ -88,6 +90,7 @@ const components = {
|
||||
unifi: dynamic(() => import("./unifi/component")),
|
||||
unmanic: dynamic(() => import("./unmanic/component")),
|
||||
uptimekuma: dynamic(() => import("./uptimekuma/component")),
|
||||
urbackup: dynamic(() => import("./urbackup/component")),
|
||||
watchtower: dynamic(() => import("./watchtower/component")),
|
||||
whatsupdocker: dynamic(() => import("./whatsupdocker/component")),
|
||||
xteve: dynamic(() => import("./xteve/component")),
|
||||
|
||||
59
src/widgets/gamedig/component.jsx
Normal file
59
src/widgets/gamedig/component.jsx
Normal file
@@ -0,0 +1,59 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { widget } = service;
|
||||
const { data: serverData, error: serverError } = useWidgetAPI(widget, "status");
|
||||
const { t } = useTranslation();
|
||||
|
||||
if(serverError){
|
||||
return <Container service={service} error={serverError} />;
|
||||
}
|
||||
|
||||
// Default fields
|
||||
if (widget.fields == null || widget.fields.length === 0) {
|
||||
widget.fields = ["map", "currentPlayers", "ping"];
|
||||
}
|
||||
const MAX_ALLOWED_FIELDS = 4;
|
||||
// Limits max number of displayed fields
|
||||
if (widget.fields != null && widget.fields.length > MAX_ALLOWED_FIELDS) {
|
||||
widget.fields = widget.fields.slice(0, MAX_ALLOWED_FIELDS);
|
||||
}
|
||||
|
||||
if (!serverData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="gamedig.name"/>
|
||||
<Block label="gamedig.map"/>
|
||||
<Block label="gamedig.currentPlayers" />
|
||||
<Block label="gamedig.players" />
|
||||
<Block label="gamedig.maxPlayers" />
|
||||
<Block label="gamedig.bots" />
|
||||
<Block label="gamedig.ping" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const name = serverData.online ? serverData.name : "-";
|
||||
const map = serverData.online ? serverData.map : "-";
|
||||
const currentPlayers = serverData.online ? `${serverData.players} / ${serverData.maxplayers}` : "-";
|
||||
const players = serverData.online ? `${serverData.players}` : "-";
|
||||
const maxPlayers = serverData.online ? `${serverData.maxplayers}` : "-";
|
||||
const bots = serverData.online ? `${serverData.bots}` : "-";
|
||||
const ping = serverData.online ? `${serverData.ping}` : 0;
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="gamedig.name" value={name} />
|
||||
<Block label="gamedig.map" value={map} />
|
||||
<Block label="gamedig.currentPlayers" value={currentPlayers} />
|
||||
<Block label="gamedig.players" value={players} />
|
||||
<Block label="gamedig.maxPlayers" value={maxPlayers} />
|
||||
<Block label="gamedig.bots" value={bots} />
|
||||
<Block label="gamedig.ping" value={t("common.ms", { value: ping, style: "unit", unit: "millisecond" })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
37
src/widgets/gamedig/proxy.js
Normal file
37
src/widgets/gamedig/proxy.js
Normal file
@@ -0,0 +1,37 @@
|
||||
import createLogger from "utils/logger";
|
||||
import getServiceWidget from "utils/config/service-helpers";
|
||||
|
||||
const proxyName = "gamedigProxyHandler";
|
||||
const logger = createLogger(proxyName);
|
||||
const gamedig = require("gamedig");
|
||||
|
||||
export default async function gamedigProxyHandler(req, res) {
|
||||
const { group, service } = req.query;
|
||||
const serviceWidget = await getServiceWidget(group, service);
|
||||
const url = new URL(serviceWidget.url);
|
||||
|
||||
try {
|
||||
const serverData = await gamedig.query({
|
||||
type: serviceWidget.serverType,
|
||||
host: url.hostname,
|
||||
port: url.port,
|
||||
givenPortOnly: true,
|
||||
});
|
||||
|
||||
res.status(200).send({
|
||||
online: true,
|
||||
name: serverData.name,
|
||||
map: serverData.map,
|
||||
players: serverData.players.length,
|
||||
maxplayers: serverData.maxplayers,
|
||||
bots: serverData.bots.length,
|
||||
ping: serverData.ping,
|
||||
});
|
||||
} catch (e) {
|
||||
logger.error(e);
|
||||
|
||||
res.status(200).send({
|
||||
online: false
|
||||
});
|
||||
}
|
||||
}
|
||||
7
src/widgets/gamedig/widget.js
Normal file
7
src/widgets/gamedig/widget.js
Normal file
@@ -0,0 +1,7 @@
|
||||
import gamedigProxyHandler from "./proxy";
|
||||
|
||||
const widget = {
|
||||
proxyHandler: gamedigProxyHandler
|
||||
}
|
||||
|
||||
export default widget;
|
||||
@@ -41,7 +41,12 @@ export default function Component({ service }) {
|
||||
return <Container service={service} error={statusError} />;
|
||||
}
|
||||
|
||||
const source = statusData?.sources[0];
|
||||
const snapshotHost = service.widget?.snapshotHost;
|
||||
const snapshotPath = service.widget?.snapshotPath;
|
||||
|
||||
const source = statusData?.sources
|
||||
.filter(el => snapshotHost ? el.source.host === snapshotHost : true)
|
||||
.filter(el => snapshotPath ? el.source.path === snapshotPath : true)[0];
|
||||
|
||||
if (!statusData || !source) {
|
||||
return (
|
||||
|
||||
@@ -4,6 +4,7 @@ import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
|
||||
function calcRunning(total, current) {
|
||||
return current.status === "running" ? total + 1 : total;
|
||||
}
|
||||
@@ -25,29 +26,40 @@ export default function Component({ service }) {
|
||||
<Block label="proxmox.vms" />
|
||||
<Block label="proxmox.lxc" />
|
||||
<Block label="resources.cpu" />
|
||||
<Block label="resources.ram" />
|
||||
<Block label="resources.mem" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const { data } = clusterData ;
|
||||
const vms = data.filter(item => item.type === "qemu" && item.template === 0) || [];
|
||||
const lxc = data.filter(item => item.type === "lxc" && item.template === 0) || [];
|
||||
const nodes = data.filter(item => item.type === "node") || [];
|
||||
|
||||
const vms = data.filter(item => item.type === "qemu" && item.template === 0 && (widget.node === undefined || widget.node === item.node)) || [];
|
||||
const lxc = data.filter(item => item.type === "lxc" && item.template === 0 && (widget.node === undefined || widget.node === item.node)) || [];
|
||||
const nodes = data.filter(item => item.type === "node" && (widget.node === undefined || widget.node === item.node)) || [];
|
||||
const runningVMs = vms.reduce(calcRunning, 0);
|
||||
const runningLXC = lxc.reduce(calcRunning, 0);
|
||||
|
||||
// TODO: support more than one node
|
||||
// TODO: better handling of cluster with zero nodes
|
||||
const node = nodes.length > 0 ? nodes[0] : { cpu: 0.0, mem: 0, maxmem: 0 };
|
||||
if (nodes.length === 0) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="proxmox.vms" value={`${runningVMs} / ${vms.length}`} />
|
||||
<Block label="proxmox.lxc" value={`${runningLXC} / ${lxc.length}`} />
|
||||
<Block label="resources.cpu" />
|
||||
<Block label="resources.mem" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const maxMemory = nodes.reduce((sum, n) => n.maxmem + sum, 0);
|
||||
const usedMemory = nodes.reduce((sum, n) => n.mem + sum, 0);
|
||||
const maxCpu = nodes.reduce((sum, n) => n.maxcpu + sum, 0);
|
||||
const usedCpu = nodes.reduce((sum, n) => (n.cpu * n.maxcpu) + sum, 0);
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="proxmox.vms" value={`${runningVMs} / ${vms.length}`} />
|
||||
<Block label="proxmox.lxc" value={`${runningLXC} / ${lxc.length}`} />
|
||||
<Block label="resources.cpu" value={t("common.percent", { value: (node.cpu * 100) })} />
|
||||
<Block label="resources.mem" value={t("common.percent", { value: ((node.mem / node.maxmem) * 100) })} />
|
||||
<Block label="resources.cpu" value={t("common.percent", { value: ((usedCpu / maxCpu) * 100) })} />
|
||||
<Block label="resources.mem" value={t("common.percent", { value: ((usedMemory / maxMemory) * 100) })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
93
src/widgets/urbackup/component.jsx
Normal file
93
src/widgets/urbackup/component.jsx
Normal file
@@ -0,0 +1,93 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
const Status = Object.freeze({
|
||||
ok: Symbol("Ok"),
|
||||
errored: Symbol("Errored"),
|
||||
noRecent: Symbol("No Recent Backups")
|
||||
});
|
||||
|
||||
function hasRecentBackups(client, maxDays){
|
||||
const days = maxDays || 3;
|
||||
const diffTime = days*24*60*60 // 7 days
|
||||
const recentFile = (client.lastbackup > (Date.now() / 1000 - diffTime));
|
||||
const recentImage = ((client.lastbackup_image > (Date.now() / 1000 - diffTime)||client.image_not_supported));
|
||||
return (recentFile && recentImage);
|
||||
}
|
||||
|
||||
function determineStatuses(urbackupData) {
|
||||
let ok = 0;
|
||||
let errored = 0;
|
||||
let noRecent = 0;
|
||||
let status;
|
||||
urbackupData.clientStatuses.forEach((client) => {
|
||||
status = Status.noRecent;
|
||||
if (hasRecentBackups(client, urbackupData.maxDays)) {
|
||||
status = (client.file_ok && (client.image_ok || client.image_not_supported)) ? Status.ok : Status.errored;
|
||||
}
|
||||
switch (status) {
|
||||
case Status.ok:
|
||||
ok += 1;
|
||||
break;
|
||||
case Status.errored:
|
||||
errored += 1;
|
||||
break;
|
||||
case Status.noRecent:
|
||||
noRecent += 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
let totalUsage = false;
|
||||
|
||||
// calculate total disk space if provided
|
||||
if (urbackupData.diskUsage) {
|
||||
totalUsage = 0.0;
|
||||
urbackupData.diskUsage.forEach((client) => {
|
||||
totalUsage += client.used;
|
||||
});
|
||||
}
|
||||
|
||||
return { ok, errored, noRecent, totalUsage };
|
||||
}
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { widget } = service;
|
||||
|
||||
const showDiskUsage = widget.fields?.includes('totalUsed')
|
||||
|
||||
const { data: urbackupData, error: urbackupError } = useWidgetAPI(widget, "status");
|
||||
|
||||
if (urbackupError) {
|
||||
return <Container service={service} error={urbackupError} />;
|
||||
}
|
||||
|
||||
if (!urbackupData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="urbackup.ok" />
|
||||
<Block label="urbackup.errored" />
|
||||
<Block label="urbackup.noRecent" />
|
||||
{showDiskUsage && <Block label="urbackup.totalUsed" />}
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const statusData = determineStatuses(urbackupData, widget);
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="urbackup.ok" value={t("common.number", { value: parseInt(statusData.ok, 10) })} />
|
||||
<Block label="urbackup.errored" value={t("common.number", { value: parseInt(statusData.errored, 10) })} />
|
||||
<Block label="urbackup.noRecent" value={t("common.number", { value: parseInt(statusData.noRecent, 10) })} />
|
||||
{showDiskUsage && <Block label="urbackup.totalUsed" value={t("common.bbytes", {value: parseFloat(statusData.totalUsage, 10)})} />}
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
33
src/widgets/urbackup/proxy.js
Normal file
33
src/widgets/urbackup/proxy.js
Normal file
@@ -0,0 +1,33 @@
|
||||
import {UrbackupServer} from "urbackup-server-api";
|
||||
|
||||
import getServiceWidget from "utils/config/service-helpers";
|
||||
|
||||
export default async function urbackupProxyHandler(req, res) {
|
||||
const {group, service} = req.query;
|
||||
const serviceWidget = await getServiceWidget(group, service);
|
||||
|
||||
const server = new UrbackupServer({
|
||||
url: serviceWidget.url,
|
||||
username: serviceWidget.username,
|
||||
password: serviceWidget.password
|
||||
});
|
||||
|
||||
await (async () => {
|
||||
try {
|
||||
const allClients = await server.getStatus({includeRemoved: false});
|
||||
let diskUsage = false
|
||||
if (serviceWidget.fields?.includes("totalUsed")) {
|
||||
diskUsage = await server.getUsage();
|
||||
}
|
||||
res.status(200).send({
|
||||
clientStatuses: allClients,
|
||||
diskUsage,
|
||||
maxDays: serviceWidget.maxDays
|
||||
});
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: "Something Broke" })
|
||||
}
|
||||
})();
|
||||
|
||||
|
||||
}
|
||||
7
src/widgets/urbackup/widget.js
Normal file
7
src/widgets/urbackup/widget.js
Normal file
@@ -0,0 +1,7 @@
|
||||
import urbackupProxyHandler from "./proxy";
|
||||
|
||||
const widget = {
|
||||
proxyHandler: urbackupProxyHandler,
|
||||
};
|
||||
|
||||
export default widget;
|
||||
@@ -2,6 +2,7 @@ import adguard from "./adguard/widget";
|
||||
import audiobookshelf from "./audiobookshelf/widget";
|
||||
import authentik from "./authentik/widget";
|
||||
import autobrr from "./autobrr/widget";
|
||||
import azuredevops from "./azuredevops/widget";
|
||||
import bazarr from "./bazarr/widget";
|
||||
import caddy from "./caddy/widget";
|
||||
import changedetectionio from "./changedetectionio/widget";
|
||||
@@ -16,6 +17,7 @@ import evcc from "./evcc/widget";
|
||||
import fileflows from "./fileflows/widget";
|
||||
import flood from "./flood/widget";
|
||||
import freshrss from "./freshrss/widget";
|
||||
import gamedig from "./gamedig/widget";
|
||||
import ghostfolio from "./ghostfolio/widget";
|
||||
import gluetun from "./gluetun/widget";
|
||||
import gotify from "./gotify/widget";
|
||||
@@ -85,12 +87,14 @@ import uptimekuma from "./uptimekuma/widget";
|
||||
import watchtower from "./watchtower/widget";
|
||||
import whatsupdocker from "./whatsupdocker/widget";
|
||||
import xteve from "./xteve/widget";
|
||||
import urbackup from "./urbackup/widget";
|
||||
|
||||
const widgets = {
|
||||
adguard,
|
||||
audiobookshelf,
|
||||
authentik,
|
||||
autobrr,
|
||||
azuredevops,
|
||||
bazarr,
|
||||
caddy,
|
||||
changedetectionio,
|
||||
@@ -105,6 +109,7 @@ const widgets = {
|
||||
fileflows,
|
||||
flood,
|
||||
freshrss,
|
||||
gamedig,
|
||||
ghostfolio,
|
||||
gluetun,
|
||||
gotify,
|
||||
@@ -173,6 +178,7 @@ const widgets = {
|
||||
unifi_console: unifi,
|
||||
unmanic,
|
||||
uptimekuma,
|
||||
urbackup,
|
||||
watchtower,
|
||||
whatsupdocker,
|
||||
xteve,
|
||||
|
||||
Reference in New Issue
Block a user