Creat: 2026/07/02 19:41:27 America/Chicago
De: admin
Modificat: 2026/07/03 16:24:56 America/Chicago
De: admin

Scriptul time.lua creează o mică intrare din lista de utilizatori al cărei nume se schimbă pentru a afișa ora curentă. Utilizați-l atunci când un hub Verlihub are nevoie de un marcator de fus orar vizibil pentru utilizatorii internaționali, sălile regionale sau operatorii care coordonează fusurile orare.

Scriptul nu necesită un proces bot extern separat. Utilizează pluginul Verlihub Lua pentru a crea o intrare asemănătoare unui bot în lista de utilizatori a hubului. O intrare de ceas poate arăta astfel:

!_US_06:30:00PM

Puteți modifica prefixul, postfixul, formatul de timp, intervalul de actualizare și decalajul fusului orar înainte de a încărca scriptul.

Ce face acest script

Scriptul construiește numele afișat din trei părți:

prefix + current time + postfix

Exemplu de ieșire:

!_US_06:30:00PM

Intrarea vizibilă din lista de utilizatori se actualizează pe un cronometru, astfel încât ora afișată rămâne actuală.

Utilizați acest script pentru:

  • Se afișează un fus orar hub.
  • Afișează un ceas regional.
  • Ajutați utilizatorii internaționali să coordoneze timpul.
  • Crearea unui marker vizual simplu în lista de utilizatori.
  • Adăugarea unui bot utilitar mic fără a rula software extern.

Cerințe

Acest script necesită:

  • Verlihub instalat și în funcțiune.
  • Pluginul Verlihub Lua este instalat.
  • Pluginul Lua este activat în Verlihub.
  • Permisiune de încărcare și descărcare Lua scripturi.
  • Un director de script care poate fi scris pentru Verlihub Lua.

Înainte de a încărca scriptul, confirmați că pluginul Lua este activ:

!pluglist

Dacă pluginul Lua nu este listat, încărcați-l sau activați-l mai întâi din articolul de configurare Lua.

Utilizați un director de script dedicat:

mkdir -p /PATH/TO/HUB/scripts

Plasați scriptul la:

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

Pentru sistemele de producție, directorul ar trebui să poată fi scris numai de către administratorii de încredere sau de către utilizatorul serviciului Verlihub. Nu faceți directorul care poate fi scris în întreaga lume.

Comenzi de încărcare și descărcare

Încărcați scriptul:

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

Descărcați scriptul:

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

Dacă editați scriptul, descărcați-l și încărcați-l din nou:

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

Utilizați calea absolută completă, cu excepția cazului în care configurația pluginului dvs. Verlihub Lua acceptă căi relative.

Cod 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

Opțiuni de configurare

name

name = ''

Valoarea numelui de bază pentru intrarea asemănătoare botului. În acest script, numele vizibil este generat de GetName(), deci name pot rămâne de obicei goale.

class

class = 3

Controlează clasa afișată sau nivelul de profil al intrării asemănătoare botului. Semnificația exactă a valorilor clasei depinde de configurația hub-ului. În multe configurații hub, numerele de clasă mai înalte reprezintă roluri ridicate de utilizator.

Utilizați o valoare de clasă care se potrivește cu modul în care doriți să apară intrarea ceasului în lista de utilizatori.

description

description = 'Time Bot: US'

Descrierea afișată pentru intrarea asemănătoare botului. Utilizați aceasta pentru a explica ce reprezintă intrarea.

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

speed

speed = '100'

Valoarea vitezei de conectare afișată pentru intrarea de tip bot. Aceasta este în mare parte cosmetică. Nu controlează cât de des se actualizează scriptul.

email

email = ''

Câmpul de e-mail afișat pentru intrarea asemănătoare botului. Lăsați-l necompletat dacă nu doriți să afișați o adresă de contact.

share

share = '0'

Mărimea cotei afișată pentru intrarea asemănătoare botului. Pentru un bot de ceas, 0 este adecvat deoarece nu este un utilizator real de partajare a fișierelor.

prefix

prefix = '!_US_'

Text plasat înainte de ora generată. Acest lucru face ca ceasul să fie ușor de identificat în lista de utilizatori.

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

Alegeți un prefix care se sortează clar în lista de utilizatori a hubului.

postfix

postfix = ''

Text plasat după timpul generat.

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

interval

interval = 10

Controlează cât de des ar trebui să se actualizeze scriptul, de obicei în câteva secunde. Păstrați intervalul rezonabil. Actualizarea la fiecare secundă este de obicei inutilă pentru o intrare din lista de utilizatori hub.

  • 10: util pentru un ceas vizibil bazat pe secunde.
  • 30: un echilibru bun pentru multe hub-uri.
  • 60: cel mai bun pentru ceasuri cu doar minute.

Dacă formatul dvs. nu afișează secunde, utilizați 60.

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

counter

counter = 0

Contor intern utilizat de script. Nu modificați acest lucru decât dacă modificați logica scriptului.

format

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

Controlează modul în care este afișată ora. Aceasta folosește Lua os.date formatare. Formatul implicit afișează ora de 12 ore cu secunde și AM/PM.

Exemplu de ieșire:

06:30:00PM

Formate comune:

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

Pentru intrările din lista de utilizatori, formatele mai scurte sunt de obicei mai ușor de citit.

offset

offset = -5

Diferența de fus orar față de ora serverului, în ore. Scriptul calculează timpul folosind:

os.time() + offset * 60 * 60

Exemple:

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

Acesta este un offset fix. Nu se ocupă automat de regulile de ora de vară, cu excepția cazului în care ora și offset-ul serverului sunt ajustate. Pentru modificările de ora de vară, actualizați compensarea atunci când este necesar.

Exemple de configurații

Stilul ora de Est al SUA

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

Exemplu de afișare:

!_US_06:30PM

Ceas UTC

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

Exemplu de afișare:

!_UTC_23:30

Ceas Hub de 24 de ore

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

Exemplu de afișare:

!_TIME_18:30

Pentru majoritatea hub-urilor, utilizați un ceas cu numai minute:

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

Acest lucru reduce actualizările inutile, păstrând în același timp ceasul lizibil.

Folosiți secunde numai când doriți un efect de ceas live:

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

Un interval de actualizare de o secundă este de obicei inutil pentru o intrare din lista de utilizatori hub:

interval = 1

Testarea scenariului

După încărcarea scriptului, verificați lista de utilizatori hub pentru intrarea de timp generată.

Confirmați că:

  • Intrarea apare o singură dată.
  • Ora afișată este corectă.
  • Prefixul și postfixul arată corect.
  • Intervalul de actualizare nu este prea agresiv.
  • Intrarea dispare după descărcarea scriptului.
  • Reîncărcarea scriptului nu creează duplicate.

Dacă ora este greșită, verificați fusul orar al serverului și decalajul configurat.

Pe server, verificați ora curentă a sistemului:

date
timedatectl

Depanare

Scriptul nu se încarcă

Verificați dacă pluginul Lua este activ:

!pluglist

Verificați dacă calea fișierului este corectă:

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

Utilizați calea absolută dacă căile relative nu funcționează.

Ora este incorectă

Verifica:

  • Fusul orar al serverului.
  • offset valoare.
  • Ora de vară.
  • Dacă ceasul serverului este sincronizat.

Verificări de server:

date
timedatectl

Dacă ora serverului este corectă, dar ceasul afișat este greșit, ajustați offset.

Scriptul creează intrări duplicate

Descărcați scriptul și confirmați că vechea intrare dispare:

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

Apoi încărcați-l din nou:

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

Dacă rămân duplicate, reporniți pluginul Lua sau serviciul Verlihub în timpul unei ferestre de întreținere.

Ceasul se actualizează prea des

Măriți intervalul.

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

Dacă sunt afișate secunde, utilizați:

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

Utilizatorii sunt confuzi de intrare

Faceți prefixul sau descrierea mai clare.

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

Note de siguranță

Acest script este mic, dar încă rulează în mediul Verlihub Lua. Păstrați scriptul concentrat pe calcularea orei curente și actualizarea numelui afișat.

Nu adăugați:

  • Solicitări HTTP externe.
  • Interogări baze de date.
  • Scanarea fișierelor.
  • Bucle lungi.
  • Blocarea apelurilor de somn.

Note de întreținere

Păstrați o copie de rezervă înainte de a schimba scriptul:

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

Dacă folosești Git:

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

Când schimbați doar prefixul, postfixul, formatul, intervalul sau offset-ul, nu sunt necesare modificări logice de cod.

Pagină Părinte