Cette bibliothèque regroupe des scripts Lua écrits pour les hubs Verlihub. Chaque script ajoute une petite fonctionnalité de hub sans modifier la source C++ Verlihub ni compiler un plugin personnalisé.
Utilisez ces articles pour afficher les robots, les commandes d'assistance, les messages chronométrés, les entrées de liste d'utilisateurs, les aides à la validation et les petites automatisations. Gardez les travaux lourds en dehors du processus du hub et utilisez Lua uniquement pour le comportement du hub qui doit s'exécuter à l'intérieur de Verlihub.
Objectif de cette bibliothèque
La bibliothèque existe pour qu'un propriétaire de hub puisse examiner un script, comprendre ce qu'il change, le copier dans le répertoire attendu, ajuster les paramètres documentés, le charger, le tester et le désactiver à nouveau sans deviner.
Chaque article de script doit indiquer:
- Ce que fait le script.
- Quelle fonctionnalité Verlihub il modifie ou ajoute.
- Qu'il crée un bot, une commande, une minuterie, un hook, une entrée de liste d'utilisateurs ou une aide à la validation.
- Où le fichier de script doit être placé.
- Comment le script est chargé, rechargé, déchargé ou désactivé.
- Quels paramètres peuvent être modifiés en toute sécurité.
- De quel plugin Verlihub ou autorisation de hub dépend le script.
- Limites connues, notes de version et avertissements de production.
Normes de script recommandées
Les scripts de cette bibliothèque doivent rester petits, lisibles et contrôlés en version. Un fichier Lua devrait faire un travail. Ne mélangez pas un robot d'horloge, une commande de règles, une vérification anti-spam et un nettoyage de base de données dans un seul fichier, à moins que l'article n'explique pourquoi ces actions doivent être exécutées ensemble.
- Utilisez un objectif principal par script.
- Placez des commentaires clairs en haut du fichier.
- Regroupez les valeurs configurables en haut.
- Ne codez pas en dur les chemins privés à moins que l’article ne les explique.
- Évitez les écritures inutiles dans la base de données.
- Évitez de bloquer les appels réseau provenant des événements du hub.
- Évitez les boucles lourdes dans les hooks de connexion, de discussion ou de liste d’utilisateurs.
- Expliquez clairement le comportement de démarrage et d’arrêt.
- Commandes de chargement, de rechargement et de déchargement de documents.
Pour les hubs de production, les scripts plus petits sont généralement plus faciles à déboguer, désactiver et remplacer qu'un gros fichier qui contrôle le comportement du hub sans rapport.
En-tête de script suggéré
Commencez chaque script par un court bloc de commentaires. L'en-tête doit indiquer à l'opérateur suivant quel est le fichier avant que le script ne touche un hub en direct.
-- Script: time.lua
-- Purpose: Displays a clock-like bot entry in the Verlihub user list.
-- Scope: User-list display only.
-- Author: PWiAM
-- Notes: Test on a private hub before production use.
Format d'article de script suggéré
Chaque article enfant de cette section doit utiliser la même forme afin que les scripts puissent être comparés et révisés rapidement.
- Aperçu.
- Exigences.
- Installation.
- Configuration.
- Chargement du script.
- Essai.
- Déchargement ou désactivation.
- Dépannage.
- Scénario complet.
- Pages connexes.
Installation de scripts
L'emplacement exact dépend du chemin d'installation Verlihub, mais les fichiers Lua personnalisés doivent résider dans un répertoire appartenant à l'utilisateur du service qui exécute le hub.
sudo mkdir -p /usr/local/etc/verlihub/lua
sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod 750 /usr/local/etc/verlihub/lua
Placez ensuite chaque script dans ce répertoire:
/usr/local/etc/verlihub/lua/time.lua
Si votre service s'exécute sous un autre utilisateur, remplacez le propriétaire par ce compte. Ne pas utiliser chmod 777 /usr/local/etc/verlihub/lua. Les fichiers Lua s'exécutent dans le processus hub, l'accès en écriture appartient donc uniquement aux administrateurs de confiance.
Chargement et rechargement de scripts
Les scripts Lua nécessitent que le plugin Verlihub Lua soit installé et activé en premier. Si le plug-in n'est pas chargé, consultez l'article de configuration parent Lua avant de charger les fichiers de script.
Les vérifications utiles des plugins incluent:
!pluglist!lstplug
Utilisez un workflow de petites modifications lors de la modification d'un script en direct:
- Enregistrez une sauvegarde du fichier de travail actuel.
- Modifiez un paramètre ou une fonction.
- Rechargez uniquement ce script si votre build le prend en charge.
- Vérifiez la sortie du hub et les journaux Verlihub.
- Revenez rapidement si les utilisateurs voient des erreurs, des robots en double ou des résultats de chat répétés.
Si les commandes de rechargement de script ne sont pas disponibles dans votre build Verlihub, redémarrez ou rechargez le plugin Lua selon les commandes de gestion des plugins de votre serveur.
Tester les scripts en toute sécurité
Testez les scripts Lua sur un hub privé ou une fenêtre de maintenance silencieuse avant de vous y fier en production.
- Confirmez le chargement du script sans erreurs de syntaxe.
- Confirmez que cela n’inonde pas le chat principal.
- Confirmez qu'il ne crée pas de robots en double ni d'entrées répétées dans la liste d'utilisateurs.
- Confirmez qu'il se comporte correctement après le rechargement.
- Confirmez qu'il se comporte correctement après un redémarrage du hub.
- Confirmez que les opérateurs peuvent le désactiver rapidement.
- Pour les scripts de commande, testez avec des utilisateurs normaux et des comptes d'opérateur.
- Pour les messages chronométrés ou les entrées de liste d'utilisateurs, testez l'intervalle afin que le script ne crée pas de bruit ou de charge.
Notes de sécurité de production
Le code Lua s’exécute à l’intérieur du processus hub. Un mauvais script peut affecter le chat, la connexion, les mises à jour de la liste d'utilisateurs ou l'arrêt du plugin.
Éviter:
- Boucles infinies.
- Dort longtemps dans les gestionnaires d'événements.
- Lectures de fichiers volumineux lors d'événements utilisateur.
- Blocage des requêtes HTTP externes.
- Requêtes de base de données lourdes à partir de crochets de discussion ou de connexion.
- Messages diffusés à répétition sans limites.
- Scripts qui ne peuvent pas être déchargés proprement.
Préférer:
- Gestionnaires de petits événements.
- Effacer les valeurs de configuration.
- Minuteries conservatrices.
- Logique de commande simple.
- Enregistrement uniquement lorsqu'il donne à un opérateur des informations utiles.
- Restauration facile.
Si une tâche est de longue durée, déplacez-la en dehors de Verlihub et laissez Lua déclencher ou afficher le résultat.
Contrôle des versions
Conservez les scripts personnalisés dans Git lorsque cela est possible. Un petit référentiel dans le répertoire des scripts suffit pour de nombreux hubs.
cd /usr/local/etc/verlihub/lua
git init
git add .
git commit -m "Initial Verlihub Lua scripts"
Avant de modifier un script de production, vérifiez ce qui a déjà été modifié:
git status
git diff
Après avoir testé le changement:
git add time.lua
git commit -m "Update time.lua clock display"
Cela donne à l'opérateur suivant un historique des modifications et un chemin de restauration rapide.
Scripts disponibles
time.lua Verlihub script d'horloge de liste d'utilisateurs crée une petite entrée de liste d'utilisateurs de type robot qui affiche l'heure actuelle.
Utilisez-le lorsqu'un hub souhaite une entrée d'horloge visible sans exécuter un processus de robot distinct ou un service externe. Il s'agit du premier exemple conservé dans cette bibliothèque et peut être utilisé comme modèle pour d'autres scripts orientés affichage.
Ajouter plus de scripts
Les nouveaux scripts doivent être ajoutés en tant qu'articles enfants dans cette section, et non collés dans cette page d'index. Les bons candidats incluent:
- Script du message de bienvenue.
- Script de rappel de règles.
- Script de commande d'assistance de l'opérateur.
- Script d'annonce programmée.
- Script d'affichage du nombre d'utilisateurs.
- Script d'aide anti-spam.
- Script de commande d'informations sur le hub.
- Script de notification du mode maintenance.
Chaque nouvel article doit inclure des notes d'installation, des valeurs de configuration, des étapes de test, des étapes de déchargement et la liste complète des scripts.