iobroker.squeezeboxrpc 1.4.0-alpha.3 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -11
- package/admin/i18n/de/translations.json +26 -26
- package/io-package.json +27 -27
- package/lib/iosbplayer.js +4 -3
- package/lib/iosbserver.js +877 -813
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -438,6 +438,48 @@ you must connect the button to the player widget.
|
|
|
438
438
|
| Comma as separator | Advanced settings | A comma is used to separate the decimal places. |
|
|
439
439
|
| Thousands separator | Advanced settings | For large numbers, a separator is inserted every 3 places. |
|
|
440
440
|
|
|
441
|
+
## SendTo-Befehle
|
|
442
|
+
|
|
443
|
+
### cmdGeneral
|
|
444
|
+
|
|
445
|
+
Mit diesem Befehl können beliebige Befehle an den LMS-Server gesendet werden,
|
|
446
|
+
um eine Rückmeldung zu erhalten.
|
|
447
|
+
|
|
448
|
+
Beispiel:
|
|
449
|
+
|
|
450
|
+
_Alle Playlists:_
|
|
451
|
+
|
|
452
|
+
```js
|
|
453
|
+
async function main() {
|
|
454
|
+
let data = await sendToAsync("squeezeboxrpc.0", "cdmGeneral", {
|
|
455
|
+
playerid: "",
|
|
456
|
+
cmdArray: ["playlists", "0", "999", "tags:us"],
|
|
457
|
+
});
|
|
458
|
+
console.log(JSON.stringify(data));
|
|
459
|
+
}
|
|
460
|
+
main();
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
_Alle Favoriten:_
|
|
464
|
+
|
|
465
|
+
Dieser Befehl wird vom Adapter intern verwendet, um die Favoriten zu laden.
|
|
466
|
+
|
|
467
|
+
```js
|
|
468
|
+
async function main() {
|
|
469
|
+
let data = await sendToAsync("squeezeboxrpc.0", "cdmGeneral", {
|
|
470
|
+
playerid: "",
|
|
471
|
+
cmdArray: ["favorites", "items", "0", "999", "want_url:1", "item_id:"],
|
|
472
|
+
});
|
|
473
|
+
console.log(JSON.stringify(data));
|
|
474
|
+
}
|
|
475
|
+
main();
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
Weitere Möglichkeiten und Detailbeschreibung über die Parameter sind in
|
|
479
|
+
der folgenden CLI-Dokumentation enthalten:
|
|
480
|
+
|
|
481
|
+
[CLI-Documentation](#further-api-documentation)
|
|
482
|
+
|
|
441
483
|
## Todo
|
|
442
484
|
|
|
443
485
|
- more testing/fixing
|
|
@@ -466,23 +508,19 @@ you must connect the button to the player widget.
|
|
|
466
508
|
### **WORK IN PROGRESS**
|
|
467
509
|
|
|
468
510
|
-->
|
|
469
|
-
### 1.4.0
|
|
511
|
+
### 1.4.0 (2024-11-27)
|
|
470
512
|
|
|
513
|
+
- fix some missing objects errors
|
|
514
|
+
- sanitize more playernames in syncgroups
|
|
515
|
+
- add sendTo Command "cmdGeneral"
|
|
516
|
+
- sanitize more the playername
|
|
517
|
+
- improve translation
|
|
471
518
|
- if trackartist is avail then write to artist if empty
|
|
472
|
-
|
|
473
|
-
### 1.4.0-alpha.2 (2024-11-01)
|
|
474
|
-
|
|
475
|
-
- improve handlying for artwork_url
|
|
476
|
-
|
|
477
|
-
### 1.4.0-alpha.1 (2024-10-27)
|
|
478
|
-
|
|
519
|
+
- improve handling for artwork_url
|
|
479
520
|
- move widget documentation from html to markdown
|
|
480
521
|
- adjust responsive tab style
|
|
481
522
|
- improve attribute widgets
|
|
482
523
|
- change TPE2 handling once more
|
|
483
|
-
|
|
484
|
-
### 1.4.0-alpha.0 (2024-10-24)
|
|
485
|
-
|
|
486
524
|
- jsonConfig add sizing options for differenz screen sizes
|
|
487
525
|
- test implementation of TPE2 handling. switch in settings
|
|
488
526
|
- add datapoints album_artist, track_artist, artistOriginal
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
{
|
|
2
|
-
"sb-maintab": "Haupteinstellungen",
|
|
3
|
-
"sb-timertab": "Timer-Einstellungen",
|
|
4
|
-
"sb-performancetab": "Leistungseinstellungen",
|
|
5
|
-
"sb-debugtab": "Debug-Einstellungen",
|
|
6
|
-
"sb-server": "Logitech Media Server-Adresse",
|
|
7
|
-
"sb-port": "Logitech Media Server-Port",
|
|
8
|
-
"sb-telnetport": "Telnet-Port des Logitech Media Servers",
|
|
9
|
-
"sb-discover": "Automatisch erkannte Server (Eintrag auswählen, um Daten automatisch auszufüllen)",
|
|
10
|
-
"sb-username": "Benutzername (optional)",
|
|
11
|
-
"sb-password": "Passwort (optional)",
|
|
12
|
-
"sb-serverrefresh": "Serveraktualisierung (Sek.)",
|
|
13
|
-
"sb-playerrefresh": "Player-Aktualisierung (ms)",
|
|
14
|
-
"sb-favoriterefresh": "Favoritenaktualisierung (Min.)",
|
|
15
|
-
"sb-discoveryrefresh": "Discovery-Aktualisierung (Sek.)",
|
|
16
|
-
"sb-useplaylist": "Stellt Playlistinfos als JSON-Datenpunkt bereit",
|
|
17
|
-
"sb-usediscovery": "Suche nach anderen LMS-Server",
|
|
18
|
-
"sb-usetelnet": "Verwenden von Telnet für erweiterte Signalisierung (Player verbinden/trennen).",
|
|
19
|
-
"sb-usefavorites": "Favoriten vom LMS abfragen",
|
|
20
|
-
"sb-outputserverdebug": "Erstellen Sie eine Debug-Ausgabe für den Server",
|
|
21
|
-
"sb-outputserversilly": "Erstellen Sie eine
|
|
22
|
-
"sb-outputplayerdebug": "Erstellen Sie eine Debug-Ausgabe für den Player",
|
|
23
|
-
"sb-outputplayersilly": "Erstelle eine
|
|
24
|
-
"xxx": "xxx",
|
|
25
|
-
"": ""
|
|
26
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"sb-maintab": "Haupteinstellungen",
|
|
3
|
+
"sb-timertab": "Timer-Einstellungen",
|
|
4
|
+
"sb-performancetab": "Leistungseinstellungen",
|
|
5
|
+
"sb-debugtab": "Debug-Einstellungen",
|
|
6
|
+
"sb-server": "Logitech Media Server-Adresse",
|
|
7
|
+
"sb-port": "Logitech Media Server-Port",
|
|
8
|
+
"sb-telnetport": "Telnet-Port des Logitech Media Servers",
|
|
9
|
+
"sb-discover": "Automatisch erkannte Server (Eintrag auswählen, um Daten automatisch auszufüllen)",
|
|
10
|
+
"sb-username": "Benutzername (optional)",
|
|
11
|
+
"sb-password": "Passwort (optional)",
|
|
12
|
+
"sb-serverrefresh": "Serveraktualisierung (Sek.)",
|
|
13
|
+
"sb-playerrefresh": "Player-Aktualisierung (ms)",
|
|
14
|
+
"sb-favoriterefresh": "Favoritenaktualisierung (Min.)",
|
|
15
|
+
"sb-discoveryrefresh": "Discovery-Aktualisierung (Sek.)",
|
|
16
|
+
"sb-useplaylist": "Stellt Playlistinfos als JSON-Datenpunkt bereit",
|
|
17
|
+
"sb-usediscovery": "Suche nach anderen LMS-Server",
|
|
18
|
+
"sb-usetelnet": "Verwenden von Telnet für erweiterte Signalisierung (Player verbinden/trennen).",
|
|
19
|
+
"sb-usefavorites": "Favoriten vom LMS abfragen",
|
|
20
|
+
"sb-outputserverdebug": "Erstellen Sie eine Debug-Ausgabe für den Server",
|
|
21
|
+
"sb-outputserversilly": "Erstellen Sie eine erweiterte Debug-Ausgabe für den Server",
|
|
22
|
+
"sb-outputplayerdebug": "Erstellen Sie eine Debug-Ausgabe für den Player",
|
|
23
|
+
"sb-outputplayersilly": "Erstelle eine erweiterte Debug-Ausgabe für den Player",
|
|
24
|
+
"xxx": "xxx",
|
|
25
|
+
"": ""
|
|
26
|
+
}
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "squeezeboxrpc",
|
|
4
|
-
"version": "1.4.0
|
|
4
|
+
"version": "1.4.0",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.4.0": {
|
|
7
|
+
"en": "fix some missing objects errors\nsanitize more playernames in syncgroups\nadd sendTo Command \"cmdGeneral\"\nsanitize more the playername\nimprove translation\nif trackartist is avail then write to artist if empty\nimprove handling for artwork_url\nmove widget documentation from html to markdown\nadjust responsive tab style\nimprove attribute widgets\nchange TPE2 handling once more\njsonConfig add sizing options for differenz screen sizes\ntest implementation of TPE2 handling. switch in settings\nadd datapoints album_artist, track_artist, artistOriginal",
|
|
8
|
+
"de": "einige fehlende objektfehler beheben\nsanitize mehr spielernamen in syncgroups\nsendTo Command \"cmdGeneral\" hinzufügen\nsanitize mehr der spielername\nverbesserung der übersetzung\nwenn trackartist in anspruch genommen wird, dann schreiben sie an künstler, wenn leer\nverbesserung der handhabung für artwork_url\nwidget-dokumentation von html zu markdown verschieben\npassive tab-stil anpassen\nwidgets des attributs verbessern\ntPE2 Handling erneut ändern\njsonConfig Hinzufügen von Größenoptionen für unterschiedliche Bildschirmgrößen\ntestdurchführung des TPE2-Handlings. Schalter in Einstellungen\ndatapoints album_artist, track_artist, artistOriginal",
|
|
9
|
+
"ru": "исправить ошибки отсутствующих объектов\nсанитизировать больше имен игроков в синхгруппах\nдобавить команду sendTo \"cmd General\"\nобезвредить больше имя игрока\nулучшить перевод\nесли трекартист воспользуется, тогда напишите художнику, если пустой\nулучшить обработку для art_url\nпереместить документацию виджета из html в отметку\nнастроить адаптивный стиль вкладки\nулучшить виджеты атрибутов\nизменение TPE2 снова\njsonConfig добавляет варианты калибровки для различных размеров экрана\nтестовая реализация обработки TPE2. выключение в настройках\nдобавить datapoints album_artist, track_artist, ArtistOriginal",
|
|
10
|
+
"pt": "corrigir alguns erros de objetos ausentes\nhigienizar mais nomes de jogadores em grupos de sincronização\nadicionar sendTo Comando \"cmdGeneral\"\nhigienizar mais o nome do jogador\nmelhorar a tradução\nse trackartist é aproveitado então escreva para artista se vazio\nmelhorar o manuseio para artifício_url\nmover documentação do widget de html para marcação\najustar o estilo de guia responsivo\nmelhorar os widgets de atributos\nmudar o manuseio TPE2 mais uma vez\njsonConfig adicionar opções de dimensionamento para diferentes tamanhos de tela\nimplementação de teste de manuseio TPE2. alternar em configurações\nadd datapoints album_artist, track_artist, artistOriginal",
|
|
11
|
+
"nl": "enkele ontbrekende objecten fouten herstellen\nmeer spelernamen in syncgroepen verwijderen\nsendTo Command \"cmdGeneral\" toevoegen\nde naam van de speler deactiveren\nverbeteren van de vertaling\nals track artist beschikbaar is schrijf dan naar artiest indien leeg\nverbeteren van de behandeling voor artwork_url\nwidget-documentatie verplaatsen van html naar markdown\nresponsieve tabstijl aanpassen\nattribuutwidgets verbeteren\ntPE2-behandeling opnieuw wijzigen\njsonConfig voeg grootte opties toe voor verschillende schermgroottes\ntestimplementatie van TPE2-behandeling. schakelaar in instellingen\ndatapoints album_artist, track_artist, artiestOriginal toevoegen",
|
|
12
|
+
"fr": "correction d'erreurs d'objets manquants\ndésinfecter plus de noms de lecteur dans les groupes de synchronisation\najouter sendTo Command \"cmdGeneral\"\ndésinfecter plus le nom du joueur\naméliorer la traduction\nsi trackartist est disponible alors écrire à l'artiste si vide\naméliorer la manipulation pour artwork_url\ndéplacer la documentation de widget de html à balisage\najuster le style de l'onglet responsive\naméliorer les widgets d'attribut\nchanger la manipulation TPE2 une fois de plus\njsonConfig ajouter des options de dimensionnement pour différentes tailles d'écran\ntest de mise en œuvre de la manipulation TPE2. commutateur dans les paramètres\najouter datapoints album_artiste, track_artiste, artisteOriginal",
|
|
13
|
+
"it": "correggere alcuni errori di oggetti mancanti\nsanitizzare più nomi dei giocatori in gruppi di sincronizzazione\naggiungere sendTo Command \"cmdGeneral\"\nsanitizzare più il nome del giocatore\nmigliorare la traduzione\nse trackartist è avail poi scrivere all'artista se vuoto\nmigliorare la gestione per art_url\nspostare la documentazione del widget da html a markdown\nregolare stile di scheda reattiva\nmigliorare widget attributo\ncambiare la gestione di TPE2 ancora una volta\njsonConfig aggiungere opzioni di dimensionamento per diverseenz dimensioni dello schermo\nimplementazione del test di gestione TPE2. interruttore nelle impostazioni\naggiungere datapoints album_artist, track_artist, artistaOriginal",
|
|
14
|
+
"es": "solucionar algunos errores de objetos perdidos\nsanitize more playernames in syncgroups\nañadir sendTo Command \"cmdGeneral\"\nsanitize más el nombre de jugador\nmejorar la traducción\nsi el trackartista está disponible entonces escriba al artista si está vacío\nmejorar el manejo de artwork_url\nmover la documentación del widget de html a marcadown\najuste estilo de pestaña sensible\nmejorar widgets de atributo\ncambio de manejo TPE2 una vez más\njsonConfig añadir opciones de tamaño para diferentes tamaños de pantalla\naplicación de pruebas de manipulación TPE2. conmutar la configuración\nañadir datapoints album_artist, track_artist, artistOriginal",
|
|
15
|
+
"pl": "naprawić kilka brakujących błędów obiektów\nsanitize więcej nazw graczy w zespołach\ndodaj polecenie sendTo \"cmdGeneral\"\nsanitize more the playername\npoprawić tłumaczenie\njeśli trackartist jest użyteczny, napisz do artysty jeśli pusty\npoprawa obsługi grafiki _ url\nprzenieść dokumentację widget z html do markdown\ndopasowanie odpowiadającego stylu karty\npoprawić widżety atrybutów\nzmienić obsługę TPE2 jeszcze raz\njsonConfig dodać opcje rozmiaru dla różnej wielkości ekranu\ntestowa realizacja obsługi TPE2. przełączanie w ustawieniach\nadd datapoints album _ artist, track _ artist, artistOriginal",
|
|
16
|
+
"uk": "виправити деякі помилки відсутніх об'єктів\nдезінфікувати більше назв гравців у синкгрупах\nдодати команду \"Команда\"\nсатизувати більше ім'я гравця\nполіпшення перекладу\nякщо трактист - аваїл, то напишіть художника, якщо порожня\nпокращити роботу для арт-роботи_url\nперемістити документацію віджету з html для розмітки\nрегулюйте чуйний стиль вкладки\nполіпшення віджетів атрибутів\nзміна обробки TPE2 ще раз\njsonConfig add sizing options для різних розмірів екрана\nтестування впровадження TPE2 обробки. Перемикач в налаштуваннях\nдодавати альбоми/артист, трек_artist, художникOriginal",
|
|
17
|
+
"zh-cn": "修正一些缺失的对象错误\n在同步组中消毒更多玩家名\n添加发送到命令“ cmdGeneral ”\n更多消毒玩家名称\n改进翻译\n如果 trackartist 有用, 如果空则写给艺人\n改进对艺术品的处理_ url\n将部件文档从 html 移动到下标记\n调整响应标签样式\n改进属性部件\n再次更改TPE2处理\njsonConfig 添加不同屏幕大小的大小选项\n试验实施TPE2处理。 在设置中切换\n添加数据点相册_艺人,音轨_艺人,艺人"
|
|
18
|
+
},
|
|
19
|
+
"1.4.0-alpha.4": {
|
|
20
|
+
"en": "sanitize more the playername\nimprove translation",
|
|
21
|
+
"de": "sanitize mehr der spielername\nverbesserung der übersetzung",
|
|
22
|
+
"ru": "обезвредить больше имя игрока\nулучшить перевод",
|
|
23
|
+
"pt": "higienizar mais o nome do jogador\nmelhorar a tradução",
|
|
24
|
+
"nl": "de naam van de speler deactiveren\nverbeteren van de vertaling",
|
|
25
|
+
"fr": "désinfecter plus le nom du joueur\naméliorer la traduction",
|
|
26
|
+
"it": "sanitizzare più il nome del giocatore\nmigliorare la traduzione",
|
|
27
|
+
"es": "sanitize más el nombre de jugador\nmejorar la traducción",
|
|
28
|
+
"pl": "sanitize more the playername\npoprawić tłumaczenie",
|
|
29
|
+
"uk": "сатизувати більше ім'я гравця\nполіпшення перекладу",
|
|
30
|
+
"zh-cn": "更多消毒玩家名称\n改进翻译"
|
|
31
|
+
},
|
|
6
32
|
"1.4.0-alpha.3": {
|
|
7
33
|
"en": "if trackartist is avail then write to artist if empty",
|
|
8
34
|
"de": "wenn trackartist in anspruch genommen wird, dann schreiben sie an künstler, wenn leer",
|
|
@@ -67,32 +93,6 @@
|
|
|
67
93
|
"pl": "dodaj przycisk edycji do pola indeksu vie ulubionych widget",
|
|
68
94
|
"uk": "додати кнопку редагування в vie index поле улюблених віджетів",
|
|
69
95
|
"zh-cn": "在最爱部件的vie索引字段中添加编辑按钮"
|
|
70
|
-
},
|
|
71
|
-
"1.3.16": {
|
|
72
|
-
"en": "fixed icons of the favorites widget",
|
|
73
|
-
"de": "feste symbole der favoriten widget",
|
|
74
|
-
"ru": "фиксированные иконы любимого виджета",
|
|
75
|
-
"pt": "ícones fixos do widget favorito",
|
|
76
|
-
"nl": "vaste pictogrammen van de favorieten widget",
|
|
77
|
-
"fr": "icônes fixes du widget favori",
|
|
78
|
-
"it": "icone fisse del widget preferiti",
|
|
79
|
-
"es": "iconos fijos de los favoritos widget",
|
|
80
|
-
"pl": "stałe ikony ulubionego widgetu",
|
|
81
|
-
"uk": "фіксовані ікони улюбленого віджету",
|
|
82
|
-
"zh-cn": "最爱部件的固定图标"
|
|
83
|
-
},
|
|
84
|
-
"1.3.15": {
|
|
85
|
-
"en": "- due to a adapter checker issue i have to remove the release 1.3.13 from npm.\n but changes from 1.3.13 are included in 1.3.14",
|
|
86
|
-
"de": "- wegen eines adapter-checker-problems muss ich das release 1.3.13 von npm entfernen.\nänderungen von 1.3.13 sind in 1.3.14 enthalten",
|
|
87
|
-
"ru": "- из-за проблемы с адаптером, я должен удалить выпуск 1.3.13 из npm.\nно изменения от 1.3.13 включены в подраздел 1.3.14",
|
|
88
|
-
"pt": "- devido a um problema do verificador do adaptador eu tenho que remover a liberação 1.3.13 da npm.\nmas as alterações de 1.3.13 estão incluídas em 1.3.14",
|
|
89
|
-
"nl": "- vanwege een probleem met de adaptercontrole moet ik de release 1.3.13 van npm verwijderen.\nmaar wijzigingen van 1.3.13 zijn opgenomen in 1.3.14",
|
|
90
|
-
"fr": "- en raison d'un problème d'adaptateur, je dois supprimer la version 1.3.13 de npm.\nmais les changements par rapport au 1.3.13 sont inclus dans le 1.3.14",
|
|
91
|
-
"it": "- a causa di un problema dell'adattatore checker devo rimuovere il rilascio 1.3.13 da npm.\nma le modifiche da 1.3.13 sono incluse in 1.3.14",
|
|
92
|
-
"es": "- debido a un problema de control de adaptador tengo que eliminar la liberación 1.3.13 de npm.\npero los cambios de 1.3.13 se incluyen en 1.3.14",
|
|
93
|
-
"pl": "- ze względu na problem sprawdzania adaptera muszę usunąć zwolnienie 1.3.13 z npm.\nale zmiany z 1.3.13 są zawarte w 1.3.14",
|
|
94
|
-
"uk": "- через проблему перевірки адаптера я повинен видалити реліз 1.3.13 з npm.\nале зміни від 1.3.13 включені в 1.3.14",
|
|
95
|
-
"zh-cn": "- 因为适配器检查器的问题,我不得不从npm中移除1.3.13的发布.\n但从1.3.13到1.3.14的变动已包括在内"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
package/lib/iosbplayer.js
CHANGED
|
@@ -510,6 +510,7 @@ function ioSBPlayer(server, playerdata) {
|
|
|
510
510
|
const delay = this.playerindex || 0;
|
|
511
511
|
setTimeout(this.doObserverPlayer.bind(this), delay * 190);
|
|
512
512
|
};
|
|
513
|
+
this.sanitizePlayername = (playername) => playername.replace(this.FORBIDDEN_CHARS, "_");
|
|
513
514
|
this.doObserverPlayer = function () {
|
|
514
515
|
this.logsilly("doObserverPlayer");
|
|
515
516
|
this.getPlayerUpdateStatus();
|
|
@@ -544,7 +545,7 @@ function ioSBPlayer(server, playerdata) {
|
|
|
544
545
|
if (key == "alarms") continue;
|
|
545
546
|
if (Object.prototype.hasOwnProperty.call(playerdata, key)) {
|
|
546
547
|
value = playerdata[key];
|
|
547
|
-
if (key == "name") this.playername = value;
|
|
548
|
+
if (key == "name") this.playername = this.sanitizePlayername(value);
|
|
548
549
|
if (key == "playerindex") this.playerindex = parseInt(value);
|
|
549
550
|
if (key == "remote") this.remote = parseInt(value);
|
|
550
551
|
if (key == "mode") {
|
|
@@ -654,7 +655,7 @@ function ioSBPlayer(server, playerdata) {
|
|
|
654
655
|
this.doPlayerStatus = (playerdata) => {
|
|
655
656
|
this.logsilly("doPlayerStatus");
|
|
656
657
|
if (playerdata.playerid) this.playerid = playerdata.playerid;
|
|
657
|
-
if (playerdata.name) this.playername = playerdata.name
|
|
658
|
+
if (playerdata.name) this.playername = this.sanitizePlayername(playerdata.name);
|
|
658
659
|
if (playerdata.playerindex) this.playerindex = playerdata.playerindex;
|
|
659
660
|
if (playerdata.connected) this.connected = playerdata.connected;
|
|
660
661
|
this.checkPlayerdataStates(playerdata);
|
|
@@ -662,7 +663,7 @@ function ioSBPlayer(server, playerdata) {
|
|
|
662
663
|
this.checkPlayerdataStates = (playerdata) => {
|
|
663
664
|
this.logsilly("checkPlayerdataStates");
|
|
664
665
|
if (!playerdata) return;
|
|
665
|
-
if (playerdata.name) this.playername = playerdata.name;
|
|
666
|
+
if (playerdata.name) this.playername = this.sanitizePlayername(playerdata.name);
|
|
666
667
|
for (const key in this.sbPlayerStatusMain) {
|
|
667
668
|
const stateTemplate = this.sbPlayerStatusMain[key];
|
|
668
669
|
if (key == "playlist" && !this.adapter.config.useplaylist) continue;
|