Creato: 2026/07/02 19:41:27 America/Chicago
Da: admin
Modificato: 2026/07/03 16:24:56 America/Chicago
Da: admin

IL time.lua Lo script crea una piccola voce nell'elenco utenti il ​​cui nome cambia per mostrare l'ora corrente. Utilizzalo quando un hub Verlihub necessita di un indicatore di fuso orario visibile per utenti internazionali, sale regionali o operatori che si coordinano tra fusi orari.

Lo script non richiede un processo bot esterno separato. Utilizza il plugin Verlihub Lua per creare una voce simile a un bot all'interno dell'elenco degli utenti dell'hub. Una voce dell'orologio può assomigliare a questa:

!_US_06:30:00PM

È possibile modificare il prefisso, il suffisso, il formato dell'ora, l'intervallo di aggiornamento e l'offset del fuso orario prima di caricare lo script.

Cosa fa questo script

Lo script crea il nome visualizzato da tre parti:

prefix + current time + postfix

Esempio di output:

!_US_06:30:00PM

La voce visibile dell'elenco utenti si aggiorna con un timer in modo che l'ora visualizzata rimanga quella attuale.

Utilizza questo script per:

  • Visualizzazione del fuso orario dell'hub.
  • Mostra un orologio regionale.
  • Aiutare gli utenti internazionali a coordinare il tempo.
  • Creazione di un semplice indicatore visivo nell'elenco degli utenti.
  • Aggiunta di un piccolo bot di utilità senza eseguire software esterno.

Requisiti

Questo script richiede:

  • Verlihub installato e funzionante.
  • Il plugin Verlihub Lua è installato.
  • Il plugin Lua abilitato in Verlihub.
  • Autorizzazione a caricare e scaricare gli script Lua.
  • Una directory di script scrivibile per i file Verlihub Lua.

Prima di caricare lo script, conferma che il plugin Lua è attivo:

!pluglist

Se il plugin Lua non è elencato, caricalo o abilitalo prima dall'articolo di configurazione principale Lua.

Utilizza una directory di script dedicata:

mkdir -p /PATH/TO/HUB/scripts

Posiziona lo script in:

/PATH/TO/HUB/scripts/time.lua

Per i sistemi di produzione, la directory deve essere scrivibile solo da amministratori fidati o dall'utente del servizio Verlihub. Non rendere la directory scrivibile da tutti.

Comandi di caricamento e scaricamento

Carica lo script:

!luaload /PATH/TO/HUB/scripts/time.lua

Scarica lo script:

!luaunload /PATH/TO/HUB/scripts/time.lua

Se modifichi lo script, scaricalo e caricalo di nuovo:

!luaunload /PATH/TO/HUB/scripts/time.lua
!luaload /PATH/TO/HUB/scripts/time.lua

Utilizza il percorso assoluto completo a meno che la configurazione del plug-in Verlihub Lua non supporti i percorsi relativi.

Codice di scrittura

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

Opzioni di configurazione

name

name = ''

Il valore del nome base per la voce simile a un bot. In questo script, il nome visibile viene generato da GetName(), COSÌ name di solito può rimanere vuoto.

class

class = 3

Controlla la classe visualizzata o il livello del profilo della voce simile a un bot. Il significato esatto dei valori della classe dipende dalla configurazione dell'hub. In molte configurazioni hub, i numeri di classe più alti rappresentano ruoli utente elevati.

Utilizza un valore di classe adatto al modo in cui desideri che la voce dell'orologio venga visualizzata nell'elenco degli utenti.

description

description = 'Time Bot: US'

La descrizione mostrata per la voce simile a un bot. Usalo per spiegare cosa rappresenta la voce.

description = 'Time Bot: US'
description = 'Time Bot: UTC'
description = 'Hub Clock'
description = 'Server Time'

speed

speed = '100'

Il valore della velocità di connessione visualizzato per la voce simile a un bot. Questo è principalmente cosmetico. Non controlla la frequenza con cui lo script viene aggiornato.

email

email = ''

Il campo email mostrato per la voce simile a un bot. Lascialo vuoto a meno che non desideri visualizzare un indirizzo di contatto.

share

share = '0'

La dimensione della condivisione visualizzata per la voce simile a un bot. Per un robot orologio, 0 è appropriato perché non è un vero utente di condivisione file.

prefix

prefix = '!_US_'

Testo posizionato prima dell'ora generata. Ciò semplifica l'identificazione dell'orologio nell'elenco degli utenti.

prefix = '!_US_'
prefix = '!_UTC_'
prefix = '[TIME] '
prefix = 'Clock_'

Scegli un prefisso che venga ordinato chiaramente nell'elenco degli utenti dell'hub.

postfix

postfix = ''

Testo inserito dopo l'ora generata.

postfix = ''
postfix = '_EST'
postfix = '_UTC'
postfix = ' HubTime'

interval

interval = 10

Controlla la frequenza con cui lo script deve essere aggiornato, in genere in secondi. Mantenere l'intervallo ragionevole. L'aggiornamento ogni secondo in genere non è necessario per una voce dell'elenco utenti dell'hub.

  • 10: utile per un orologio visibile basato sui secondi.
  • 30: un buon equilibrio per molti hub.
  • 60: ideale per orologi solo minuti.

Se il tuo formato non mostra i secondi, usa 60.

format = "%I:%M%p"
interval = 60

counter

counter = 0

Contatore interno utilizzato dallo script. Non modificarlo a meno che non si stia modificando la logica dello script.

format

format = "%I:%M:%S%p"

Controlla la modalità di visualizzazione dell'ora. Questo utilizza Lua os.date formattazione. Il formato predefinito visualizza l'ora a 12 ore con secondi e AM/PM.

Esempio di output:

06:30:00PM

Formati comuni:

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

Per le voci dell'elenco utenti, i formati più brevi sono generalmente più facili da leggere.

offset

offset = -5

Differenza di fuso orario dall'ora del server, in ore. Lo script calcola il tempo utilizzando:

os.time() + offset * 60 * 60

Esempi:

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

Questo è un offset fisso. Non gestisce automaticamente le regole dell'ora legale a meno che l'ora e l'offset del server non vengano modificati. Per le modifiche all'ora legale, aggiornare l'offset quando necessario.

Configurazioni di esempio

Stile dell'ora orientale degli Stati Uniti

description = 'Time Bot: US Eastern'
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5

Visualizzazione di esempio:

!_US_06:30PM

Orologio UTC

description = 'Time Bot: UTC'
prefix = '!_UTC_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0

Visualizzazione di esempio:

!_UTC_23:30

Orologio da hub 24 ore

description = 'Hub Clock'
prefix = '!_TIME_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0

Visualizzazione di esempio:

!_TIME_18:30

Per la maggior parte degli hub, utilizza un orologio di soli minuti:

prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5

Ciò riduce gli aggiornamenti non necessari mantenendo l'orologio leggibile.

Utilizza i secondi solo quando desideri un effetto orologio dal vivo:

interval = 10
format = "%I:%M:%S%p"

Un intervallo di aggiornamento di un secondo in genere non è necessario per una voce dell'elenco utenti dell'hub:

interval = 1

Testare la sceneggiatura

Dopo aver caricato lo script, controllare l'elenco degli utenti dell'hub per la voce dell'ora generata.

Conferma che:

  • La voce appare solo una volta.
  • L'ora visualizzata è corretta.
  • Il prefisso e il postfisso sembrano corretti.
  • L'intervallo di aggiornamento non è troppo aggressivo.
  • La voce scompare dopo aver scaricato lo script.
  • Ricaricare lo script non crea duplicati.

Se l'ora è sbagliata, controlla il fuso orario del server e l'offset configurato.

Sul server, controlla l'ora corrente del sistema:

date
timedatectl

Risoluzione dei problemi

Lo script non viene caricato

Verifica che il plugin Lua sia attivo:

!pluglist

Controlla che il percorso del file sia corretto:

!luaload /PATH/TO/HUB/scripts/time.lua

Utilizzare il percorso assoluto se i percorsi relativi non funzionano.

L'ora non è corretta

Controllo:

  • Fuso orario del server.
  • offset valore.
  • Ora legale.
  • Se l'orologio del server è sincronizzato.

Controlli del server:

date
timedatectl

Se l'ora del server è corretta ma l'orologio visualizzato è sbagliato, regolarlo offset.

Lo script crea voci duplicate

Scarica lo script e conferma che la vecchia voce scompare:

!luaunload /PATH/TO/HUB/scripts/time.lua

Quindi caricalo di nuovo:

!luaload /PATH/TO/HUB/scripts/time.lua

Se rimangono dei duplicati, riavviare il plugin Lua o il servizio Verlihub durante una finestra di manutenzione.

L'orologio si aggiorna troppo spesso

Aumentare l'intervallo.

interval = 60
format = "%I:%M%p"

Se vengono visualizzati i secondi, utilizzare:

interval = 10
format = "%I:%M:%S%p"

Gli utenti sono confusi dalla voce

Rendi più chiaro il prefisso o la descrizione.

prefix = '!_HUB_TIME_'
description = 'Hub Time Clock'

Note sulla sicurezza

Questo script è piccolo, ma viene comunque eseguito all'interno dell'ambiente Verlihub Lua. Mantieni lo script concentrato sul calcolo dell'ora corrente e sull'aggiornamento del nome visualizzato.

Non aggiungere:

  • Richieste HTTP esterne.
  • Interrogazioni del database.
  • Scansione dei file.
  • Anelli lunghi.
  • Blocco delle chiamate per dormire.

Note sulla manutenzione

Conserva un backup prima di modificare lo script:

cp /PATH/TO/HUB/scripts/time.lua /PATH/TO/HUB/scripts/time.lua.bak

Se usi Git:

cd /PATH/TO/HUB/scripts
git add time.lua
git commit -m "Update time.lua clock settings"

Quando si modifica solo il prefisso, il suffisso, il formato, l'intervallo o l'offset, non sono necessarie modifiche alla logica del codice.

Pagina Padre