Skript time.lua vytvoří malou položku seznamu uživatelů, jejíž název se změní, aby zobrazoval aktuální čas. Použijte jej, když hub Verlihub potřebuje viditelnou značku časového pásma pro mezinárodní uživatele, regionální místnosti nebo operátory, kteří koordinují časová pásma.
Skript nevyžaduje samostatný proces externího robota. Používá plugin Verlihub Lua k vytvoření položky podobné botům v seznamu uživatelů hubu. Záznam hodin může vypadat takto:
!_US_06:30:00PM
Před načtením skriptu můžete změnit předponu, příponu, formát času, interval aktualizace a posun časového pásma.
Co tento skript dělá
Skript sestaví zobrazovaný název ze tří částí:
prefix + current time + postfix
Příklad výstupu:
!_US_06:30:00PM
Viditelná položka seznamu uživatelů se aktualizuje na časovači, takže zobrazený čas zůstává aktuální.
Použijte tento skript pro:
- Zobrazuje se časové pásmo hubu.
- Zobrazení regionálních hodin.
- Pomáháme mezinárodním uživatelům koordinovat čas.
- Vytvoření jednoduché vizuální značky v seznamu uživatelů.
- Přidání malého obslužného robota bez spuštění externího softwaru.
Požadavky
Tento skript vyžaduje:
- Verlihub nainstalováno a spuštěno.
- Nainstalovaný plugin Verlihub Lua.
- Plugin Lua povolen v Verlihub.
- Oprávnění k načtení a uvolnění Lua skriptů.
- Adresář zapisovatelných skriptů pro Verlihub Lua soubory.
Před načtením skriptu se ujistěte, že je aktivní plugin Lua:
!pluglist
Pokud plugin Lua není uveden, nejprve jej načtěte nebo povolte z článku o nadřazeném nastavení Lua.
Doporučené umístění souboru
Použijte vyhrazený adresář skriptů:
mkdir -p /PATH/TO/HUB/scripts
Umístěte skript na:
/PATH/TO/HUB/scripts/time.lua
U produkčních systémů by do adresáře měli zapisovat pouze důvěryhodní správci nebo uživatel služby Verlihub. Nedělejte do adresáře světově zapisovatelný.
Příkazy Načíst a Vyjmout
Načtěte skript:
!luaload /PATH/TO/HUB/scripts/time.lua
Uvolněte skript:
!luaunload /PATH/TO/HUB/scripts/time.lua
Pokud skript upravíte, uvolněte jej a znovu načtěte:
!luaunload /PATH/TO/HUB/scripts/time.lua
!luaload /PATH/TO/HUB/scripts/time.lua
Použijte úplnou absolutní cestu, pokud vaše konfigurace pluginu Verlihub Lua nepodporuje relativní cesty.
Kód skriptu
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
Možnosti konfigurace
name
name = ''
Hodnota základního názvu pro položku podobnou botě. V tomto skriptu je viditelný název generován pomocí GetName(), takže name může obvykle zůstat prázdný.
class
class = 3
Ovládá zobrazenou úroveň třídy nebo profilu položky podobné botě. Přesný význam hodnot tříd závisí na konfiguraci hubu. V mnoha nastaveních hub představují vyšší čísla tříd zvýšené uživatelské role.
Použijte hodnotu třídy, která odpovídá tomu, jak chcete, aby se položka hodin objevila v seznamu uživatelů.
description
description = 'Time Bot: US'
Popis zobrazený u záznamu podobného robotu. Použijte toto k vysvětlení toho, co záznam představuje.
description = 'Time Bot: US'
description = 'Time Bot: UTC'
description = 'Hub Clock'
description = 'Server Time'
speed
speed = '100'
Hodnota rychlosti připojení zobrazená u položky podobné botě. To je převážně kosmetické. Neřídí, jak často se skript aktualizuje.
email = ''
Pole e-mailu zobrazené u záznamu podobného robotu. Nechejte pole prázdné, pokud nechcete zobrazit kontaktní adresu.
share
share = '0'
Velikost sdílené položky zobrazená u položky podobné botě. Pro robota s hodinami, 0 je vhodné, protože se nejedná o skutečného uživatele pro sdílení souborů.
prefix
prefix = '!_US_'
Text umístěný před vygenerovaným časem. Díky tomu lze hodiny snadno identifikovat v seznamu uživatelů.
prefix = '!_US_'
prefix = '!_UTC_'
prefix = '[TIME] '
prefix = 'Clock_'
Vyberte předponu, která jasně seřadí ve vašem seznamu uživatelů hubu.
postfix
postfix = ''
Text umístěný po vygenerovaném čase.
postfix = ''
postfix = '_EST'
postfix = '_UTC'
postfix = ' HubTime'
interval
interval = 10
Určuje, jak často se má skript aktualizovat, obvykle během několika sekund. Udržujte interval přiměřený. Aktualizace každou sekundu je obvykle zbytečná pro položku seznamu uživatelů hubu.
10: užitečné pro viditelné hodiny založené na sekundách.30: dobrá rovnováha pro mnoho hubů.60: nejlepší pro minutové hodiny.
Pokud váš formát nezobrazuje sekundy, použijte 60.
format = "%I:%M%p"
interval = 60
counter
counter = 0
Interní počítadlo používané skriptem. Toto neměňte, pokud neupravujete logiku skriptu.
format
format = "%I:%M:%S%p"
Řídí způsob zobrazení času. Toto používá Lua os.date formátování. Výchozí formát zobrazuje 12hodinový čas se sekundami a AM/PM.
Příklad výstupu:
06:30:00PM
Běžné formáty:
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
U položek seznamu uživatelů jsou kratší formáty obvykle čitelnější.
offset
offset = -5
Rozdíl časového pásma od času serveru v hodinách. Skript počítá čas pomocí:
os.time() + offset * 60 * 60
Příklady:
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
Toto je pevný offset. Nezpracovává pravidla letního času automaticky, pokud nejsou upraveny serverový čas a offset. Pro změny letního času aktualizujte offset v případě potřeby.
Příklad konfigurace
Styl východního času USA
description = 'Time Bot: US Eastern'
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5
Příklad zobrazení:
!_US_06:30PM
Hodiny UTC
description = 'Time Bot: UTC'
prefix = '!_UTC_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0
Příklad zobrazení:
!_UTC_23:30
24hodinové hodiny hubu
description = 'Hub Clock'
prefix = '!_TIME_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0
Příklad zobrazení:
!_TIME_18:30
Doporučená výrobní nastavení
U většiny hubů použijte pouze minutové hodiny:
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5
To snižuje zbytečné aktualizace a zároveň udržuje hodiny čitelné.
Sekundy používejte pouze v případě, že chcete živý efekt hodin:
interval = 10
format = "%I:%M:%S%p"
Jednosekundový interval aktualizace je obvykle zbytečný pro položku seznamu uživatelů hubu:
interval = 1
Testování skriptu
Po načtení skriptu zkontrolujte v seznamu uživatelů hubu vygenerovaný záznam času.
Potvrďte, že:
- Záznam se objeví pouze jednou.
- Zobrazený čas je správný.
- Předpona a přípona vypadají správně.
- Interval aktualizace není příliš agresivní.
- Po uvolnění skriptu záznam zmizí.
- Opětovné načtení skriptu nevytváří duplikáty.
Pokud je čas nesprávný, zkontrolujte časové pásmo serveru a nakonfigurovaný offset.
Na serveru zkontrolujte aktuální systémový čas:
date
timedatectl
Odstraňování problémů
Skript se nenačte
Zkontrolujte, zda je aktivní plugin Lua:
!pluglist
Zkontrolujte, zda je cesta k souboru správná:
!luaload /PATH/TO/HUB/scripts/time.lua
Pokud relativní cesty nefungují, použijte absolutní cestu.
Čas je nesprávný
Kontrola:
- Časové pásmo serveru.
offsethodnota.- Letní čas.
- Zda jsou synchronizovány hodiny serveru.
Kontrola serveru:
date
timedatectl
Pokud je čas serveru správný, ale zobrazené hodiny jsou špatné, upravte jej offset.
Skript vytváří duplicitní položky
Uvolněte skript a potvrďte, že starý záznam zmizel:
!luaunload /PATH/TO/HUB/scripts/time.lua
Poté jej znovu načtěte:
!luaload /PATH/TO/HUB/scripts/time.lua
Pokud duplikáty zůstanou, restartujte během okna údržby plugin Lua nebo službu Verlihub.
Hodiny se aktualizují příliš často
Zvyšte interval.
interval = 60
format = "%I:%M%p"
Pokud se zobrazí sekundy, použijte:
interval = 10
format = "%I:%M:%S%p"
Uživatelé jsou zmateni položkou
Upřesněte předponu nebo popis.
prefix = '!_HUB_TIME_'
description = 'Hub Time Clock'
Bezpečnostní poznámky
Tento skript je malý, ale stále běží v prostředí Verlihub Lua. Udržujte skript zaměřený na výpočet aktuálního času a aktualizaci zobrazovaného názvu.
Nepřidávejte:
- Externí požadavky HTTP.
- Databázové dotazy.
- Skenování souborů.
- Dlouhé smyčky.
- Blokování spánkových hovorů.
Poznámky k údržbě
Před změnou skriptu si vytvořte zálohu:
cp /PATH/TO/HUB/scripts/time.lua /PATH/TO/HUB/scripts/time.lua.bak
Pokud používáte Git:
cd /PATH/TO/HUB/scripts
git add time.lua
git commit -m "Update time.lua clock settings"
Při změně pouze prefixu, postfixu, formátu, intervalu nebo offsetu nejsou vyžadovány žádné změny logiky kódu.