Créé: 2026/07/02 19:41:27 America/Chicago
Par: admin
Modifié: 2026/07/03 16:24:56 America/Chicago
Par: admin

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.

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

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

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.
  • offset valeur.
  • 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.

Page Parente