El script time.lua crea una pequeña entrada en la lista de usuarios cuyo nombre cambia para mostrar la hora actual. Úselo cuando un hub Verlihub necesite un marcador de zona horaria visible para usuarios internacionales, salas regionales u operadores que coordinan entre zonas horarias.
El script no requiere un proceso de bot externo independiente. Utiliza el complemento Verlihub Lua para crear una entrada similar a un bot dentro de la lista de usuarios del hub. Una entrada de reloj puede verse así:
!_US_06:30:00PM
Puede cambiar el prefijo, el sufijo, el formato de hora, el intervalo de actualización y el desplazamiento de la zona horaria antes de cargar el script.
Qué hace este script
El script crea el nombre para mostrar a partir de tres partes:
prefix + current time + postfix
Salida de ejemplo:
!_US_06:30:00PM
La entrada visible de la lista de usuarios se actualiza con un temporizador para que la hora mostrada permanezca actual.
Utilice este script para:
- Mostrar la zona horaria del hub.
- Mostrar un reloj regional.
- Ayudar a los usuarios internacionales a coordinar horarios.
- Crear un marcador visual simple en la lista de usuarios.
- Agregar un pequeño bot de utilidad sin ejecutar software externo.
Requisitos
Este script requiere:
- Verlihub instalado y funcionando.
- El complemento Verlihub Lua instalado.
- El complemento Lua habilitado en Verlihub.
- Permiso para cargar y descargar scripts Lua.
- Un directorio de script grabable para archivos Verlihub Lua.
Antes de cargar el script, confirme que el complemento Lua esté activo:
!pluglist
Si el complemento Lua no aparece en la lista, cárguelo o habilítelo primero desde el artículo de configuración principal Lua.
Ubicación de archivo recomendada
Utilice un directorio de script dedicado:
mkdir -p /PATH/TO/HUB/scripts
Coloque el script en:
/PATH/TO/HUB/scripts/time.lua
Para los sistemas de producción, solo los administradores de confianza o el usuario del servicio Verlihub deben poder escribir en el directorio. No permita que se pueda escribir en el directorio en todo el mundo.
Comandos de carga y descarga
Cargue el script:
!luaload /PATH/TO/HUB/scripts/time.lua
Descargar el script:
!luaunload /PATH/TO/HUB/scripts/time.lua
Si edita el script, descárguelo y cárguelo nuevamente:
!luaunload /PATH/TO/HUB/scripts/time.lua
!luaload /PATH/TO/HUB/scripts/time.lua
Utilice la ruta absoluta completa a menos que la configuración del complemento Verlihub Lua admita rutas relativas.
Código de secuencia de comandos
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
Opciones de configuración
name
name = ''
El valor del nombre base para la entrada tipo bot. En este script, el nombre visible es generado por GetName(), entonces name normalmente puede permanecer vacío.
class
class = 3
Controla la clase mostrada o el nivel de perfil de la entrada tipo bot. El significado exacto de los valores de clase depende de la configuración del hub. En muchas configuraciones de hub, los números de clase más altos representan roles de usuario elevados.
Utilice un valor de clase que se ajuste a cómo desea que aparezca la entrada del reloj en la lista de usuarios.
description
description = 'Time Bot: US'
La descripción que se muestra para la entrada tipo bot. Utilice esto para explicar lo que representa la entrada.
description = 'Time Bot: US'
description = 'Time Bot: UTC'
description = 'Hub Clock'
description = 'Server Time'
speed
speed = '100'
El valor de velocidad de conexión que se muestra para la entrada tipo bot. Esto es principalmente cosmético. No controla la frecuencia con la que se actualiza el script.
email = ''
El campo de correo electrónico que se muestra para la entrada tipo bot. Déjelo vacío a menos que desee mostrar una dirección de contacto.
share
share = '0'
El tamaño compartido que se muestra para la entrada tipo bot. Para un robot de reloj, 0 es apropiado porque no es un usuario real que comparte archivos.
prefix
prefix = '!_US_'
Texto colocado antes de la hora generada. Esto hace que el reloj sea fácil de identificar en la lista de usuarios.
prefix = '!_US_'
prefix = '!_UTC_'
prefix = '[TIME] '
prefix = 'Clock_'
Elija un prefijo que se clasifique claramente en la lista de usuarios de su hub.
postfix
postfix = ''
Texto colocado después de la hora generada.
postfix = ''
postfix = '_EST'
postfix = '_UTC'
postfix = ' HubTime'
interval
interval = 10
Controla la frecuencia con la que se debe actualizar el script, normalmente en segundos. Mantenga el intervalo razonable. Por lo general, no es necesario actualizar cada segundo para una entrada de la lista de usuarios del hub.
10: útil para un reloj visible basado en segundos.30: buen equilibrio para muchos hubs.60: mejor para relojes de solo minutos.
Si su formato no muestra segundos, use 60.
format = "%I:%M%p"
interval = 60
counter
counter = 0
Contador interno utilizado por el script. No cambie esto a menos que esté modificando la lógica del script.
format
format = "%I:%M:%S%p"
Controla cómo se muestra la hora. Esto usa Lua os.date formateo. El formato predeterminado muestra la hora de 12 horas con segundos y AM/PM.
Salida de ejemplo:
06:30:00PM
Formatos comunes:
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
Para las entradas de la lista de usuarios, los formatos más cortos suelen ser más fáciles de leer.
offset
offset = -5
Diferencia de zona horaria con respecto a la hora del servidor, en horas. El script calcula el tiempo usando:
os.time() + offset * 60 * 60
Ejemplos:
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
Esta es una compensación fija. No maneja automáticamente las reglas del horario de verano a menos que se ajusten la hora y el desplazamiento del servidor. Para cambios de horario de verano, actualice la compensación cuando sea necesario.
Configuraciones de ejemplo
Estilo de hora del este de EE. UU.
description = 'Time Bot: US Eastern'
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5
Visualización de ejemplo:
!_US_06:30PM
Reloj UTC
description = 'Time Bot: UTC'
prefix = '!_UTC_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0
Visualización de ejemplo:
!_UTC_23:30
Reloj de hub de 24 horas
description = 'Hub Clock'
prefix = '!_TIME_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0
Visualización de ejemplo:
!_TIME_18:30
Configuraciones de producción recomendadas
Para la mayoría de los hubs, utilice un reloj de solo minutos:
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5
Esto reduce las actualizaciones innecesarias y mantiene el reloj legible.
Utilice segundos sólo cuando desee un efecto de reloj en vivo:
interval = 10
format = "%I:%M:%S%p"
Por lo general, no es necesario un intervalo de actualización de un segundo para una entrada de la lista de usuarios del hub:
interval = 1
Probando el script
Después de cargar el script, consulte la lista de usuarios del hub para conocer la entrada de tiempo generada.
Confirma que:
- La entrada aparece sólo una vez.
- La hora mostrada es correcta.
- El prefijo y el sufijo parecen correctos.
- El intervalo de actualización no es demasiado agresivo.
- La entrada desaparece después de descargar el script.
- Recargar el script no crea duplicados.
Si la hora es incorrecta, verifique la zona horaria del servidor y el desplazamiento configurado.
En el servidor, verifique la hora actual del sistema:
date
timedatectl
Solución de problemas
El script no se carga
Compruebe que el complemento Lua esté activo:
!pluglist
Compruebe que la ruta del archivo sea correcta:
!luaload /PATH/TO/HUB/scripts/time.lua
Utilice la ruta absoluta si las rutas relativas no funcionan.
El tiempo es incorrecto
Controlar:
- Zona horaria del servidor.
offsetvalor.- Horario de verano.
- Si el reloj del servidor está sincronizado.
Comprobaciones del servidor:
date
timedatectl
Si la hora del servidor es correcta pero el reloj mostrado es incorrecto, ajuste offset.
El script crea entradas duplicadas
Descargue el script y confirme que la entrada anterior desaparezca:
!luaunload /PATH/TO/HUB/scripts/time.lua
Luego cárgalo nuevamente:
!luaload /PATH/TO/HUB/scripts/time.lua
Si quedan duplicados, reinicie el complemento Lua o el servicio Verlihub durante una ventana de mantenimiento.
El reloj se actualiza con demasiada frecuencia
Aumente el intervalo.
interval = 60
format = "%I:%M%p"
Si se muestran segundos, use:
interval = 10
format = "%I:%M:%S%p"
Los usuarios están confundidos por la entrada
Aclare el prefijo o la descripción.
prefix = '!_HUB_TIME_'
description = 'Hub Time Clock'
Notas de seguridad
Este script es pequeño, pero aún se ejecuta dentro del entorno Verlihub Lua. Mantenga el script enfocado en calcular la hora actual y actualizar el nombre para mostrar.
No agregue:
- Solicitudes HTTP externas.
- Consultas a bases de datos.
- Escaneo de archivos.
- Bucles largos.
- Bloquear llamadas de sueño.
Notas de mantenimiento
Mantenga una copia de seguridad antes de cambiar el script:
cp /PATH/TO/HUB/scripts/time.lua /PATH/TO/HUB/scripts/time.lua.bak
Si usa Git:
cd /PATH/TO/HUB/scripts
git add time.lua
git commit -m "Update time.lua clock settings"
Cuando se cambia solo el prefijo, postfijo, formato, intervalo o desplazamiento, no se requieren cambios en la lógica del código.