{
  "api": 13,
  "version": 1,
  "name": "FilyX Touch Portal",
  "id": "fr.filyx.touchportal",
  "configuration": {
    "colorDark": "#F27622",
    "colorLight": "#D85D10",
    "parentCategory": "streaming"
  },
  "plugin_start_cmd_windows": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"%TP_PLUGIN_FOLDER%FilyXTouchPortal\\filyx-touch-portal.ps1\"",
  "settingsDescription": "# Connecter FilyX\n1. Crée une clé dans FilyX → Widgets Pro → Stream Deck.\n2. Colle-la ci-dessous.\n3. Ajoute les actions FilyX à tes boutons Touch Portal.\n\nLa clé reste sur ton PC et sert uniquement à contrôler ta propre chaîne.",
  "settings": [
    { "name": "FilyX URL", "type": "text", "default": "https://filyx.fr", "maxLength": 180 },
    { "name": "Clé FilyX", "type": "text", "default": "", "isPassword": true, "maxLength": 240 },
    { "name": "Identifiant de chaîne", "type": "text", "default": "", "maxLength": 24, "tooltip": { "title": "Optionnel", "body": "Laisse vide si ton compte FilyX ne gère qu’une seule chaîne." } }
  ],
  "categories": [
    {
      "id": "fr.filyx.touchportal.control",
      "name": "FilyX · Contrôle live",
      "actions": [
        {
          "id": "fr.filyx.touchportal.alert.test",
          "name": "Tester une alerte",
          "name_fr": "Tester une alerte",
          "type": "communicate",
          "lines": { "action": [{ "language": "default", "data": [{ "lineFormat": "Tester l’alerte {$filyx.alert_type$}" }] }, { "language": "fr", "data": [{ "lineFormat": "Tester l’alerte {$filyx.alert_type$}" }] }] },
          "data": [{ "id": "filyx.alert_type", "type": "choice", "default": "follow", "valueChoices": ["follow", "sub", "resub", "gifted_sub", "kicks", "donation"] }]
        },
        {
          "id": "fr.filyx.touchportal.soundrequest.playpause",
          "name": "Sound Request · Lecture / pause",
          "name_fr": "Sound Request · Lecture / pause",
          "type": "communicate",
          "lines": { "action": [{ "language": "default", "data": [{ "lineFormat": "Sound Request : lecture / pause" }] }, { "language": "fr", "data": [{ "lineFormat": "Sound Request : lecture / pause" }] }] },
          "data": []
        },
        {
          "id": "fr.filyx.touchportal.soundrequest.skip",
          "name": "Sound Request · Suivant",
          "name_fr": "Sound Request · Suivant",
          "type": "communicate",
          "lines": { "action": [{ "language": "default", "data": [{ "lineFormat": "Sound Request : musique suivante" }] }, { "language": "fr", "data": [{ "lineFormat": "Sound Request : musique suivante" }] }] },
          "data": []
        },
        {
          "id": "fr.filyx.touchportal.quiz.start",
          "name": "Lancer un mini-jeu",
          "name_fr": "Lancer un mini-jeu",
          "type": "communicate",
          "lines": { "action": [{ "language": "default", "data": [{ "lineFormat": "Lancer {$filyx.game$}" }] }, { "language": "fr", "data": [{ "lineFormat": "Lancer {$filyx.game$}" }] }] },
          "data": [{ "id": "filyx.game", "type": "choice", "default": "quiz", "valueChoices": ["quiz", "motus", "whoami", "petitbac"] }]
        },
        {
          "id": "fr.filyx.touchportal.quiz.stop",
          "name": "Arrêter le mini-jeu",
          "name_fr": "Arrêter le mini-jeu",
          "type": "communicate",
          "lines": { "action": [{ "language": "default", "data": [{ "lineFormat": "Arrêter le mini-jeu FilyX" }] }, { "language": "fr", "data": [{ "lineFormat": "Arrêter le mini-jeu FilyX" }] }] },
          "data": []
        },
        {
          "id": "fr.filyx.touchportal.eventlog.marker",
          "name": "Ajouter un marqueur Event Logs",
          "name_fr": "Ajouter un marqueur Event Logs",
          "type": "communicate",
          "lines": { "action": [{ "language": "default", "data": [{ "lineFormat": "Marqueur : {$filyx.marker_label$}" }] }, { "language": "fr", "data": [{ "lineFormat": "Marqueur : {$filyx.marker_label$}" }] }] },
          "data": [{ "id": "filyx.marker_label", "type": "text", "default": "Marqueur Touch Portal" }]
        }
      ],
      "events": [],
      "states": [],
      "subCategories": [
        {
          "id": "fr.filyx.touchportal.subathon",
          "name": "Subathon",
          "actions": [
            {
              "id": "fr.filyx.touchportal.subathon.control",
              "name": "Contrôler le Subathon",
              "name_fr": "Contrôler le Subathon",
              "type": "communicate",
              "lines": { "action": [{ "language": "default", "data": [{ "lineFormat": "Subathon : {$filyx.subathon_control$}" }, { "lineFormat": "Secondes : {$filyx.subathon_seconds$}" }] }, { "language": "fr", "data": [{ "lineFormat": "Subathon : {$filyx.subathon_control$}" }, { "lineFormat": "Secondes : {$filyx.subathon_seconds$}" }] }] },
              "data": [
                { "id": "filyx.subathon_control", "type": "choice", "default": "pause", "valueChoices": ["start", "pause", "stop", "reset", "add", "remove", "turbo_start", "turbo_stop"] },
                { "id": "filyx.subathon_seconds", "type": "number", "default": 60, "minValue": 0, "maxValue": 31536000, "allowDecimals": false }
              ]
            }
          ],
          "events": [],
          "states": []
        },
        {
          "id": "fr.filyx.touchportal.widgets",
          "name": "Widgets & Discord",
          "actions": [
            {
              "id": "fr.filyx.touchportal.widget.toggle",
              "name": "Activer ou désactiver un widget",
              "name_fr": "Activer ou désactiver un widget",
              "type": "communicate",
              "lines": { "action": [{ "language": "default", "data": [{ "lineFormat": "Widget {$filyx.widget_slug$} : {$filyx.widget_enabled$}" }] }, { "language": "fr", "data": [{ "lineFormat": "Widget {$filyx.widget_slug$} : {$filyx.widget_enabled$}" }] }] },
              "data": [
                { "id": "filyx.widget_slug", "type": "text", "default": "alerts" },
                { "id": "filyx.widget_enabled", "type": "switch", "default": true }
              ]
            },
            {
              "id": "fr.filyx.touchportal.discord.announce",
              "name": "Envoyer une annonce Discord",
              "name_fr": "Envoyer une annonce Discord",
              "type": "communicate",
              "lines": { "action": [{ "language": "default", "data": [{ "lineFormat": "Discord : {$filyx.discord_title$}" }, { "lineFormat": "{$filyx.discord_message$}" }] }, { "language": "fr", "data": [{ "lineFormat": "Discord : {$filyx.discord_title$}" }, { "lineFormat": "{$filyx.discord_message$}" }] }] },
              "data": [
                { "id": "filyx.discord_title", "type": "text", "default": "Annonce FilyX" },
                { "id": "filyx.discord_message", "type": "text", "default": "Le live continue sur FilyX." }
              ]
            }
          ],
          "events": [],
          "states": []
        }
      ]
    }
  ]
}
