Le script time.lua crée une petite entrée de liste d'utilisateurs dont le nom change pour afficher l'heure actuelle. Utilisez-le lorsqu'un hub Verlihub a besoin d'un marqueur de fuseau horaire visible pour les utilisateurs internationaux, les salles régionales ou les opérateurs qui se coordonnent sur plusieurs fuseaux horaires.
Le script ne nécessite pas de processus de bot externe distinct. Il utilise le plugin Verlihub Lua pour créer une entrée de type bot dans la liste des utilisateurs du hub. Une entrée d'horloge peut ressembler à ceci:
!_US_06:30:00PM
Vous pouvez modifier le préfixe, le suffixe, le format de l'heure, l'intervalle de mise à jour et le décalage horaire avant de charger le script.
Ce que fait ce script
Le script construit le nom d'affichage à partir de trois parties:
prefix + current time + postfix
Exemple de sortie:
!_US_06:30:00PM
L'entrée visible de la liste d'utilisateurs est mise à jour selon une minuterie afin que l'heure affichée reste actuelle.
Utilisez ce script pour:
- Affichage du fuseau horaire d'un hub.
- Affichage d'une horloge régionale.
- Aider les utilisateurs internationaux à coordonner leur temps.
- Création d'un marqueur visuel simple dans la liste des utilisateurs.
- Ajout d'un petit bot utilitaire sans exécuter de logiciel externe.
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/time.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/time.lua
Déchargez le script:
!luaunload /PATH/TO/HUB/scripts/time.lua
Si vous modifiez le script, déchargez-le et chargez-le à nouveau:
!luaunload /PATH/TO/HUB/scripts/time.lua
!luaload /PATH/TO/HUB/scripts/time.lua
Utilisez le chemin absolu complet, sauf si la configuration de votre plugin Verlihub Lua prend en charge les chemins relatifs.
Code de script
name = ''
class = 3
description = 'Time Bot: US'
speed = '100'
email = ''
share = '0'
prefix = '!_US_'
postfix = ''
interval = 10
counter = 0
format = "%I:%M:%S%p"
offset = -5
function GetTime()
return os.date(format, os.time() + offset * 60 * 60)
end
function GetName()
time = GetTime()
return prefix..time..postfix
end
Options de configuration
name
name = ''
La valeur du nom de base pour l’entrée de type bot. Dans ce script, le nom visible est généré par GetName(), donc name peut généralement rester vide.
class
class = 3
Contrôle la classe affichée ou le niveau de profil de l’entrée de type bot. La signification exacte des valeurs de classe dépend de la configuration du hub. Dans de nombreuses configurations de hub, les numéros de classe plus élevés représentent des rôles d'utilisateur élevés.
Utilisez une valeur de classe qui correspond à la manière dont vous souhaitez que l'entrée d'horloge apparaisse dans la liste des utilisateurs.
description
description = 'Time Bot: US'
La description affichée pour l'entrée de type bot. Utilisez ceci pour expliquer ce que l'entrée représente.
description = 'Time Bot: US'
description = 'Time Bot: UTC'
description = 'Hub Clock'
description = 'Server Time'
speed
speed = '100'
La valeur de la vitesse de connexion affichée pour l’entrée de type bot. C'est surtout cosmétique. Il ne contrôle pas la fréquence à laquelle le script est mis à jour.
email = ''
Le champ de courrier électronique affiché pour l'entrée de type bot. Laissez-le vide sauf si vous souhaitez afficher une adresse de contact.
share
share = '0'
La taille de partage affichée pour l’entrée de type bot. Pour un robot horloge, 0 est approprié car il ne s’agit pas d’un véritable utilisateur de partage de fichiers.
prefix
prefix = '!_US_'
Texte placé avant l'heure générée. Cela rend l'horloge facile à identifier dans la liste des utilisateurs.
prefix = '!_US_'
prefix = '!_UTC_'
prefix = '[TIME] '
prefix = 'Clock_'
Choisissez un préfixe qui trie clairement dans la liste des utilisateurs de votre hub.
postfix
postfix = ''
Texte placé après l'heure générée.
postfix = ''
postfix = '_EST'
postfix = '_UTC'
postfix = ' HubTime'
interval
interval = 10
Contrôle la fréquence à laquelle le script doit être mis à jour, généralement en secondes. Gardez l'intervalle raisonnable. La mise à jour toutes les secondes n'est généralement pas nécessaire pour une entrée de liste d'utilisateurs du hub.
10: utile pour une horloge visible basée sur les secondes.30: un bon équilibre pour de nombreux hubs.60: idéal pour les horloges à minutes uniquement.
Si votre format n'affiche pas les secondes, utilisez 60.
format = "%I:%M%p"
interval = 60
counter
counter = 0
Compteur interne utilisé par le script. Ne changez pas cela sauf si vous modifiez la logique du script.
format
format = "%I:%M:%S%p"
Contrôle la façon dont l’heure est affichée. Cela utilise Lua os.date formatage. Le format par défaut affiche l'heure sur 12 heures avec les secondes et AM/PM.
Exemple de sortie:
06:30:00PM
Formats courants:
format = "%I:%M:%S%p" -- 06:30:00PM
format = "%I:%M%p" -- 06:30PM
format = "%H:%M:%S" -- 18:30:00
format = "%H:%M" -- 18:30
format = "%Y-%m-%d %H:%M" -- 2026-07-02 18:30
Pour les entrées de liste d'utilisateurs, les formats plus courts sont généralement plus faciles à lire.
offset
offset = -5
Différence de fuseau horaire par rapport à l’heure du serveur, en heures. Le script calcule le temps en utilisant:
os.time() + offset * 60 * 60
Exemples:
offset = 0 -- same as server time
offset = -5 -- five hours behind server time
offset = 1 -- one hour ahead of server time
offset = 5.5 -- five and a half hours ahead, if fractional offsets work in your Lua environment
Il s'agit d'un décalage fixe. Il ne gère pas automatiquement les règles d’heure d’été à moins que l’heure et le décalage du serveur ne soient ajustés. Pour les changements d’heure d’été, mettez à jour le décalage si nécessaire.
Exemples de configurations
Style heure de l’Est des États-Unis
description = 'Time Bot: US Eastern'
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5
Exemple d'affichage:
!_US_06:30PM
Horloge UTC
description = 'Time Bot: UTC'
prefix = '!_UTC_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0
Exemple d'affichage:
!_UTC_23:30
Horloge de hub 24 heures sur 24
description = 'Hub Clock'
prefix = '!_TIME_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0
Exemple d'affichage:
!_TIME_18:30
Paramètres de production recommandés
Pour la plupart des hubs, utilisez une horloge indiquant uniquement les minutes:
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5
Cela réduit les mises à jour inutiles tout en gardant l'horloge lisible.
Utilisez les secondes uniquement lorsque vous souhaitez un effet d'horloge en direct:
interval = 10
format = "%I:%M:%S%p"
Un intervalle de mise à jour d'une seconde est généralement inutile pour une entrée de la liste d'utilisateurs du hub:
interval = 1
Tester le script
Après avoir chargé le script, vérifiez la liste des utilisateurs du hub pour l'entrée de temps générée.
Confirmez que:
- L'entrée n'apparaît qu'une seule fois.
- L'heure affichée est correcte.
- Le préfixe et le suffixe semblent corrects.
- L'intervalle de mise à jour n'est pas trop agressif.
- L'entrée disparaît après le déchargement du script.
- Le rechargement du script ne crée pas de doublons.
Si l'heure est erronée, vérifiez le fuseau horaire du serveur et le décalage configuré.
Sur le serveur, vérifiez l'heure actuelle du système:
date
timedatectl
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/time.lua
Utilisez le chemin absolu si les chemins relatifs ne fonctionnent pas.
L'heure est incorrecte
Vérifier:
- Fuseau horaire du serveur.
offsetvaleur.- Heure d’été.
- Si l'horloge du serveur est synchronisée.
Vérifications du serveur:
date
timedatectl
Si l'heure du serveur est correcte mais que l'horloge affichée est erronée, ajustez offset.
Le script crée des entrées en double
Déchargez le script et confirmez que l'ancienne entrée disparaît:
!luaunload /PATH/TO/HUB/scripts/time.lua
Puis chargez-le à nouveau:
!luaload /PATH/TO/HUB/scripts/time.lua
Si des doublons subsistent, redémarrez le plugin Lua ou le service Verlihub pendant une fenêtre de maintenance.
L'horloge se met à jour trop souvent
Augmentez l'intervalle.
interval = 60
format = "%I:%M%p"
Si les secondes sont affichées, utilisez:
interval = 10
format = "%I:%M:%S%p"
Les utilisateurs sont confus par l'entrée
Rendre le préfixe ou la description plus clair.
prefix = '!_HUB_TIME_'
description = 'Hub Time Clock'
Notes de sécurité
Ce script est petit, mais il s'exécute toujours dans l'environnement Verlihub Lua. Gardez le script concentré sur le calcul de l'heure actuelle et la mise à jour du nom d'affichage.
N'ajoutez pas:
- Requêtes HTTP externes.
- Requêtes de base de données.
- Analyse de fichiers.
- Longues boucles.
- Bloquer les appels en veille.
Notes d'entretien
Conservez une sauvegarde avant de modifier le script:
cp /PATH/TO/HUB/scripts/time.lua /PATH/TO/HUB/scripts/time.lua.bak
Si vous utilisez Git:
cd /PATH/TO/HUB/scripts
git add time.lua
git commit -m "Update time.lua clock settings"
Lorsque vous modifiez uniquement le préfixe, le suffixe, le format, l'intervalle ou le décalage, aucune modification de la logique du code n'est requise.