Estructura de una presencia
Comprende la estructura de carpetas requerida para una presencia de Nowly.
Estructura de carpetas
Una presencia se encuentra en src, agrupada por la primera letra de su nombre:
TXTsrc/Y/YouTube/
|-- metadata.json
|-- presence.ts
`-- assets/
|-- logo.png
|-- icon.png
`-- thumbnail.jpgmetadata.json
metadata.json describe la plataforma, URL compatibles, autor, categoría, descripciones localizadas, recursos de la biblioteca e indicadores opcionales como discordNative.
presence.ts
presence.ts contiene la lógica de ejecución. Detecta el estado de la página y llama a la API de Presence.
utils/
Para presencias complejas, divide tu lógica en archivos dedicados bajo una carpeta utils/. La presencia de YouTube, por ejemplo, organiza helpers DOM, análisis de canales y resolución de Shorts en módulos separados:
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.tsEl empaquetador resuelve importaciones locales desde presence.ts, por lo que puedes importar archivos de utilidad con normalidad:
import { findVideo } from "./utils/dom"
import { getChannelInfo } from "./utils/channel"assets
Los recursos los usan la biblioteca, el paquete de presencia instalado, los datos de actividad de Discord y las imágenes Open Graph.
Archivos requeridos:
| Campo | Tipo | Descripción | Predeterminado |
|---|---|---|---|
logo.png* | PNG, 300×300 | Marca amplia para encabezados de la biblioteca, páginas de presencia e imágenes OG generadas. | - |
icon.png* | PNG, 128×128 | Icono cuadrado para superficies de interfaz compactas y claves de imagen de actividad de Discord. | - |
thumbnail.jpg* | JPG, 1920×1080 | Imagen de vista previa usada cuando la presencia necesita un visual más grande. | - |
Estas dimensiones son requisitos exactos, verificados por CI en cada PR de presencia - consulta Assets para más detalle.