Presence-Struktur
Verstehe den erforderlichen Ordneraufbau einer Nowly-Presence.
Ordnerstruktur
Eine Presence liegt unter src, gruppiert nach dem ersten Buchstaben ihres Namens:
TXTsrc/Y/YouTube/
|-- metadata.json
|-- presence.ts
`-- assets/
|-- logo.png
|-- icon.png
`-- thumbnail.jpgmetadata.json
metadata.json beschreibt die Plattform, unterstützte URLs, den Autor, die Kategorie, lokalisierte Beschreibungen, Marktplatz-Assets und optionale Flags wie discordNative.
presence.ts
presence.ts enthält die Laufzeitlogik. Sie erkennt den Seitenzustand und ruft die Presence-API auf.
utils/
Bei komplexen Presences teile deine Logik in dedizierte Dateien unter einem utils/-Ordner auf. Die YouTube-Presence organisiert zum Beispiel DOM-Hilfsfunktionen, Kanal-Parsing und Shorts-Auflösung in separaten Modulen:
TXTsrc/Y/YouTube/
|-- metadata.json
|-- presence.ts
|-- assets/
| |-- logo.png
| |-- icon.png
| `-- thumbnail.jpg
`-- utils/
|-- categories.ts
|-- dom.ts
|-- channel.ts
|-- text.ts
|-- bridge.ts
|-- shorts-dom.ts
|-- shorts-resolve.ts
`-- youtube-data.tsDer Bundler löst lokale Imports aus presence.ts auf, sodass du Utility-Dateien ganz normal importieren kannst:
import { findVideo } from "./utils/dom"
import { getChannelInfo } from "./utils/channel"assets
Assets werden vom Marktplatz, dem installierten Presence-Paket, den Discord-Activity-Payloads und den Open-Graph-Bildern verwendet.
Erforderliche Dateien:
| Feld | Typ | Beschreibung | Standard |
|---|---|---|---|
logo.png* | PNG, 300×300 | Breites Markenzeichen für Marktplatz-Header, Presence-Seiten und generierte OG-Bilder. | - |
icon.png* | PNG, 128×128 | Quadratisches Icon für kompakte UI-Oberflächen und Discord-Activity-Image-Keys. | - |
thumbnail.jpg* | JPG, 1920×1080 | Vorschaubild, das verwendet wird, wenn die Presence ein größeres Bild benötigt. | - |
Diese Maße sind exakte Anforderungen, die CI bei jedem Presence-PR prüft - siehe Assets für Details.