RawtohRawtoh/Docs
Documentation

Concepts clés

Comprenez les briques de base de Rawtoh — événements, déclencheurs, actions et processus.

Rawtoh repose sur quelques idées simples. Les comprendre vous aidera à construire des automatisations puissantes.

La boucle d’automatisation

Dans Rawtoh, chaque automatisation suit le même parcours :

Module→ émet →Événement→ correspond à →Déclencheur→ exécute →Action

Il en résulte un processus — une trace complète de ce qui s’est passé, de ce qui a été exécuté et du résultat, réussite ou échec.

Événement

Un événement est quelque chose qui s’est produit. Il est émis par un module et représente une donnée — un message dans le chat Twitch, un changement de morceau sur Spotify, un changement de scène OBS, ou tout ce que votre module personnalisé envoie.

Que contient un événement ?

ChampDescription
nameLe type d’événement, par ex. chat.message
payloadDes données JSON arbitraires — le contenu de l’événement
emitter_groupLe type de module qui l’a émis (par ex. twitch)
emitter_nameL’instance précise qui l’a émis (par ex. main-bot)

Les événements sont conservés et consultables dans le panneau Activité. Vous pouvez mettre des événements en favoris pour éviter qu’ils ne soient supprimés lors du nettoyage.

Déclencheur

Un déclencheur est une règle qui surveille des événements précis et décide s’il faut exécuter une action. Il relie un motif d’événement à un morceau de code.

Quand un déclencheur correspond

Un déclencheur se déclenche lorsque toutes ces conditions sont réunies :

  1. Le champ emitter_group de l’événement correspond au groupe de modules du déclencheur
  2. Le champ name de l’événement correspond au nom d’événement du déclencheur
  3. La condition TypeScript du déclencheur s’évalue à une valeur vraie (truthy)
  4. La temporisation est écoulée (si elle est configurée)
  5. Le déclencheur et son action sont tous deux activés

Code du déclencheur

Le program du déclencheur est un module TypeScript qui importe l’événement depuis "rawtoh" et utilise export default pour décider si l’action doit s’exécuter :

import { event } from "rawtoh"

// Only fire for messages starting with "!"
export default event.payload.message.startsWith("!")

Temporisation

Les déclencheurs prennent en charge une temporisation, avec deux modes :

Action

Une action est le code qui s’exécute lorsqu’un déclencheur se déclenche. Les actions sont des programmes TypeScript qui peuvent :

Tout cela s’importe depuis le module "rawtoh".

Exemple de code d’action

import { event, log, module } from "rawtoh"

// Respond to a chat command
const user = event.payload.username

// Call the Twitch module to send a message
await module("twitch").request("chat.say", {
  message: `Hello @${user}, welcome!`
})

// Log for debugging
log("Greeted", user)

Organisation

Les actions sont organisées par chemin, comme dans un système de fichiers. Par exemple : /twitch/chat/greet ou /obs/scene-switch. Vous pouvez ainsi regrouper dans des dossiers les automatisations qui vont ensemble.

Script partagé

Un script partagé est un morceau de code réutilisable, que n’importe quel déclencheur ou n’importe quelle action peut importer. Il vous évite de dupliquer la même logique d’une automatisation à l’autre.

Les scripts partagés utilisent la syntaxe TypeScript standard export / import et sont organisés par chemin, tout comme les actions.

Exemple

// /utils/format (shared script)
export function greet(name) {
  return `Hello, ${name}!`
}

Importez-le ensuite dans n’importe quelle action ou n’importe quel déclencheur :

import { module } from "rawtoh"
import { greet } from "/utils/format"

await module("twitch").request("chat.say", {
  message: greet(event.payload.username)
})

Les scripts partagés peuvent importer depuis "rawtoh" et depuis d’autres scripts partagés. Ils acceptent aussi bien les chemins absolus (/utils/format) que les chemins relatifs (./format). Attention : les scripts partagés importés par des déclencheurs ne doivent pas utiliser les API réservées aux actions (log, module, storage, sleep).

Automatisation

Une automatisation est un prompt accompagné des déclencheurs et des actions que l’IA de Rawtoh a générés à partir de celui-ci. C’est une façon de créer des scripts, pas un autre type de script : ce qu’elle produit s’exécute, se journalise et se modifie exactement comme les scripts que vous écrivez vous-même.

Dans l’éditeur de scripts, une automatisation se trouve à la racine de l’Explorateur et s’ouvre comme un dossier contenant ses scripts générés. Modifier le prompt puis régénérer les réécrit sur place ; supprimer l’automatisation les supprime. Consultez la page IA pour les détails.

Processus

Un processus est la trace d’une exécution. Chaque fois qu’un événement correspond à un déclencheur et exécute une action, un processus est créé pour en suivre le résultat.

Un processus contient :

Vous pouvez passer en revue tous les processus dans le panneau Activité de l’éditeur de scripts, pour déboguer et surveiller vos automatisations.