Soundboard para StreamElements
Este widget ainda está em desenvolvimento!
Este código ainda não está documentado e está em fase de testes. Use por sua conta e risco.
Este é um widget que aciona um áudio quando um espectador chama um comando. Criei ele na intenção de ser um tipo de "SoundAlerts" que funciona em lives no YouTube.
☕ Te ajudei? Me manda um cafézinho ^^
[email protected]
A fazer:
- Bolar algum meio do comando retornar algum feedback no chat;
- Documentar o widget.
HTML
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family={{alert_googleFont}}" rel="stylesheet">
<div id="alert_container" data-fade="{{alert_fade}}" data-globaltimeout="{{alert_globaltimeout}}" data-usertimeout="{{alert_usertimeout}}">
<img id="image" src="{{alert_image}}">
<p id="alert_text" data-value="{{alert_text}}" data-shadow="{{alert_shadow}}" style="--text-color: {{alert_textcolor}}; --shoutout-text-color: {{alert_shoutouttextcolor}}"></p>
</div>
<div id="audios">
<audio id="audio-{{audio01_name}}" data-active="{{audio01_active}}" src="{{audio01_file}}"></audio>
<audio id="audio-{{audio02_name}}" data-active="{{audio02_active}}" src="{{audio02_file}}"></audio>
<audio id="audio-{{audio03_name}}" data-active="{{audio03_active}}" src="{{audio03_file}}"></audio>
<audio id="audio-{{audio04_name}}" data-active="{{audio04_active}}" src="{{audio04_file}}"></audio>
<audio id="audio-{{audio05_name}}" data-active="{{audio05_active}}" src="{{audio05_file}}"></audio>
<audio id="audio-{{audio06_name}}" data-active="{{audio06_active}}" src="{{audio06_file}}"></audio>
<audio id="audio-{{audio07_name}}" data-active="{{audio07_active}}" src="{{audio07_file}}"></audio>
<audio id="audio-{{audio08_name}}" data-active="{{audio08_active}}" src="{{audio08_file}}"></audio>
<audio id="audio-{{audio09_name}}" data-active="{{audio09_active}}" src="{{audio09_file}}"></audio>
<audio id="audio-{{audio10_name}}" data-active="{{audio10_active}}" src="{{audio10_file}}"></audio>
<audio id="audio-{{audio11_name}}" data-active="{{audio11_active}}" src="{{audio11_file}}"></audio>
<audio id="audio-{{audio12_name}}" data-active="{{audio12_active}}" src="{{audio12_file}}"></audio>
<audio id="audio-{{audio13_name}}" data-active="{{audio13_active}}" src="{{audio13_file}}"></audio>
<audio id="audio-{{audio14_name}}" data-active="{{audio14_active}}" src="{{audio14_file}}"></audio>
<audio id="audio-{{audio15_name}}" data-active="{{audio15_active}}" src="{{audio15_file}}"></audio>
<audio id="audio-{{audio16_name}}" data-active="{{audio16_active}}" src="{{audio16_file}}"></audio>
<audio id="audio-{{audio17_name}}" data-active="{{audio17_active}}" src="{{audio17_file}}"></audio>
<audio id="audio-{{audio18_name}}" data-active="{{audio18_active}}" src="{{audio18_file}}"></audio>
<audio id="audio-{{audio19_name}}" data-active="{{audio19_active}}" src="{{audio19_file}}"></audio>
<audio id="audio-{{audio20_name}}" data-active="{{audio20_active}}" src="{{audio20_file}}"></audio>
<audio id="audio-{{audio21_name}}" data-active="{{audio21_active}}" src="{{audio21_file}}"></audio>
<audio id="audio-{{audio22_name}}" data-active="{{audio22_active}}" src="{{audio22_file}}"></audio>
<audio id="audio-{{audio23_name}}" data-active="{{audio23_active}}" src="{{audio23_file}}"></audio>
<audio id="audio-{{audio24_name}}" data-active="{{audio24_active}}" src="{{audio24_file}}"></audio>
<audio id="audio-{{audio25_name}}" data-active="{{audio25_active}}" src="{{audio25_file}}"></audio>
<audio id="audio-{{audio26_name}}" data-active="{{audio26_active}}" src="{{audio26_file}}"></audio>
<audio id="audio-{{audio27_name}}" data-active="{{audio27_active}}" src="{{audio27_file}}"></audio>
<audio id="audio-{{audio28_name}}" data-active="{{audio28_active}}" src="{{audio28_file}}"></audio>
<audio id="audio-{{audio29_name}}" data-active="{{audio29_active}}" src="{{audio29_file}}"></audio>
<audio id="audio-{{audio30_name}}" data-active="{{audio30_active}}" src="{{audio30_file}}"></audio>
<audio id="audio-{{audio31_name}}" data-active="{{audio31_active}}" src="{{audio31_file}}"></audio>
<audio id="audio-{{audio32_name}}" data-active="{{audio32_active}}" src="{{audio32_file}}"></audio>
<audio id="audio-{{audio33_name}}" data-active="{{audio33_active}}" src="{{audio33_file}}"></audio>
<audio id="audio-{{audio34_name}}" data-active="{{audio34_active}}" src="{{audio34_file}}"></audio>
<audio id="audio-{{audio35_name}}" data-active="{{audio35_active}}" src="{{audio35_file}}"></audio>
<audio id="audio-{{audio36_name}}" data-active="{{audio36_active}}" src="{{audio36_file}}"></audio>
<audio id="audio-{{audio37_name}}" data-active="{{audio37_active}}" src="{{audio37_file}}"></audio>
<audio id="audio-{{audio38_name}}" data-active="{{audio38_active}}" src="{{audio38_file}}"></audio>
<audio id="audio-{{audio39_name}}" data-active="{{audio39_active}}" src="{{audio39_file}}"></audio>
<audio id="audio-{{audio40_name}}" data-active="{{audio40_active}}" src="{{audio40_file}}"></audio>
<audio id="audio-{{audio41_name}}" data-active="{{audio41_active}}" src="{{audio41_file}}"></audio>
<audio id="audio-{{audio42_name}}" data-active="{{audio42_active}}" src="{{audio42_file}}"></audio>
<audio id="audio-{{audio43_name}}" data-active="{{audio43_active}}" src="{{audio43_file}}"></audio>
<audio id="audio-{{audio44_name}}" data-active="{{audio44_active}}" src="{{audio44_file}}"></audio>
<audio id="audio-{{audio45_name}}" data-active="{{audio45_active}}" src="{{audio45_file}}"></audio>
<audio id="audio-{{audio46_name}}" data-active="{{audio46_active}}" src="{{audio46_file}}"></audio>
<audio id="audio-{{audio47_name}}" data-active="{{audio47_active}}" src="{{audio47_file}}"></audio>
<audio id="audio-{{audio48_name}}" data-active="{{audio48_active}}" src="{{audio48_file}}"></audio>
<audio id="audio-{{audio49_name}}" data-active="{{audio49_active}}" src="{{audio49_file}}"></audio>
<audio id="audio-{{audio50_name}}" data-active="{{audio50_active}}" src="{{audio50_file}}"></audio>
</div>
CSS
body,
#alert_container {
display: flex;
align-items: center;
flex-direction: column;
margin: 0;
padding: 0;
overflow: hidden;
font-family: "{{alert_googleFont}}", sans-serif;
}
#alert_container {
opacity: 0%;
transition: 500ms ease;
&[data-show="true"] {
opacity: 100%;
}
}
#image {
height: 66vh;
}
#alert_text {
margin: 0;
margin-top: 3vh;
font-size: 10vh;
font-weight: 800;
text-align: center;
color: var(--text-color);
span {
color: var(--shoutout-text-color);
}
&[data-shadow="true"] {
filter: drop-shadow(0 0 1vh #00000050);
}
}
#audios {
display: none;
}
Javascript
// Executar assim que iniciar
let await_start = true
window.onload = () => {
let alertHTML = document.querySelector(`#alert_container`)
let alert_textHTML = document.querySelector(`#alert_text`)
// Insere os elementos de texto na descrição do alerta
alert_textHTML.innerHTML = alert_textHTML.dataset.value
.replaceAll("{username}", '<span id="username">USER</span>')
.replaceAll("{audioname}", '<span id="audioname">AUDIO</span>')
// Define o timeout global no objeto de timeout
timeout.globalTimeout = parseInt(alertHTML.dataset.fade) + parseInt(alertHTML.dataset.globaltimeout)
timeout.userTimeout = parseInt(alertHTML.dataset.fade) + parseInt(alertHTML.dataset.usertimeout)
// Aguardar 5seg antes de disparar alertas
setTimeout(() => {
await_start = false;
console.log("Soundboard inicializado.")
}, 5000)
}
// Guarda os comandos dos áudios
let audioCmds = {
audio01: "{{audio01_name}}",
audio02: "{{audio02_name}}",
audio03: "{{audio03_name}}",
audio04: "{{audio04_name}}",
audio05: "{{audio05_name}}",
audio06: "{{audio06_name}}",
audio07: "{{audio07_name}}",
audio08: "{{audio08_name}}",
audio09: "{{audio09_name}}",
audio10: "{{audio10_name}}",
audio11: "{{audio11_name}}",
audio12: "{{audio12_name}}",
audio13: "{{audio13_name}}",
audio14: "{{audio14_name}}",
audio15: "{{audio15_name}}",
audio16: "{{audio16_name}}",
audio17: "{{audio17_name}}",
audio18: "{{audio18_name}}",
audio19: "{{audio19_name}}",
audio20: "{{audio20_name}}",
audio21: "{{audio21_name}}",
audio22: "{{audio22_name}}",
audio23: "{{audio23_name}}",
audio24: "{{audio24_name}}",
audio25: "{{audio25_name}}",
audio26: "{{audio26_name}}",
audio27: "{{audio27_name}}",
audio28: "{{audio28_name}}",
audio29: "{{audio29_name}}",
audio30: "{{audio30_name}}",
audio31: "{{audio31_name}}",
audio32: "{{audio32_name}}",
audio33: "{{audio33_name}}",
audio34: "{{audio34_name}}",
audio35: "{{audio35_name}}",
audio36: "{{audio36_name}}",
audio37: "{{audio37_name}}",
audio38: "{{audio38_name}}",
audio39: "{{audio39_name}}",
audio40: "{{audio40_name}}",
audio41: "{{audio41_name}}",
audio42: "{{audio42_name}}",
audio43: "{{audio43_name}}",
audio44: "{{audio44_name}}",
audio45: "{{audio45_name}}",
audio46: "{{audio46_name}}",
audio47: "{{audio47_name}}",
audio48: "{{audio48_name}}",
audio49: "{{audio49_name}}",
audio50: "{{audio50_name}}"
}
// Executar quando receber um evento
window.addEventListener('onEventReceived', function (obj) {
if (await_start) return // Caso esteja aguardando ligar, ignorar
// Executa uma ação baseada em um evento
switch (obj.detail.listener) {
case "message":
let message = obj.detail.event.data.text // Armazena mensagem
let nick = obj.detail.event.data.nick // Armazena nick
if (message.indexOf("!") == -1) return // Caso não seja comando, ignorar
message = message.replaceAll("!", "") // Remove símbolo de comando
if (document.querySelector(`#audio-${message}`) == null) return // Caso audio não exista, ignorar
showAlert(nick, message) // Exibir alerta
return;
case "event:test":
showAlert("DaniFluffyTesty", audioCmds[obj.detail.event.value], true) // Executa alerta de teste
return;
}
});
/** Mostra o alerta */
function showAlert(username, audioname, isTest) {
let alertHTML = document.querySelector(`#alert_container`)
let audioHTML = document.querySelector(`#audio-${audioname}`)
let usernameHTML = document.querySelector(`#username`)
let audionameHTML = document.querySelector(`#audioname`)
if (!timeout.run(username, isTest)) return // Caso timeout não expirado, ignorar
if (audioHTML.dataset.active != "true") return // Caso audio inativo, ignorar
usernameHTML.textContent = username // Definir nome de usuário
audionameHTML.textContent = audioname // Definir nome do áudio
audioHTML.play() // Tocar audio
alertHTML.dataset.show = true // Exibir overlay
setTimeout(() =>
alertHTML.dataset.show = false, // Oculta overlay
alertHTML.dataset.fade * 1000 // Aguarda xx segundos para isso
)
}
/** Gerencia os timeouts*/
let timeout = {
globalTimeout: 0,
userTimeout: 0,
userData: {},
lastRun: new Date().getTime(),
run: function (username, isTest) {
if (isTest) return true
if ((new Date().getTime()) < this.lastRun) return false // Caso timeout global não tenha expirado, retornar false
if ((new Date().getTime()) < this.userData[username]) return false // Caso timeout de user não tenha expirado, retornar false
this.lastRun = (new Date().getTime()) + this.globalTimeout * 1000 // Atualiza última execução
this.userData[username] = (new Date().getTime()) + this.userTimeout * 1000 // Atualiza última execução do usuário
return true
}
}
Fields
{
"credits1": {
"type": "checkbox",
"value": true,
"label": "Detalhes de como fazer a configuração podem ser encontrados no site toolbox.danifluffy.dev :)",
"group": "Soundboard | DaniFluffyCat ^^"
},
"credits2": {
"type": "text",
"label": "Você pode copiar o link abaixo:",
"value": "toolbox.danifluffy.dev",
"group": "Soundboard | DaniFluffyCat ^^"
},
"alert_image": {
"type": "image-input",
"label": "Imagem do alerta",
"group": "Configs. alerta"
},
"alert_text": {
"type": "text",
"label": "Texto do alerta",
"value": "{username} tocou {audioname}",
"group": "Configs. alerta"
},
"alert_googleFont": {
"type": "googleFont",
"label": "Selecione a fonte:",
"value": "Roboto",
"group": "Configs. alerta"
},
"alert_textcolor": {
"type": "colorpicker",
"label": "Cor do texto",
"value": "#ffffff",
"group": "Configs. alerta"
},
"alert_shoutouttextcolor": {
"type": "colorpicker",
"label": "Cor de destaque do texto",
"value": "#cccc00",
"group": "Configs. alerta"
},
"alert_shadow": {
"type": "checkbox",
"label": "Sombra do texto",
"value": false,
"group": "Configs. alerta"
},
"alert_fade": {
"type": "number",
"label": "Duração do alerta (em seg)",
"value": 10,
"min": 5,
"max": 30,
"step": 1,
"group": "Configs. alerta"
},
"alert_globaltimeout": {
"type": "number",
"label": "Tempo mínimo entre alertas (em seg)",
"value": 10,
"min": 5,
"max": 999,
"step": 1,
"group": "Configs. alerta"
},
"alert_usertimeout": {
"type": "number",
"label": "Cooldown do usuário (em seg)",
"value": 10,
"min": 5,
"max": 999,
"step": 1,
"group": "Configs. alerta"
},
"audio01_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 01"
},
"audio01_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 01"
},
"audio01_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 01"
},
"audio01_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio01",
"group": "🎶 Áudio 01"
},
"audio02_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 02"
},
"audio02_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 02"
},
"audio02_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 02"
},
"audio02_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio02",
"group": "🎶 Áudio 02"
},
"audio03_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 03"
},
"audio03_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 03"
},
"audio03_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 03"
},
"audio03_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio03",
"group": "🎶 Áudio 03"
},
"audio04_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 04"
},
"audio04_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 04"
},
"audio04_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 04"
},
"audio04_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio04",
"group": "🎶 Áudio 04"
},
"audio05_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 05"
},
"audio05_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 05"
},
"audio05_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 05"
},
"audio05_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio05",
"group": "🎶 Áudio 05"
},
"audio06_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 06"
},
"audio06_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 06"
},
"audio06_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 06"
},
"audio06_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio06",
"group": "🎶 Áudio 06"
},
"audio07_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 07"
},
"audio07_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 07"
},
"audio07_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 07"
},
"audio07_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio07",
"group": "🎶 Áudio 07"
},
"audio08_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 08"
},
"audio08_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 08"
},
"audio08_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 08"
},
"audio08_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio08",
"group": "🎶 Áudio 08"
},
"audio09_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 09"
},
"audio09_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 09"
},
"audio09_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 09"
},
"audio09_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio09",
"group": "🎶 Áudio 09"
},
"audio10_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 10"
},
"audio10_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 10"
},
"audio10_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 10"
},
"audio10_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio10",
"group": "🎶 Áudio 10"
},
"audio11_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 11"
},
"audio11_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 11"
},
"audio11_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 11"
},
"audio11_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio11",
"group": "🎶 Áudio 11"
},
"audio12_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 12"
},
"audio12_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 12"
},
"audio12_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 12"
},
"audio12_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio12",
"group": "🎶 Áudio 12"
},
"audio13_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 13"
},
"audio13_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 13"
},
"audio13_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 13"
},
"audio13_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio13",
"group": "🎶 Áudio 13"
},
"audio14_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 14"
},
"audio14_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 14"
},
"audio14_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 14"
},
"audio14_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio14",
"group": "🎶 Áudio 14"
},
"audio15_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 15"
},
"audio15_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 15"
},
"audio15_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 15"
},
"audio15_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio15",
"group": "🎶 Áudio 15"
},
"audio16_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 16"
},
"audio16_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 16"
},
"audio16_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 16"
},
"audio16_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio16",
"group": "🎶 Áudio 16"
},
"audio17_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 17"
},
"audio17_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 17"
},
"audio17_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 17"
},
"audio17_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio17",
"group": "🎶 Áudio 17"
},
"audio18_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 18"
},
"audio18_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 18"
},
"audio18_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 18"
},
"audio18_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio18",
"group": "🎶 Áudio 18"
},
"audio19_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 19"
},
"audio19_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 19"
},
"audio19_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 19"
},
"audio19_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio19",
"group": "🎶 Áudio 19"
},
"audio20_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 20"
},
"audio20_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 20"
},
"audio20_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 20"
},
"audio20_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio20",
"group": "🎶 Áudio 20"
},
"audio21_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 21"
},
"audio21_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 21"
},
"audio21_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 21"
},
"audio21_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio21",
"group": "🎶 Áudio 21"
},
"audio22_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 22"
},
"audio22_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 22"
},
"audio22_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 22"
},
"audio22_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio22",
"group": "🎶 Áudio 22"
},
"audio23_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 23"
},
"audio23_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 23"
},
"audio23_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 23"
},
"audio23_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio23",
"group": "🎶 Áudio 23"
},
"audio24_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 24"
},
"audio24_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 24"
},
"audio24_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 24"
},
"audio24_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio24",
"group": "🎶 Áudio 24"
},
"audio25_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 25"
},
"audio25_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 25"
},
"audio25_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 25"
},
"audio25_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio25",
"group": "🎶 Áudio 25"
},
"audio26_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 26"
},
"audio26_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 26"
},
"audio26_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 26"
},
"audio26_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio26",
"group": "🎶 Áudio 26"
},
"audio27_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 27"
},
"audio27_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 27"
},
"audio27_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 27"
},
"audio27_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio27",
"group": "🎶 Áudio 27"
},
"audio28_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 28"
},
"audio28_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 28"
},
"audio28_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 28"
},
"audio28_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio28",
"group": "🎶 Áudio 28"
},
"audio29_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 29"
},
"audio29_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 29"
},
"audio29_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 29"
},
"audio29_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio29",
"group": "🎶 Áudio 29"
},
"audio30_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 30"
},
"audio30_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 30"
},
"audio30_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 30"
},
"audio30_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio30",
"group": "🎶 Áudio 30"
},
"audio31_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 31"
},
"audio31_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 31"
},
"audio31_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 31"
},
"audio31_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio31",
"group": "🎶 Áudio 31"
},
"audio32_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 32"
},
"audio32_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 32"
},
"audio32_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 32"
},
"audio32_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio32",
"group": "🎶 Áudio 32"
},
"audio33_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 33"
},
"audio33_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 33"
},
"audio33_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 33"
},
"audio33_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio33",
"group": "🎶 Áudio 33"
},
"audio34_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 34"
},
"audio34_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 34"
},
"audio34_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 34"
},
"audio34_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio34",
"group": "🎶 Áudio 34"
},
"audio35_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 35"
},
"audio35_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 35"
},
"audio35_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 35"
},
"audio35_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio35",
"group": "🎶 Áudio 35"
},
"audio36_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 36"
},
"audio36_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 36"
},
"audio36_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 36"
},
"audio36_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio36",
"group": "🎶 Áudio 36"
},
"audio37_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 37"
},
"audio37_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 37"
},
"audio37_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 37"
},
"audio37_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio37",
"group": "🎶 Áudio 37"
},
"audio38_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 38"
},
"audio38_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 38"
},
"audio38_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 38"
},
"audio38_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio38",
"group": "🎶 Áudio 38"
},
"audio39_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 39"
},
"audio39_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 39"
},
"audio39_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 39"
},
"audio39_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio39",
"group": "🎶 Áudio 39"
},
"audio40_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 40"
},
"audio40_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 40"
},
"audio40_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 40"
},
"audio40_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio40",
"group": "🎶 Áudio 40"
},
"audio41_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 41"
},
"audio41_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 41"
},
"audio41_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 41"
},
"audio41_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio41",
"group": "🎶 Áudio 41"
},
"audio42_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 42"
},
"audio42_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 42"
},
"audio42_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 42"
},
"audio42_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio42",
"group": "🎶 Áudio 42"
},
"audio43_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 43"
},
"audio43_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 43"
},
"audio43_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 43"
},
"audio43_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio43",
"group": "🎶 Áudio 43"
},
"audio44_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 44"
},
"audio44_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 44"
},
"audio44_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 44"
},
"audio44_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio44",
"group": "🎶 Áudio 44"
},
"audio45_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 45"
},
"audio45_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 45"
},
"audio45_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 45"
},
"audio45_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio45",
"group": "🎶 Áudio 45"
},
"audio46_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 46"
},
"audio46_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 46"
},
"audio46_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 46"
},
"audio46_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio46",
"group": "🎶 Áudio 46"
},
"audio47_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 47"
},
"audio47_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 47"
},
"audio47_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 47"
},
"audio47_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio47",
"group": "🎶 Áudio 47"
},
"audio48_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 48"
},
"audio48_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 48"
},
"audio48_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 48"
},
"audio48_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio48",
"group": "🎶 Áudio 48"
},
"audio49_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 49"
},
"audio49_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 49"
},
"audio49_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 49"
},
"audio49_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio49",
"group": "🎶 Áudio 49"
},
"audio50_active": {
"type": "checkbox",
"label": "Ativar áudio",
"value": false,
"group": "🎶 Áudio 50"
},
"audio50_name": {
"type": "text",
"label": "Comando para acionar áudio",
"value": "Digite o comando aqui",
"group": "🎶 Áudio 50"
},
"audio50_file": {
"type": "sound-input",
"label": "Arquivo de áudio",
"group": "🎶 Áudio 50"
},
"audio50_test": {
"type": "button",
"label": "Testar alerta",
"value": "audio50",
"group": "🎶 Áudio 50"
}
}
☕ Te ajudei? Me manda um cafézinho ^^
[email protected]