iobroker.squeezeboxrpc 1.6.2 → 1.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2019-2025 oweitman <oweitman@gmx.de>
3
+ Copyright (c) 2019-2026 oweitman <oweitman@gmx.de>
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -55,6 +55,16 @@ or `NAS`, connect to different streaming providers like `Spotify`, `Deezer`,
55
55
 
56
56
  `iobroker upload squeezeboxrpc`
57
57
 
58
+ ## Trouble Shooting
59
+
60
+ ### SLIMP3 players
61
+
62
+ It has been reported that older SLIMP3 players may be
63
+ unable to connect to the server while the adapter is searching
64
+ for new servers. Disabling the search under
65
+ ´Instance Configuration -> Performance Settings -> Search for other LMS servers´
66
+ should allow the player to connect.
67
+
58
68
  ## Provided states
59
69
 
60
70
  ### Server
@@ -543,21 +553,21 @@ For self formating there are some predefined css-classes:
543
553
 
544
554
  - Implementing LMS/Lyrion for browsing is hell.
545
555
  - The technical model for this widget is the "Material" theme plugin
546
- in the LMS/Lyrion server.
556
+ in the LMS/Lyrion server.
547
557
  - Not all features are currently implemented.
548
- - All input field types are not yet available.
549
- - Not all item types may have been implemented.
558
+ - All input field types are not yet available.
559
+ - Not all item types may have been implemented.
550
560
  - Optional, extensive debug output has been added for analysis (see also attributes).
551
- - Output of the function reference: All function names are output in
552
- order in the browser console.
553
- - Output of the data reference: All data requested and returned
554
- by the server is output.
561
+ - Output of the function reference: All function names are output in
562
+ order in the browser console.
563
+ - Output of the data reference: All data requested and returned
564
+ by the server is output.
555
565
 
556
566
  If testers encounter errors/problems or missing implementations,
557
567
  please provide as detailed a description as possible:
558
568
 
559
569
  - Where does the data come from in the LMS/Lyrion
560
- (already built-in service/additionally installed plugin)
570
+ (already built-in service/additionally installed plugin)
561
571
  - What steps/clicks were performed to create the problem
562
572
  - What are the function references and data references?
563
573
 
@@ -630,6 +640,11 @@ are contained in the following CLI documentation:
630
640
  ### **WORK IN PROGRESS**
631
641
 
632
642
  -->
643
+ ### 1.6.4 (2026-03-25)
644
+
645
+ - test remove node 18,extend to node 24
646
+ - update packages
647
+
633
648
  ### 1.6.2 (2025-05-05)
634
649
 
635
650
  - fix node version in github workflow
@@ -982,4 +997,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
982
997
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
983
998
  SOFTWARE.
984
999
 
985
- Copyright (c) 2019-2025 oweitman
1000
+ Copyright (c) 2019-2026 oweitman
package/io-package.json CHANGED
@@ -1,35 +1,35 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "squeezeboxrpc",
4
- "version": "1.6.2",
4
+ "version": "1.6.4",
5
5
  "news": {
6
- "1.6.2": {
7
- "en": "fix node version in github workflow",
8
- "de": "fix node version in github workflow",
9
- "ru": "версия fix node в рабочем процессе github",
10
- "pt": "corrigir a versão do no fluxo de trabalho do github",
11
- "nl": "fix node versie in github workflow",
12
- "fr": "correction de la version noeud dans le flux de travail github",
13
- "it": "fix nodo versione in github workflow",
14
- "es": "arreglar versión de nodo en github workflow",
15
- "pl": "fix wersja węzła w github workflow",
16
- "uk": "виправити версію вузла в github workflow",
17
- "zh-cn": " github 工作流程中固定节点版本"
6
+ "1.6.4": {
7
+ "en": "test remove node 18,extend to node 24\nupdate packages",
8
+ "de": "test entfernen node 18,extend to node 24\nupdate-pakete",
9
+ "ru": "тест удалить узел 18, расширить узел 24\nобновление пакетов",
10
+ "pt": "teste remover o18, extend ao 24\natualizar pacotes",
11
+ "nl": "test verwijder node 18, extend naar node 24\npakketten bijwerken",
12
+ "fr": "test enlever le noeud 18,extendre au noeud 24\nmettre à jour les paquets",
13
+ "it": "prova rimuovere nodo 18, estend to node 24\npacchetti di aggiornamento",
14
+ "es": "prueba eliminar nodo 18,extender a nodo 24\nactualizar paquetes",
15
+ "pl": "test usunąć węzeł 18, rozszerzyć na węzeł 24\naktualizacja pakietów",
16
+ "uk": "test remove node 18,потенд в вузол 24\nоновлення пакетів",
17
+ "zh-cn": "测试去除节点 18, 延伸至节点 24\n更新软件包"
18
18
  },
19
- "1.6.1": {
20
- "en": "Fix eslint",
21
- "de": "Eslint reparieren",
22
- "ru": "Исправить Эслинт",
23
- "pt": "Fix eslint",
24
- "nl": "Eslint herstellen",
25
- "fr": "Corriger l'essence",
26
- "it": "Fissare eslint",
27
- "es": "Fix eslint",
28
- "pl": "Napraw eslint",
29
- "uk": "Фіксація еслінта",
30
- "zh-cn": "修复丝绸"
19
+ "1.6.3": {
20
+ "en": "test remove node 18,extend to node 24\nupdate packages",
21
+ "de": "test entfernen node 18,extend to node 24\nupdate-pakete",
22
+ "ru": "тест удалить узел 18, расширить узел 24\nобновление пакетов",
23
+ "pt": "teste remover o nó 18, extend ao nó 24\natualizar pacotes",
24
+ "nl": "test verwijder node 18, extend naar node 24\npakketten bijwerken",
25
+ "fr": "test enlever le noeud 18,extendre au noeud 24\nmettre à jour les paquets",
26
+ "it": "prova rimuovere nodo 18, estend to node 24\npacchetti di aggiornamento",
27
+ "es": "prueba eliminar nodo 18,extender a nodo 24\nactualizar paquetes",
28
+ "pl": "test usunąć węzeł 18, rozszerzyć na węzeł 24\naktualizacja pakietów",
29
+ "uk": "test remove node 18,потенд в вузол 24\nоновлення пакетів",
30
+ "zh-cn": "测试去除节点 18, 延伸至节点 24\n更新软件包"
31
31
  },
32
- "1.6.0": {
32
+ "1.6.2": {
33
33
  "en": "upgrade dependency js-controller\nnew widget, but only alpha version for testing and improvement\nfix issues of adapter checker",
34
34
  "de": "upgrade abhängigkeit js-controller\nneue widget, aber nur alpha-version für tests und verbesserung\nprobleme des adapter-checkers beheben",
35
35
  "ru": "обновление зависимостей js-контроллера\nновый виджет, но только альфа-версия для тестирования и улучшения\nустранение проблем с проверкой адаптера",
@@ -142,7 +142,8 @@
142
142
  "loglevel": "info",
143
143
  "tier": 3,
144
144
  "restartAdapters": [
145
- "vis"
145
+ "vis",
146
+ "vis-2"
146
147
  ],
147
148
  "mode": "daemon",
148
149
  "type": "multimedia",
@@ -155,12 +156,12 @@
155
156
  },
156
157
  "dependencies": [
157
158
  {
158
- "js-controller": ">=5.0.19"
159
+ "js-controller": ">=6.0.12"
159
160
  }
160
161
  ],
161
162
  "globalDependencies": [
162
163
  {
163
- "admin": ">=6.17.14"
164
+ "admin": ">=7.6.17"
164
165
  }
165
166
  ]
166
167
  },
package/lib/ioUtil.js CHANGED
@@ -169,20 +169,6 @@ class ioUtil {
169
169
  const name = (level1path ? `${level1path}.` : '') + (level2path ? `${level2path}.` : '') + id;
170
170
  this.adapter.getState(name, callback);
171
171
  }
172
- /**
173
- * Creates a state object in the ioBroker system.
174
- *
175
- * @param stateTemplate - The template containing the common properties of the state.
176
- * @param level1path - The first level path to prepend to the state name, can be null or empty.
177
- * @param level2path - The second level path to prepend to the state name, can be null or empty.
178
- * @param callback - Optional callback function, called when the state is created.
179
- */
180
- createState(stateTemplate, level1path = false, level2path = false, callback) {
181
- this.logdebug(`createState ${stateTemplate.name}`);
182
- const name = (level1path ? `${level1path}.` : '') + (level2path ? `${level2path}.` : '') + stateTemplate.name;
183
- this.logdebug(`Create Key ${name}`);
184
- this.adapter.createState(level1path, level2path, stateTemplate.name, stateTemplate, callback);
185
- }
186
172
  /**
187
173
  * Sets the state of an object in the ioBroker system.
188
174
  *
package/lib/iosbplayer.js CHANGED
@@ -46,7 +46,6 @@ const { ioUtil } = require('./ioUtil');
46
46
  * - createArtworkUrl: Generates a URL for player artwork.
47
47
  * - disconnect: Handles player disconnection.
48
48
  * - connect: Handles player connection.
49
- * - createState: Creates a state object for the player.
50
49
  * - createObject: Creates a device or state object.
51
50
  * - request: Sends a request to the server.
52
51
  * - setTPE2Handling: Sets the TPE2 handling mode.
@@ -1052,23 +1051,6 @@ function ioSBPlayer(server, playerdata) {
1052
1051
  this.doObserverPlayer();
1053
1052
  this.connected = 1;
1054
1053
  };
1055
- /**
1056
- * Creates a state object for the player if it does not already exist.
1057
- *
1058
- * @param stateTemplate - The template containing the common properties of the state.
1059
- * @param [level1path] - The first level path to prepend to the state name, can be false or empty.
1060
- * @param [level2path] - The second level path to prepend to the state name, can be false or empty.
1061
- * @returns The state template with an 'exist' property set to true.
1062
- */
1063
- this.createState = function (stateTemplate, level1path = false, level2path = false) {
1064
- const name = (level1path ? `${level1path}.` : '') + (level2path ? `${level2path}.` : '') + stateTemplate.name;
1065
- this.ioUtil.logsilly(`Create state ${name}`);
1066
- if (!this.currentStates[name]) {
1067
- this.adapter.createState(level1path, level2path, stateTemplate.name, stateTemplate);
1068
- }
1069
- stateTemplate.exist = true;
1070
- return stateTemplate;
1071
- };
1072
1054
  /**
1073
1055
  * Creates a state object in the ioBroker system if it does not already exist.
1074
1056
  *
package/lib/iosbserver.js CHANGED
@@ -1231,13 +1231,6 @@ function IoSbServer(adapter) {
1231
1231
  stateTemplate.exist = true;
1232
1232
  return stateTemplate;
1233
1233
  };
1234
- this.createState = function (stateTemplate, level1path = false, level2path = false, callback) {
1235
- const name = (level1path ? `${level1path}.` : '') + (level2path ? `${level2path}.` : '') + stateTemplate.name;
1236
- this.ioUtil.logsilly(`Create state ${name}`);
1237
- this.adapter.createState(level1path, level2path, stateTemplate.name, stateTemplate, callback);
1238
- stateTemplate.exist = true;
1239
- return stateTemplate;
1240
- };
1241
1234
  this.createFolder = async function (foldername, level1path, level2path) {
1242
1235
  const id = (level1path ? `${level1path}.` : '') + (level2path ? `${level2path}.` : '') + foldername;
1243
1236
  this.ioUtil.logsilly(`createFolder ${id}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.squeezeboxrpc",
3
- "version": "1.6.2",
3
+ "version": "1.6.4",
4
4
  "description": "ioBroker Logitech Squeezebox Adapter over JSON/RPC-Protocol",
5
5
  "author": {
6
6
  "name": "oweitman",
@@ -23,36 +23,25 @@
23
23
  "node": ">= 20"
24
24
  },
25
25
  "dependencies": {
26
- "@iobroker/adapter-core": "^3.2.3",
27
- "jayson": "^4.2.0",
28
- "lodash": "^4.17.4",
26
+ "@iobroker/adapter-core": "^3.3.2",
27
+ "jayson": "^4.3.0",
28
+ "lodash": "^4.17.23",
29
29
  "super": "^0.2.3"
30
30
  },
31
31
  "devDependencies": {
32
- "@alcalzone/release-script": "^3.8.0",
33
- "@alcalzone/release-script-plugin-iobroker": "^3.7.2",
34
- "@alcalzone/release-script-plugin-license": "^3.7.0",
35
- "@alcalzone/release-script-plugin-manual-review": "^3.7.0",
36
- "@iobroker/adapter-dev": "^1.4.0",
37
- "@iobroker/eslint-config": "^2.0.1",
38
- "@iobroker/testing": "^5.0.4",
39
- "@tsconfig/node18": "^18.2.4",
40
- "@types/chai": "^4.3.16",
41
- "@types/chai-as-promised": "^8.0.0",
42
- "@types/mocha": "^10.0.9",
43
- "@types/node": "^22.13.14",
32
+ "@alcalzone/release-script": "^5.1.1",
33
+ "@alcalzone/release-script-plugin-iobroker": "^5.1.2",
34
+ "@alcalzone/release-script-plugin-license": "^5.1.1",
35
+ "@alcalzone/release-script-plugin-manual-review": "^5.1.1",
36
+ "@iobroker/adapter-dev": "^1.5.0",
37
+ "@iobroker/eslint-config": "^2.2.0",
38
+ "@iobroker/testing": "^5.2.2",
39
+ "@tsconfig/node18": "^18.2.6",
40
+ "@types/node": "^25.5.0",
44
41
  "@types/proxyquire": "^1.3.31",
45
- "@types/sinon": "^17.0.3",
46
- "@types/sinon-chai": "^3.2.12",
47
- "axios": "^1.9.0",
48
- "chai": "^4.4.1",
49
- "chai-as-promised": "^8.0.0",
50
- "mocha": "^10.8.2",
51
42
  "npm-watch": "^0.13.0",
52
43
  "proxyquire": "^2.1.3",
53
- "sinon": "^19.0.2",
54
- "sinon-chai": "^3.7.0",
55
- "typescript": "~5.8.3"
44
+ "typescript": "~5.9.3"
56
45
  },
57
46
  "main": "squeezeboxrpc.js",
58
47
  "files": [
@@ -70,11 +59,12 @@
70
59
  "test:js": "mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"",
71
60
  "test:package": "mocha test/package --exit",
72
61
  "test:integration": "mocha test/integration --exit",
73
- "test": "npm run test:js && npm run test:package",
62
+ "test": "npm run test:integration && npm run test:package",
74
63
  "check": "tsc --noEmit -p tsconfig.check.json",
75
64
  "lint": "eslint -c eslint.config.mjs . ",
65
+ "npm": "npm i && cd widgets && npm i",
76
66
  "build": "cd widgets/squeezeboxrpc && npm run build && cd ../..",
77
- "repochecker": "npx github:oweitman/ioBroker.repochecker https://github.com/oweitman/ioBroker.squeezeboxrpc --local",
67
+ "repochecker": "npx github:oweitman/ioBroker.repochecker https://github.com/oweitman/ioBroker.squeezeboxrpc --local --noinfo",
78
68
  "translate": "translate-adapter",
79
69
  "translate-widgets": "node ./bin/translate.js --source widgets/squeezeboxrpc/i18n/en.json --format single",
80
70
  "release": "release-script --all"
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "squeezeboxrpc-vis1-widget",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "squeezeboxrpc-vis1-widget",
9
+ "version": "1.0.0",
10
+ "license": "MIT"
11
+ }
12
+ }
13
+ }
@@ -1119,7 +1119,7 @@
1119
1119
  var version;
1120
1120
  var init_package = __esm({
1121
1121
  "../package.json"() {
1122
- version = "1.6.0";
1122
+ version = "1.6.4";
1123
1123
  }
1124
1124
  });
1125
1125
 
@@ -1313,15 +1313,35 @@
1313
1313
  this.measure = getTextHeight(this);
1314
1314
  this.measure.width = getTextWidth("M", this);
1315
1315
  }
1316
+ /**
1317
+ * Retrieves the ascent value of the font.
1318
+ *
1319
+ * @returns {number} The ascent value of the font.
1320
+ */
1316
1321
  getAscent() {
1317
1322
  return this.measure.ascent;
1318
1323
  }
1324
+ /**
1325
+ * Retrieves the descent value of the font.
1326
+ *
1327
+ * @returns {number} The descent value of the font.
1328
+ */
1319
1329
  getDescent() {
1320
1330
  return this.measure.descent;
1321
1331
  }
1332
+ /**
1333
+ * Retrieves the width of the font.
1334
+ *
1335
+ * @returns {number} The width of the font.
1336
+ */
1322
1337
  getWidth() {
1323
1338
  return this.measure.width;
1324
1339
  }
1340
+ /**
1341
+ * Retrieves the height value of the font.
1342
+ *
1343
+ * @returns {number} The height value of the font.
1344
+ */
1325
1345
  getHeight() {
1326
1346
  return this.measure.height;
1327
1347
  }
@@ -1392,7 +1412,7 @@
1392
1412
  init_package();
1393
1413
  init_textImage();
1394
1414
  init_sbClasses();
1395
- fetch("widgets/squeezeboxrpc/i18n/translations.json").then((res) => __async(exports, null, function* () {
1415
+ fetch("widgets/squeezeboxrpc/i18n/translations.json").then((res) => __async(null, null, function* () {
1396
1416
  const i18n = yield res.json();
1397
1417
  $.extend(true, systemDictionary, i18n);
1398
1418
  }));