Vovó Aiuto

action.json e pad.json

Ogni chiave dei due file che Vovó legge da una cartella o da uno zip, generata dal codice stesso di Vovó, quindi sempre allineata a questa versione. Vovó controlla ogni file quando arriva e lo rifiuta con una frase che dice cosa non va; una chiave che non conosce viene ignorata senza dire nulla, e un editor che legge lo schema la sottolinea.

Una chiave è fatta di lettere minuscole, cifre e _, e un nome può avere anche -, ciascuno di 32 caratteri al massimo.

Perché un editor completi le chiavi e sottolinei gli errori, indica lo schema all'inizio del file, come fanno gli esempi. vovo dev scrive action.schema.json accanto alle parti di un'azione; il codice sorgente di Vovó li ha entrambi nella cartella api.

action.json

Il manifesto di un'azione: come si chiama, cosa ascolta, cosa chiede e cosa offre a chi gestisce la diretta. Sta accanto a index.html, style.css, script.js e files/, in un pacchetto o in una cartella.

{
    "$schema": "./action.schema.json",
    "name": "Raffle",
    "id": "example.raffle",
    "version": "1.2.0",
    "api": 1,
    "author": "A maker",
    "site": "https://example.com/raffle",
    "description": "!join in chat joins the wheel; the panel draws the winner.",
    "license": "MIT",
    "triggers": ["chat", "timer"],
    "bindings": [
        { "event": "chat", "filter": [{ "field": "text", "op": "starts", "value": "!join" }] },
        { "event": "timer", "filter": [{ "field": "every", "op": "is", "value": 300 }] }
    ],
    "permissions": ["chat.send"],
    "controls": [
        { "key": "open", "label": "Entries open", "kind": "toggle" },
        { "key": "prize", "label": "Prize", "kind": "text" }
    ],
    "settings": [
        { "key": "color", "label": "Wheel colour", "kind": "color", "default": "#840926" },
        { "key": "size", "label": "Size", "kind": "number", "min": 200, "max": 800, "step": 10, "unit": "px", "default": 420 },
        { "key": "side", "label": "Side", "kind": "choice", "options": ["Left", "Right"], "default": "Right" }
    ],
    "panel": [
        { "kind": "control", "key": "open" },
        { "kind": "control", "key": "prize" },
        { "kind": "form", "name": "add", "label": "Put someone in", "button": "Put", "fields": [{ "key": "who", "label": "Name" }] },
        { "kind": "button", "name": "draw", "label": "Draw", "confirm": true },
        { "kind": "list", "key": "names", "label": "In the wheel", "empty": "Nobody yet", "buttons": [{ "name": "out", "label": "Take out", "confirm": true }] }
    ]
}

Condizioni

Ogni attivatore di nuovo, con le condizioni che devono valere tutte perché faccia scattare l'azione, come le salva l'editor. Uno per ogni nome in triggers, in qualsiasi ordine: se non corrispondono uno a uno, tutte le condizioni vengono tralasciate senza dire nulla e ogni attivatore scatta per qualsiasi cosa.

Una condizione

Uno dei campi dell'evento confrontato con un valore. I testi si confrontano senza distinguere maiuscole e minuscole; un numero scritto come testo viene letto come numero.

Controlli

Ciò che il pad cambia mentre l'azione è in funzione: ognuno tenuto in vovo.state sotto la sua chiave e comunicato all'azione come evento control, che ascolta senza elencarlo.

Impostazioni

Ciò che chi usa l'azione può cambiare senza il suo codice, in Personalizza: letto come vovo.settings.<key>, come --vovo-<key> nel suo CSS e, per attivo o disattivo e una scelta, come data-vovo-<key> sul suo documento. Ciò che si sceglie resta con l'azione, e un pacchetto porta solo i predefiniti. Al massimo otto sono testi.

Impostazioni: color

Un colore; il vinaccia di Vovó, #840926, se l'azione non ne indica un altro.

Impostazioni: number

Un numero da un minimo a un massimo, a passi; il minimo se l'azione non ne indica un altro.

Impostazioni: toggle

Attivo o disattivo; disattivo se l'azione non dice altro.

Impostazioni: choice

Una delle sue opzioni; la prima se l'azione non ne indica un'altra.

Impostazioni: text

Una riga di testo; vuota se l'azione non ne indica un'altra.

Impostazioni: file

Un'immagine, un suono o un video scelto da chi la usa, di 50 MB al massimo; come arriva l'azione, uno dei suoi file, per percorso, o nessuno.

Impostazioni: font

Uno dei caratteri del computer, per famiglia; Segoe UI se l'azione non ne indica un altro.

Impostazioni: camera

Una delle videocamere del computer, che sceglie in Personalizza chi usa l'azione, mostrata dove l'azione la colloca (vovo.camera.place, con il permesso camera.show); al massimo quattro. Arriva senza, quindi non ha un valore predefinito.

Pannello

Ciò che l'azione mostra a chi gestisce la diretta in Pannelli, nella barra laterale: pezzi in ordine, ciascuno indicato dal suo kind, disegnati da Vovó. Ciò che vi si fa arriva all'azione come evento panel, che ascolta senza elencarlo. Un pezzo panel inizia un altro pannello, con i pezzi successivi fino al prossimo, e i pezzi prima del primo compaiono in tutti; un tab divide un pannello in sezioni allo stesso modo. I nomi di pulsanti, moduli e pulsanti di un elenco sono unici nell'azione. Un'azione dichiara al massimo 24 pannelli, ciascuno con al massimo 40 pezzi e 12 schede.

Pannello: panel

Qui inizia un altro pannello, con una voce propria in Pannelli.

Pannello: tab

Una sezione del pannello: i pezzi successivi, fino alla prossima scheda.

Pannello: heading

Un titolo sopra i pezzi successivi, che condividono una scheda.

Pannello: note

Una riga che dice qualcosa.

Pannello: control

Uno dei controlli dell'azione, usato qui come sul pad.

Pannello: button

Un pulsante.

Pannello: form

Alcuni campi e un pulsante: ciò che si scrive parte con la pressione, nei values dell'evento. Un modulo di un solo campo si compila nel pannello stesso.

Campi di un modulo

Ciascuno una riga scritta nel pannello, inviata con il modulo con la sua chiave.

Pannello: list

Un elenco letto dallo stato dell'azione, una riga per elemento, che possono essere migliaia; uno con più di otto righe ha una ricerca propria.

Pulsanti di un elenco

Pulsanti su ogni riga dell'elenco.

pad.json

Un pacchetto di pulsanti per il pad: uno zip o una cartella di suoni e video, con pad.json alla radice che indica i gruppi e i loro pulsanti; senza, ogni cartella è un gruppo e ogni suono o video un pulsante con il nome del suo file. Importato di nuovo, aggiorna ciò che nomina e lascia il resto com'è.

{
    "$schema": "./pad.schema.json",
    "groups": [
        {
            "name": "Sounds",
            "color": "#2F6FDB",
            "buttons": [
                { "label": "Applause", "icon": "👏", "sound": "sounds/applause.mp3", "favorite": true, "hotkey": "F13" },
                { "label": "Drum roll", "sound": "sounds/drums.ogg", "volume": 130 },
                { "label": "Rain", "video": "videos/rain.mp4", "key": "luma", "loop": true }
            ]
        },
        {
            "name": "Live",
            "buttons": [
                { "label": "Raffle", "action": "Raffle" },
                { "label": "Entries", "action": "Raffle", "control": "open" },
                { "label": "Starting", "scene": "Starting soon" },
                { "label": "Camera", "scene": "Game", "source": "Camera" },
                { "label": "Blur", "source": "Camera", "filter": "Blur" },
                { "label": "One minute", "team": "One minute, then I'm back." }
            ]
        }
    ]
}

Gruppi

Un gruppo del pad e i suoi pulsanti, in ordine.

Pulsanti

Un pulsante e cosa fa: Vovó legge il primo di questi che trova, in quest'ordine: sound; video; action con control; action; source con filter, o scene con source; scene. Un pacchetto porta al massimo 2.000 pulsanti.