Le auto-topic.lua Le script publie des notifications de hub configurées sur le chat principal Verlihub à un intervalle défini. Utilisez-le pour les rappels de règles, les notes de maintenance, les liens d'assistance, les astuces de commande et les courts messages de communauté qui ne nécessitent pas de robot externe distinct.
Gardez ce script petit. Il doit envoyer de courts messages configurés, puis rendre le contrôle à Verlihub. N'ajoutez pas de tâches de longue durée, de requêtes de base de données, de requêtes HTTP externes, d'analyses de fichiers ou d'attentes bloquantes à ce script.
Ce que fait ce script
Le script envoie des messages de discussion principaux automatiques à partir d'un nom de bot ou d'une identité de hub configuré.
Les utilisations courantes incluent:
- Publication de rappels de règles du hub.
- Publication de sites Web ou de liens d'assistance.
- Annonce de la maintenance programmée.
- Rappeler aux utilisateurs les commandes disponibles.
- Partage de liens communautaires.
- Affichage des avis tournants.
- Publication de messages d'heure.
Exemple d'avis de discussion principal:
<HubNotice> Please review the hub rules with !rules before sharing or chatting.
Exigences
Ce script nécessite:
- Verlihub installé et en cours d’exécution.
- Le plugin Verlihub Lua installé.
- Le plugin Lua activé dans Verlihub.
- Autorisation de charger et décharger les scripts Lua.
- Un répertoire de scripts inscriptible pour les fichiers Verlihub Lua.
Avant de charger le script, vérifiez que le plugin Lua est actif:
!pluglist
Si le plug-in Lua n'est pas répertorié, chargez-le ou activez-le d'abord à partir de l'article de configuration parent Lua.
Emplacement du fichier recommandé
Utilisez un répertoire de script dédié:
mkdir -p /PATH/TO/HUB/scripts
Placez le script à:
/PATH/TO/HUB/scripts/auto-topic.lua
Pour les systèmes de production, le répertoire doit être accessible en écriture uniquement par des administrateurs de confiance ou par l'utilisateur du service Verlihub. Ne rendez pas le répertoire accessible en écriture partout.
Commandes de chargement et de déchargement
Chargez le script:
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
Déchargez le script:
!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
Si vous modifiez le script, déchargez-le et chargez-le à nouveau:
!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
Utilisez le chemin absolu complet, sauf si la configuration de votre plugin Verlihub Lua prend en charge les chemins relatifs.
Code de script
-- Script: auto-topic.lua
-- Purpose: Sends rotating automatic notices to Verlihub main chat.
-- Scope: Lightweight hub notices only.
-- Notes: Keep interval reasonable to avoid chat spam.
botname = "HubNotice"
interval = 900
counter = 0
notice_index = 1
notices = {
"Welcome to the hub. Please read the rules with !rules.",
"Need help? Use !help or contact an operator.",
"Visit our website for updates, guides, and hub information.",
"Keep main chat respectful and avoid spam or repeated messages."
}
function SendNotice()
if notices[notice_index] == nil then
notice_index = 1
end
VH:SendToAll("<" .. botname .. "> " .. notices[notice_index])
notice_index = notice_index + 1
if notice_index > table.getn(notices) then
notice_index = 1
end
end
function OnTimer()
counter = counter + 1
if counter >= interval then
counter = 0
SendNotice()
end
end
Options de configuration
botname
botname = "HubNotice"
Le nom affiché avant la notification automatique. Choisissez un nom clair pour que les utilisateurs comprennent que le message concerne des informations automatisées sur le hub.
Exemples:
botname = "HubNotice"
botname = "RulesBot"
botname = "InfoBot"
botname = "Maintenance"
interval
interval = 900
Contrôle la fréquence à laquelle le script envoie une notification. La valeur prévue est généralement en secondes, selon la façon dont le minuteur Verlihub Lua est configuré dans votre environnement.
Valeurs recommandées:
| Valeur | Signification |
|---|---|
300 | Toutes les 5 minutes. |
600 | Toutes les 10 minutes. |
900 | Toutes les 15 minutes. |
1800 | Toutes les 30 minutes. |
3600 | Toutes les 60 minutes. |
Pour les pôles de production, 900 ou 1800 est généralement plus sûr qu’un court intervalle. Évitez les valeurs qui rendent le hub bruyant:
interval = 10
Une notification toutes les 10 secondes est trop agressive pour un chat principal normal.
counter
counter = 0
Compteur interne utilisé par le script. Ne changez pas cela sauf si vous modifiez la logique du script.
notice_index
notice_index = 1
Pistes dont l'avis doit être envoyé ensuite. Laissez ça à 1 sauf si vous souhaitez que le script démarre à partir d'un message différent.
notices
notices = {
"Welcome to the hub. Please read the rules with !rules.",
"Need help? Use !help or contact an operator.",
"Visit our website for updates, guides, and hub information.",
"Keep main chat respectful and avoid spam or repeated messages."
}
La liste des messages qui tournent dans le chat principal. Chaque avis doit être court, utile et non perturbateur.
Exemples de bons avis:
notices = {
"Use !rules to view hub rules.",
"Use !help to see available commands.",
"Operators are marked in the user list if you need assistance.",
"Please keep main chat friendly and on topic."
}
Évitez les notifications longues, répétées ou agressives. Les utilisateurs sont plus susceptibles d’ignorer les messages automatisés lorsqu’ils apparaissent trop souvent.
Exemples de configurations
Rappel des règles de base
botname = "RulesBot"
interval = 1800
notices = {
"Please read the hub rules with !rules.",
"Do not spam main chat or repeat the same message.",
"Respect other users and follow operator instructions."
}
Site Web et avis d'assistance
botname = "InfoBot"
interval = 3600
notices = {
"Visit the website for hub guides, updates, and support.",
"Need help? Use !help or contact an operator.",
"Check the articles section for Verlihub setup notes and Lua scripts."
}
Avis d'entretien
botname = "Maintenance"
interval = 900
notices = {
"Scheduled maintenance may occur during low-traffic hours.",
"If the hub disconnects during maintenance, reconnect after a few minutes.",
"Check the website for maintenance updates."
}
Avis communautaire
botname = "Community"
interval = 1800
notices = {
"Welcome to the hub. Keep chat friendly and helpful.",
"Use main chat for general discussion. Contact operators for support issues.",
"Invite trusted users and help keep the hub useful."
}
Paramètres de production recommandés
Pour la plupart des hubs, utilisez un intervalle de 15 ou 30 minutes:
botname = "HubNotice"
interval = 1800
notices = {
"Welcome to the hub. Use !rules to review the hub rules.",
"Need help? Use !help or contact an operator.",
"Keep main chat respectful and avoid spam."
}
Cela garde les notifications visibles sans inonder le chat. Pour les hubs très fréquentés, utilisez:
interval = 3600
Pour les hubs silencieux, utilisez:
interval = 1800
L'automatisation principale du chat doit soutenir la communauté et non l'interrompre.
Tester le script
Après avoir chargé le script, confirmez que:
- Le script se charge sans erreur.
- L'avis apparaît dans le chat principal.
- Les avis tournent dans l’ordre prévu.
- L'intervalle n'est pas trop agressif.
- Le nom du bot est clair.
- Le script se décharge proprement.
- Le rechargement du script ne crée pas de minuteries en double ni de notifications en double.
Testez d'abord avec un intervalle court, puis remplacez-le par l'intervalle de production.
Exemple de paramètre de test:
interval = 30
Après le test, modifiez-le:
interval = 1800
Rechargez ensuite le script.
Dépannage
Le script ne se charge pas
Vérifiez que le plugin Lua est actif:
!pluglist
Vérifiez que le chemin du fichier est correct:
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
Utilisez le chemin absolu si les chemins relatifs ne fonctionnent pas.
Les avis n'apparaissent pas
Vérifier:
- Le plugin Lua est chargé.
- Le chemin du script est correct.
- Votre version du plugin Verlihub Lua prend en charge la fonction minuterie.
- L'intervalle n'est pas trop élevé lors des tests.
- Le
noticesLa table contient au moins un message.
Utiliser temporairement:
interval = 30
Rechargez ensuite le script et attendez le prochain avis.
Les avis apparaissent trop souvent
Augmentez l'intervalle.
interval = 1800
ou:
interval = 3600
Évitez les intervalles courts en production.
Des avis en double apparaissent
Cela signifie généralement que le script a été chargé plus d'une fois ou qu'une ancienne instance ne s'est pas déchargée correctement.
Déchargez le script:
!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
Puis chargez-le à nouveau:
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
Si les doublons persistent, redémarrez le plugin Lua ou le service Verlihub pendant une fenêtre de maintenance.
Erreurs de script après la modification des avis
Vérifiez la syntaxe Lua. Chaque ligne d'avis doit se terminer par une virgule, sauf la dernière ligne, qui peut l'omettre.
Correct:
notices = {
"First notice.",
"Second notice.",
"Third notice."
}
Incorrect:
notices = {
"First notice."
"Second notice."
}
Dans l'exemple incorrect, il manque une virgule après le premier message.
Notes de sécurité
Ce script doit rester léger. N'ajoutez pas:
- Requêtes HTTP externes.
- Requêtes de base de données.
- Analyse de fichiers.
- Longues boucles.
- Bloquer les appels en veille.
- Traitement lourd par utilisateur.
Le script doit uniquement alterner les notifications configurées et les envoyer à un intervalle raisonnable.
Notes d'entretien
Conservez une sauvegarde avant de modifier le script:
cp /PATH/TO/HUB/scripts/auto-topic.lua /PATH/TO/HUB/scripts/auto-topic.lua.bak
Si vous utilisez Git:
cd /PATH/TO/HUB/scripts
git add auto-topic.lua
git commit -m "Update auto-topic.lua notices"
Lorsque vous modifiez uniquement le nom du robot, les notifications ou l'intervalle, aucune modification logique n'est requise.
Règles de rédaction des avis suggérées
Les bons avis sont courts et utiles.
Recommandé:
- Une idée par avis.
- Formulation claire.
- Pas de ponctuation répétée.
- Pas de messages en majuscules.
- Pas de publication trop fréquente.
- Pas de longs paragraphes dans le chat principal.
Éviter:
- Publication toutes les quelques secondes.
- Publier le même message à plusieurs reprises.
- Utiliser les avis uniquement à titre publicitaire.
- Envoi de gros blocs de règles au chat principal.
- Interrompre trop souvent les conversations actives.