Creado: 2026/07/02 19:41:27 America/Chicago
Por: admin
Modificado: 2026/07/03 16:24:56 America/Chicago
Por: admin

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.

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

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

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

Página Superior