diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c013e4b --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.DS_Store +.idea/ +.phpunit.* +.php_cs.cache \ No newline at end of file diff --git a/README.md b/README.md index 40199e1..b660638 100644 --- a/README.md +++ b/README.md @@ -6,5 +6,5 @@ Folgende Module beinhaltet das Spotify Repository: -- __Spotify__ ([Dokumentation](Spotify)) +- __Spotify__ ([Dokumentation](https://www.symcon.de/de/service/dokumentation/modulreferenz/spotify)) Steuert die Wiedergabe von Spotify diff --git a/Spotify/README.md b/Spotify/README.md index 973a3d1..e93c6f2 100644 --- a/Spotify/README.md +++ b/Spotify/README.md @@ -1,158 +1,5 @@ # Spotify -Das Spotify-Modul ermöglicht die Verknüpfung mit einem Spotify-Premium-Konto. Darüber kann die Wiedergabe über das Konto gesteuert werden. So ist es möglich, die eine Wiedergabe zu starten oder die aktuelle Wiedergabe zu ändern bzw. zu beenden. Auch Optionen wie Wiederholung oder Zufallswiedergabe können gesetzt werden. -Innerhalb des Moduls werden Favoriten gespeichert, welche dann komfortabel aus der Visualisierung abgerufen werden können. -### Inhaltsverzeichnis +[Link zur deutschen Dokumentation](https://www.symcon.de/de/service/dokumentation/modulreferenz/spotify/) -1. [Funktionsumfang](#1-funktionsumfang) -2. [Voraussetzungen](#2-voraussetzungen) -3. [Software-Installation](#3-software-installation) -4. [Einrichten der Instanzen in IP-Symcon](#4-einrichten-der-instanzen-in-ip-symcon) -5. [Statusvariablen und Profile](#5-statusvariablen-und-profile) -6. [WebFront](#6-webfront) -7. [PHP-Befehlsreferenz](#7-php-befehlsreferenz) - -### 1. Funktionsumfang - -* Verknüpfung mit einem Spotify-Premium-Konto -* Wiedergabe abspielen oder pausieren -* Zu nächstem oder vorherigen Song wechseln -* Gerät für Wiedergabe auswählen oder wechseln -* Favoriten abspeichern und wieder aufrufen -* Wiederholung oder Zufallswiedergabe aktivieren - -### 2. Voraussetzungen - -- IP-Symcon ab Version 5.3 -- Spotify-Premium-Konto - -### 3. Software-Installation - -* Über den Module Store das 'Spotify'-Modul installieren. -* Alternativ über das Module Control folgende URL hinzufügen: -`https://github.com/symcon/SymconSpotify` - -### 4. Einrichten der Instanzen in IP-Symcon - - - Unter 'Instanz hinzufügen' kann das 'Spotify'-Modul mithilfe des Schnellfilters gefunden werden. - - Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen) - -__Konfigurationsseite__: - -Initial muss das Modul durch einen Klick auf den Button "Registrieren" mit einem Spotify-Premium-Konto verknüpft werden. Durch den Klick öffnet sich ein Anmeldungsdialog von Spotify. Nach Eingabe der Benutzerdaten muss die Verknüpfung bestätigt werden. Danach stehen alle Funktionen des Moduls zur Verfügung. - - -___Erweiterte Einstellungen___ - -Name | Beschreibung ------------------------- | --------------------------------- -Aktualisierungsintervall | In diesem Intervall werden die Werte der Statusvariablen mit der aktuellen Wiedergabe von Spotify abgeglichen. Dies beinhaltet das Gerät, Wiedergabe oder Pause, Zufallswiedergabe und Wiederholung -Cover: Maximale Breite | Maximale Breite des dargestellten Covers -Cover: Maximale Höhe | Maximale Höhe des dargestellten Covers - -___Suche___ - -Name | Beschreibung ------------------------- | --------------------------------- -Suche | In diesem Feld wird ein Suchbegriff für eine Suche eingegeben -Suche nach Alben | Gibt an ob die nächste Suche Alben beinhalten soll -Suche nach Künstlern | Gibt an ob die nächste Suche Künstler beinhalten soll -Suche nach Playlists | Gibt an ob die nächste Suche Playlists beinhalten soll -Suche nach Songs | Gibt an ob die nächste Suche Songs beinhalten soll -Suche starten | Startet eine Suche -Suchergebnisse | Diese Liste beinhaltet die Ergebnisse der aktuellen Suche - Durch ein Aktivieren des Feldes "Favorit" kann ein Ergbnis den Favoriten hinzugefügt werden - -Die Liste "Ihre Playlists" beinhaltet die Playlists des verknüpften Spotify-Kontos. Diese können über das Feld "Favorit" den Favoriten hinzugefügt werden. Die Liste "Favoriten" beinhaltet die eingestellten Favoriten. Durch ein Klick auf das Mülleimer-Symbol können Favoriten entfernt werden. - -### 5. Statusvariablen und Profile - -Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen. - -##### Statusvariablen - -Name | Typ | Beschreibung --------------------- | ------- | ---------------- -Aktuelles Cover | HTMLBox | Hier wird das Cover des aktuell abgespielten Albums dargestellt, sofern vorhanden -Aktueller Song | string | Hier wird der Name des aktuell abgespielten Songs angezeigt -Aktueller Künstler | string | Hier wird der Künstler des aktuell abgespielten Songs angezeigt -Aktuelles Album | string | Hier wird das Album des aktuell abgespielten Songs angezeigt -Aktion | integer | Hierüber kann eine Wiedergabe gestartet oder pausiert werden. Außerdem ist es möglich auf den vorherigen oder nächsten Song zu wechseln -Gerät | integer | Mit dieser Variable kann ein Wiedergabegerät ausgewählt werden. Ist aktuell eine Wiedergabe aktiv, so wird diese auf das neue Gerät gewechselt -Favorit | integer | Diese Variable stellt die im Modul konfigurierten Favoriten dar. Durch die Auswahl eines Favoriten wird dieser auf dem aktuell gewählten Gerät abgespielt -Wiederholen | integer | Über diese Variable kann die Wiederholung aktiviert werden - "Aus": Keine Wiederholung, "Kontext": Der aktuelle Kontext, also das Album, die Playlist, ... wird wiederholt, "Song": Der aktuelle Song wird wiederholt -Zufällige Wiedergabe | boolean | Aktiviert bzw. deaktiviert die zufällige Wiedergabe - -##### Profile: - -Name | Typ ------------------------------------ | ------- -Spotify.Favorites.<InstanzID> | Integer -Spotify.Devices | Integer -Spotify.Repeat | Integer - -### 6. WebFront - -Über das WebFront oder in den mobilen Apps werden Statusvariablen angezeigt und können geschaltet werden. - -### 7. PHP-Befehlsreferenz - -`boolean SPO_Play(integer $InstanzID);` -Existiert eine aktuelle, möglicherweise pausierte, Wiedergabe, so wird diese fortgesetzt. Ansonsten wird der aktuell ausgewählte Favorit auf dem aktuell ausgewähltem Gerät abgespielt. -Die Funktion liefert keinerlei Rückgabewert. -Beispiel: -`SPO_Play(12345);` - -`boolean SPO_Pause(integer $InstanzID);` -Existiert eine aktuelle Wiedergabe, so wird diese pausiert. -Die Funktion liefert keinerlei Rückgabewert. -Beispiel: -`SPO_Pause(12345);` - -`boolean SPO_PreviousTrack(integer $InstanzID);` -Existiert eine aktuelle Wiedergabe, so wird der vorherige Song abgespielt. -Die Funktion liefert keinerlei Rückgabewert. -Beispiel: -`SPO_PreviousTrack(12345);` - -`boolean SPO_NextTrack(integer $InstanzID);` -Existiert eine aktuelle Wiedergabe, so wird der nächste Song abgespielt. -Die Funktion liefert keinerlei Rückgabewert. -Beispiel: -`SPO_NextTrack(12345);` - -`boolean SPO_PlayURI(integer $InstanzID, string $URI);` -Spielt die Spotify-Resource mit der URI $URI auf dem aktuell ausgewähltem Gerät ab. -Die Funktion liefert keinerlei Rückgabewert. -Beispiel: -`SPO_PlayURI(12345, 'spotify:artist:1Lw1vZvhgNZk7hVSvdY4OA');` - -`boolean SPO_SetRepeat(integer $InstanzID, integer $Repeat);` -Setzt die Wiederholung auf den Wert $Repeat. - -Wert | Bedeutung ----- | --------- -0 | Wiederholung deaktiviert -1 | Wiederholung des Kontext -2 | Wiederholung des Songs - -Die Funktion liefert keinerlei Rückgabewert. -Beispiel: -`SPO_SetRepeat(12345, 2);` - -`boolean SPO_SetShuffle(integer $InstanzID, boolean $Shuffle);` -Ist $Shuffle true, so wird die zufällige Wiedergabe aktiviert, ansonsten deaktiviert. -Die Funktion liefert keinerlei Rückgabewert. -Beispiel: -`SPO_SetShuffle(12345, true);` - -`boolean SPO_ResetToken(integer $InstanzID);` -Setzt die OAuth-Token und somit die Verknüpfung mit dem Spotify-Konto zurück. -Die Funktion liefert keinerlei Rückgabewert. -Beispiel: -`SPO_ResetToken(12345);` - -`SPO_MakeAPIRequest(integer $InstanzID, string $Method, string $Url, string $Body);` -Stellt eine Anfrage an die Spotify Web-API mit den angegebenen Parametern. Dabei muss nur der endpunktspezifische Pfad angegeben werden, der allgemeine Teil, also https://api.spotify.com/v1 wird automatisch hinzugefügt -Die Funktion gibt die Rückgabe der API als String zurück oder false bei einem Fehler. -Beispiel: -`SPO_MakeAPIRequest(12345, 'GET', '/me', '');` \ No newline at end of file +[Link to the english documentation](https://www.symcon.de/en/service/documentation/module-reference/spotify/) \ No newline at end of file diff --git a/Spotify/module.php b/Spotify/module.php index 8dae968..62247ac 100644 --- a/Spotify/module.php +++ b/Spotify/module.php @@ -282,8 +282,7 @@ public function Play() $favoriteValue = $this->GetValue('Favorite'); if ($favoriteValue === '') { echo $this->Translate('Could not play because there is no current playback and no favorite was selected'); - } - else { + } else { $this->RequestAction('Favorite', $this->GetValue('Favorite')); } } diff --git a/tests/phpunit.xml b/tests/phpunit.xml index 061bb8e..d17831d 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -1,11 +1,12 @@ - - - - - - - ../Spotify - - - \ No newline at end of file + + + + + + + + ../Spotify + + +