[Vorlage] Spotify Skript

Fragen zum Skripten mit ioBroker.javascript
AxelF1977
professional
Beiträge: 113
Registriert: 23.11.2017, 19:29

Re: [Vorlage] Spotify Skript

Beitrag von AxelF1977 » 07.10.2018, 15:58

twonky hat geschrieben:
22.05.2018, 07:45
@schubi82: Hier habe ich dir ein Skript zusammen gebastelt womit du das lösen kannst. Das Design musst du natürlich an deine Bedürfnisse anpassen.
Genial, sowas habe ich gesucht, Danke

Ich möchte das view nach und nach optisch an Spotify ranrücken. Dafür möchte ich die Playliste genau wie die Trackliste einer Playliste als Tabelle darstellen (siehe Screenshot). Ich möchte das nicht über DropDown Auswahl regeln.

Leider habe ich es nicht geschafft das Javascript anzupassen. Da fehlen mir leider Kenntnisse.

Könnte mir da jemand helfen?

Vielen Dank
Dateianhänge
Spotify_playlist_002.png

el-lutschi
professional
Beiträge: 155
Registriert: 28.10.2017, 15:52

Re: [Vorlage] Spotify Skript

Beitrag von el-lutschi » 09.10.2018, 09:43

Hallo zusammen,

bei mir in der Log läuft auch dauernd der "Fehler", wenn keine Musik läuft:

Code: Alles auswählen

spotify-premium.0	2018-09-20 08:38:01.724	warn	no playback content
spotify-premium.0	2018-09-20 08:37:56.543	warn	no playback content
spotify-premium.0	2018-09-20 08:37:51.431	warn	no playback content
spotify-premium.0	2018-09-20 08:37:46.310	warn	no playback content
Außerdem habe ich das Problem, dass sich meine Connect Geräte dauernd mehrfach im Adapter anlegen und dann nicht mehr über Skripte steuerbar sind.
(Siehe Screenshot).

Vll kann man dagegen auch was tun?

Danke und Gruß
Chris
Dateianhänge
Unbenannt.PNG

AxelF1977
professional
Beiträge: 113
Registriert: 23.11.2017, 19:29

Re: [Vorlage] Spotify Skript

Beitrag von AxelF1977 » 09.10.2018, 17:57

Keiner eine Idee wie das Script umgebaut werden kann, damit die Playlisten als Links in einer Tabelle dargestellt werden können, sie wie es das Script von twonky für die Tracks einer Playliste tut?

Code: Alles auswählen

createState('javascript.0.spotify-premium.trackListHtml', '', false);

function refreshTrackList() {
	var current = getState('spotify-premium.0.playbackInfo.playlist.trackList').val;
	var source = getState('spotify-premium.0.playbackInfo.playlist.trackListArray').val;
	var html = '<table>';

	for (var i = 0; i < source.length; i++) {
		html += '<tr onclick="vis.setValue(\'spotify-premium.0.playbackInfo.playlist.trackList\', ' + i +')">';
		html += '<td>';
		if(current == i) html += '<span style="color:#00ff00"><b>';
		html += source[i].artist;
		if(current == i) html += '</b></span>';
		html += '</td>';
		html += '<td>';
		if(current == i) html += '<span style="color:#00ff00"><b>';
		html += source[i].title;
		if(current == i) html += '</b></span>';
		html += '</td>';
		html += '</tr>';
	}
	
	html += '</table>';

	setState('javascript.0.spotify-premium.trackListHtml', html, true);
}

on('spotify-premium.0.playbackInfo.playlist.trackList', refreshTrackList);
on('spotify-premium.0.playbackInfo.playlist.trackListArray', refreshTrackList);

refreshTrackList();
Ich bekomme es trotz vielen Versuchen einfach nicht hin :oops:

Benutzeravatar
twonky
starter
Beiträge: 63
Registriert: 21.09.2017, 13:41
Wohnort: Hohenhameln
Kontaktdaten:

Re: [Vorlage] Spotify Skript

Beitrag von twonky » 09.10.2018, 20:59


AxelF1977
professional
Beiträge: 113
Registriert: 23.11.2017, 19:29

Re: [Vorlage] Spotify Skript

Beitrag von AxelF1977 » 09.10.2018, 21:07

twonky hat geschrieben:
09.10.2018, 20:59
Skript erstellt: https://github.com/twonky4/ioBroker.spo ... l-Playlist
Wie ich Dir schon geschrieben habe, ich bin schwer beeindruckt! Und ich bin Dir sehr dankbar für die schnelle Hilfe.

Ist auch schon eingebaut, siehe Screenshot. Habe noch kurz die Scrollbars an mein Design angepasst. Kommt echt gut jetzt zusammen. Daher einfach mal Danke sagen!

Klasse Arbeit twonky!
Dateianhänge
Spotify_playlist_004.1.png
Zuletzt geändert von AxelF1977 am 10.10.2018, 21:23, insgesamt 1-mal geändert.

AxelF1977
professional
Beiträge: 113
Registriert: 23.11.2017, 19:29

Re: [Vorlage] Spotify Skript

Beitrag von AxelF1977 » 10.10.2018, 19:42

@twonky

Gibt es eigentlich mittlerweile ein Lösung um die Lautstärke zu regeln, je nach dem Device, auf der die Wiedergabe gerade läuft?

Diese Lösung funktioniert bei mir nicht (angepasst an den neuen Adapter).

Das View nimmt auch langsam Formen an.

Klasse wäre es, auch noch die Anzahl der Titel pro Playliste anzeigen zulassen, wie es auch bei Spotify der Fall ist. Hier = 13 Songs. Der Adapter gibt das ja her, aber wie regel ich das pro Playliste dynamisch?
Dateianhänge
Spotify_playlist_005.png
Spotify_playlist_006.png
Spotify_playlist_006.png (4.59 KiB) 472 mal betrachtet

mikiline
professional
Beiträge: 251
Registriert: 09.05.2017, 12:57

Re: [Vorlage] Spotify Skript

Beitrag von mikiline » 11.10.2018, 05:12

Es gibt bereits einen Datenpunkt hierzu
"spotify-premium.0.playbackInfo.playlist.tracksTotal"

Auch welcher bereits abgespielt wird
"spotify-premium.0.playbackInfo.playlist.trackNo"

AxelF1977
professional
Beiträge: 113
Registriert: 23.11.2017, 19:29

Re: [Vorlage] Spotify Skript

Beitrag von AxelF1977 » 11.10.2018, 06:14

mikiline hat geschrieben:
11.10.2018, 05:12
Es gibt bereits einen Datenpunkt hierzu
"spotify-premium.0.playbackInfo.playlist.tracksTotal"

Auch welcher bereits abgespielt wird
"spotify-premium.0.playbackInfo.playlist.trackNo"
Danke mikiline, da habe ich gestern den Wald vor lauter Bäumen nicht mehr gesehen.

Xyolyp
starter
Beiträge: 27
Registriert: 10.01.2018, 19:48

Re: [Vorlage] Spotify Skript

Beitrag von Xyolyp » 11.10.2018, 11:47

@AxelF1977 stellst du deine View zur Verfügung wenn sie fertig ist? Sieht wirklich gut aus und sollte durch leichte Änderung der Widgetgrößen (oder hast du die schon prozentual?) ja auf nahezu jedem Tablet laufen können ;)

AxelF1977
professional
Beiträge: 113
Registriert: 23.11.2017, 19:29

Re: [Vorlage] Spotify Skript

Beitrag von AxelF1977 » 11.10.2018, 12:34

Xyolyp hat geschrieben:
11.10.2018, 11:47
@AxelF1977 stellst du deine View zur Verfügung wenn sie fertig ist? Sieht wirklich gut aus und sollte durch leichte Änderung der Widgetgrößen (oder hast du die schon prozentual?) ja auf nahezu jedem Tablet laufen können ;)
Hi,

ja, das kann ich gerne machen. Aktuell ist es noch im groben Entstehen, und nur auf mein Tablet angepasst. Sobald es funktioniert wie ich möchte, kann ich es so anpassen, das es universell nutzbar ist

Benutzeravatar
Pocky
starter
Beiträge: 63
Registriert: 11.04.2017, 15:52
Wohnort: An der Weser

Re: [Vorlage] Spotify Skript

Beitrag von Pocky » 11.10.2018, 14:14

@ AxelF1977

Wie hast Du denn die Scrollbalken da rein bekommen?
Grüße Pocky ;)

AxelF1977
professional
Beiträge: 113
Registriert: 23.11.2017, 19:29

Re: [Vorlage] Spotify Skript

Beitrag von AxelF1977 » 11.10.2018, 15:58

Pocky hat geschrieben:
11.10.2018, 14:14
@ AxelF1977

Wie hast Du denn die Scrollbalken da rein bekommen?
Hi Pocky,

das sind jeweils basic string (unescaped) widgeds. Diesen habe ich bei overflow-y: den Wert "scroll" zugeordnet. Damit werden die Widgets dann mit Scrollbalken versehen, falls der Inhalt länger ist, als die Widgethöhe.

Zum Schluss noch mit CSS an mein Layout angepasst.

Code: Alles auswählen

/* width */
::-webkit-scrollbar {
    width: 15px;
}

/* Track */
::-webkit-scrollbar-track {
    background: #424242; 
}

/* Handle */
::-webkit-scrollbar-thumb {
    background: #888; 
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
    background: #a7a6a6; 
}
Dateianhänge
scrollbars01.JPG

Benutzeravatar
Pocky
starter
Beiträge: 63
Registriert: 11.04.2017, 15:52
Wohnort: An der Weser

Re: [Vorlage] Spotify Skript

Beitrag von Pocky » 11.10.2018, 16:41

@ AxelF1977

Danke Dir
Grüße Pocky ;)

AxelF1977
professional
Beiträge: 113
Registriert: 23.11.2017, 19:29

Re: [Vorlage] Spotify Skript

Beitrag von AxelF1977 » 11.10.2018, 18:07

Pocky hat geschrieben:
11.10.2018, 16:41
@ AxelF1977

Danke Dir
Gerne, ein Forum ist zum Austauschen und Helfen da. Ich habe hier viel Hilfe erfahren, freue mich wenn ich was zurück geben kann.

AxelF1977
professional
Beiträge: 113
Registriert: 23.11.2017, 19:29

Re: [Vorlage] Spotify Skript

Beitrag von AxelF1977 » 11.10.2018, 19:43

Bei dem View geht es auch weiter, Screenshot 1 . Einige Baustellen habe ich aber, hier müsste twonkey bitte helfe.

Gelöst:
Volume über ein Widget, läuft gut
Statusbar der Wiedergabe, funktioniert (leicht zeitverzögert und stockend, wie die Anzeige der Spielzeit auch)
Länge der Texte der Playliste über CSS kürzen

Ansonsten habe ich die Tabelle der Tracks optisch in Richtung Spotify gebracht.

To do:

Hier würde ich aber gerne noch die Laufzeit jedes Tracks gerne rechts neben dem Titel haben (wie bei Spotify) siehe Screenshot 2
Auswahl der Quelle auf der gehört wird, wie bei Spotify, Screenshot 3
View universell einsetzbar auf Tablets

Klar wäre es super wenn wir zusätzlich Sachen hätten wir: Zur Playliste hinzufügen, suchen etc. Aber ich glaube das ein bisschen hoch gegriffen
Dateianhänge
Spotify_playlist_012.png
Spotify_playlist_009.png
Spotify_playlist_010.png
Spotify_playlist_010.png (19.13 KiB) 70 mal betrachtet

mikiline
professional
Beiträge: 251
Registriert: 09.05.2017, 12:57

Re: [Vorlage] Spotify Skript

Beitrag von mikiline » 12.10.2018, 05:07

Geräteauswahl habe ich bisher so gelöst
Spoiler: Show hidden text

Code: Alles auswählen

[{"tpl":"tplJquiSelectList","data":{"oid":"spotify-premium.0.devices.deviceList","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"{spotify-premium.0.devices.availableDeviceListIds}","texts":"{spotify-premium.0.devices.availableDeviceListString}","height":"250","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"no_style":false,"open":false},"style":{"left":"5px","top":"405px","width":"260px","height":"300px","z-index":"2","overflow-y":""},"widgetSet":"jqui"}]
Vielleicht kannst Du das in dein View integrieren und per CSS noch verbessern, so das es in Deine Leiste unten passt und nach oben auf geht ;)

AxelF1977
professional
Beiträge: 113
Registriert: 23.11.2017, 19:29

Re: [Vorlage] Spotify Skript

Beitrag von AxelF1977 » 12.10.2018, 06:24

mikiline hat geschrieben:
12.10.2018, 05:07
Geräteauswahl habe ich bisher so gelöst

Vielleicht kannst Du das in dein View integrieren und per CSS noch verbessern, so das es in Deine Leiste unten passt und nach oben auf geht ;)
Das Drop Down habe ich eingebunden, nur aktuell ausgeblendet, weil es optisch nicht mehr passt. Ich muss mal gucken ob das so einfach zu ändern ist. Ich schau mir das heute Abend nach der Arbeit an.
Es wird sich aber eine Lösung finden.

Danke Dir

Benutzeravatar
twonky
starter
Beiträge: 63
Registriert: 21.09.2017, 13:41
Wohnort: Hohenhameln
Kontaktdaten:

Re: [Vorlage] Spotify Skript

Beitrag von twonky » 12.10.2018, 09:36

@AxelF1977: Aktuell wird die Dauer eines Track beim laden der Playlisten noch nicht abgefragt, wäre aber möglich. Welche Track Infos werden denn noch benötigt? Es gibt noch: HinzugefügtAm, HinzugefügtVon, Album, CD-Nr, Episode (Ich denke mal bei podcasts relevant), Explicit (ich denke mal nicht jugendfreundliche Texte), Popularität

Ich habe mir auch nochmal näher das Problem mit "restricted" Geräten angeguckt, wie z.b. Sonos. Ich glaube eine alternative wäre es für solche Geräte die Anbindung über den jeweiligen Adapter zu realisieren. Das heißt der Spotify Adapter würde dann mit dem Sonos Adapter reden.

AxelF1977
professional
Beiträge: 113
Registriert: 23.11.2017, 19:29

Re: [Vorlage] Spotify Skript

Beitrag von AxelF1977 » 12.10.2018, 10:59

twonky hat geschrieben:
12.10.2018, 09:36
@AxelF1977: Aktuell wird die Dauer eines Track beim laden der Playlisten noch nicht abgefragt, wäre aber möglich. Welche Track Infos werden denn noch benötigt? Es gibt noch: HinzugefügtAm, HinzugefügtVon, Album, CD-Nr, Episode (Ich denke mal bei podcasts relevant), Explicit (ich denke mal nicht jugendfreundliche Texte), Popularität

Ich habe mir auch nochmal näher das Problem mit "restricted" Geräten angeguckt, wie z.b. Sonos. Ich glaube eine alternative wäre es für solche Geräte die Anbindung über den jeweiligen Adapter zu realisieren. Das heißt der Spotify Adapter würde dann mit dem Sonos Adapter reden.
Ich sag es mal so, wenn diese Trackinfos alle genutzt werden können, warum nicht? Ich würde alle nehmen. Ob und wie diese dann genutzt werden, kann ja dann über das Javascript genutzt werden, oder es wird gleich in dem Adapter verankert, das die Nutzer es auswählen können, was angezeigt wir (nur ein Gedankenspiel)

Xyolyp
starter
Beiträge: 27
Registriert: 10.01.2018, 19:48

Re: [Vorlage] Spotify Skript

Beitrag von Xyolyp » 12.10.2018, 13:06

AxelF1977 hat geschrieben:
11.10.2018, 19:43
View universell einsetzbar auf Tablets
Wenn ich mir noch was wünschen darf, dann wäre es, dass du die einzelnen Widgetgruppen (Playlistliste, Fußzeile, Aktuelle Playlist, ...) nicht nur gemeinsam in der View hast, sondern auch die einzelnen Gruppen einzeln zur Verfügung stellst. Ich finde es nämlich sehr angenehm, wenn ich zum weiter klicken nicht ewig in den Views hin und her wechseln muss, sondern bei laufender Wiedergabe auf allen Views unten die Fußzeile zu sehen ist.
Vielleicht magst du dich ja sogar etwas in die Adapterentwicklung reinfuchsen und die Widgetgruppen als Widgets im Spotify-Adapter hinzufügen (oder wenn vom Entwickler nicht gewünscht einen eigenen Adapter drauß machen)

Antworten