PumpgunStudios
Dokumentation
Wiki-Startseite
Entwicklerleitfaden

Ein Amazify-Plugin entwickeln

Ein Plugin besteht aus einem kleinen Ordner mit Manifest und optionalen JavaScript-, CSS-, Bild-, SVG-, Schrift- und JSON-Dateien. Mache die Zuständigkeit kenntlich, beschränke Berechtigungen und entferne alle Änderungen beim Beenden.

Minimale Struktur

example.my-plugin/
  manifest.json
  plugin.js
  style.css
  assets/
    logo.svg

Manifest

{
  "id": "example.my-plugin",
  "name": "My Plugin",
  "version": "0.1.0",
  "author": "Your Name",
  "type": "ui",
  "description": "A short user-facing description.",
  "entry": "plugin.js",
  "styles": ["style.css"],
  "assets": { "logo": "assets/logo.svg" },
  "permissions": ["dom-read", "dom-write", "dom-style"],
  "amazonMusic": {
    "testedAppVersions": [],
    "target": "desktop"
  }
}

Verwende eine stabile ID im umgekehrten Domainformat, semantische Versionierung, eine knappe Beschreibung und nur die Berechtigungen, die deine Implementierung benötigt.

Laufzeit-Einstiegspunkt

Das Plugin-JavaScript erhält Amazify, manifest und source. Gib eine Bereinigungsfunktion zurück, die Listener, Beobachter, Timer, DOM-Elemente und alle vom Plugin hinzugefügten Zustände entfernt.

const badge = document.createElement("div");
badge.dataset.amazifyPluginId = manifest.id;
badge.textContent = "Active";
document.body.appendChild(badge);

return function cleanup() {
  badge.remove();
};

Zuständigkeit für DOM-Elemente

Kennzeichne Elemente des Plugins mit data-amazify-plugin-id. Beschränke CSS auf eine pluginspezifische Klasse oder ein Attribut. Amazon Music kann Bereiche jederzeit neu rendern. Beobachter sollten daher möglichst gezielt arbeiten, bei Bedarf entprellt und bei der Bereinigung getrennt werden.

Ressourcen

Deklariere Ressourcen im Manifest und löse sie über Amazify.assets.url(manifest.id, "logo") oder source.assetUrl("logo") auf. Passende CSS-Verweise mit url(...) werden zur Laufzeit in geprüfte Data-URLs umgeschrieben.

Berechtigungen

  • dom-read macht kenntlich, dass das Plugin das Amazon-Music-Dokument ausliest.
  • dom-write macht kenntlich, dass das Plugin Struktur oder Verhalten des Dokuments verändert.
  • dom-style macht kenntlich, dass das Plugin Stile einfügt oder verändert.
  • network macht externe Anfragen kenntlich und sollte nur bei zwingendem Bedarf verwendet werden.
Wichtig: Berechtigungen informieren über Zugriff und ermöglichen eine bewusste Zustimmung; sie bilden keine vollständige JavaScript-Sandbox. Aktivierte Plugins laufen im angemeldeten Amazon-Music-Renderer und können beeinflussen, was Nutzende sehen und tun.

Vor der Veröffentlichung

  • Teste Aktivierung, Deaktivierung, Neuinstallation und Updates.
  • Prüfe die Bereinigung, während die betroffene Amazon-Music-Ansicht geöffnet ist.
  • Teste schmale und breite Fenster sowie erneute Amazon-Music-Darstellungen und Titelwechsel.
  • Fixiere den Quellcode-Commit und führe für die Katalogprüfung alle Dateien korrekt auf.
  • Dokumentiere für jede Netzwerkberechtigung externe Endpunkte und das Verhalten bei Fehlern.

Quellcode der Standard-Plugins ansehen