Vytvořeno: 2026/07/02 19:41:27 America/Chicago
Od: admin
Upraveno: 2026/07/03 16:24:56 America/Chicago
Od: admin

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.

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

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

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

Nadřazená Stránka