Tato knihovna shromažďuje skripty Lua napsané pro huby Verlihub. Každý skript přidává jednu malou funkci hubu, aniž by měnil zdroj C++ Verlihub nebo kompiloval vlastní plugin.
Tyto články použijte pro zobrazení robotů, pomocných příkazů, časovaných zpráv, položek seznamu uživatelů, pomocníků pro ověření a malé automatizace. Udržujte těžkou práci mimo proces hubu a používejte Lua pouze pro chování hubu, které musí běžet uvnitř Verlihub.
Účel této knihovny
Knihovna existuje, takže vlastník hubu může zkontrolovat skript, pochopit, co se mění, zkopírovat jej do očekávaného adresáře, upravit zdokumentovaná nastavení, načíst jej, otestovat a znovu zakázat bez dohadů.
Každý článek skriptu by měl uvádět:
- Co dělá skript.
- Kterou vlastnost Verlihub mění nebo přidává.
- Ať už vytvoří robota, příkaz, časovač, háček, položku seznamu uživatelů nebo pomocníka pro ověření.
- Kde má být umístěn soubor skriptu.
- Jak se skript načítá, znovu načítá, uvolňuje nebo deaktivuje.
- Která nastavení lze bezpečně upravovat.
- Na kterém Verlihub oprávnění pluginu nebo huby závisí skript.
- Známé limity, poznámky k verzi a produkční varování.
Doporučené standardy skriptů
Skripty v této knihovně by měly zůstat malé, čitelné a řízené verzí. Jeden soubor Lua by měl dělat jednu práci. Nesměšujte robota hodin, příkaz pravidel, kontrolu proti spamu a vyčištění databáze do jednoho souboru, pokud článek nevysvětlí, proč se tyto akce musí dodávat společně.
- Pro každý skript použijte jeden hlavní účel.
- Umístěte jasné komentáře na začátek souboru.
- Seskupit konfigurovatelné hodnoty v horní části.
- Nekódujte napevno soukromé cesty, pokud je článek nevysvětluje.
- Vyhněte se zbytečným zápisům do databáze.
- Vyhněte se blokování síťových hovorů z událostí centra.
- Vyhněte se těžkým smyčkám uvnitř háčků pro přihlášení, chat nebo seznam uživatelů.
- Ujasněte si chování při spouštění a vypínání.
- Příkazy pro načtení, opětovné načtení a vyjmutí dokumentu.
Pro produkční centra je obvykle jednodušší ladit, zakázat a nahradit menší skripty než jeden velký soubor, který řídí nesouvisející chování centra.
Doporučené záhlaví skriptu
Spusťte každý skript krátkým blokem komentáře. Hlavička by měla dalšímu operátorovi sdělit, o jaký soubor jde, než se skript dotkne živého centra.
-- Script: time.lua
-- Purpose: Displays a clock-like bot entry in the Verlihub user list.
-- Scope: User-list display only.
-- Author: PWiAM
-- Notes: Test on a private hub before production use.
Doporučený formát článku skriptu
Každý podřízený článek v této sekci by měl mít stejný tvar, aby bylo možné skripty rychle porovnávat a kontrolovat.
- Přehled.
- Požadavky.
- Instalace.
- Konfigurace.
- Načítání skriptu.
- Testování.
- Vykládání nebo deaktivace.
- Odstraňování problémů.
- Úplný scénář.
- Související stránky.
Instalace skriptů
Přesné umístění závisí na instalační cestě Verlihub, ale vlastní soubory Lua by měly být umístěny v adresáři vlastněném uživatelem služby, který provozuje rozbočovač.
sudo mkdir -p /usr/local/etc/verlihub/lua
sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod 750 /usr/local/etc/verlihub/lua
Poté umístěte každý skript do tohoto adresáře:
/usr/local/etc/verlihub/lua/time.lua
Pokud vaše služba běží pod jiným uživatelem, změňte vlastníka na tento účet. Nepoužívejte chmod 777 /usr/local/etc/verlihub/lua. Lua soubory běží uvnitř procesu hubu, takže přístup pro zápis náleží pouze důvěryhodným správcům.
Načítání a opětovné načítání skriptů
Skripty Lua vyžadují nejprve instalaci a povolení pluginu Verlihub Lua. Pokud není plugin načten, přečtěte si před načtením souborů skriptů článek o nastavení nadřazeného Lua.
Mezi užitečné kontroly pluginů patří:
!pluglist!lstplug
Při úpravě živého skriptu použijte pracovní postup malých změn:
- Uložte zálohu aktuálního pracovního souboru.
- Změňte jedno nastavení nebo jednu funkci.
- Znovu načtěte pouze tento skript, pokud jej vaše sestavení podporuje.
- Zkontrolujte výstup náboje a protokoly Verlihub.
- Vraťte se rychle, pokud uživatelé vidí chyby, duplicitní roboty nebo opakovaný výstup chatu.
Pokud ve vašem sestavení Verlihub nejsou k dispozici příkazy pro opětovné načtení skriptu, restartujte nebo znovu načtěte zásuvný modul Lua podle příkazů správy zásuvných modulů vašeho serveru.
Bezpečné testování skriptů
Otestujte skripty Lua v soukromém centru nebo v tichém okně údržby, než se na ně spolehnete ve výrobě.
- Potvrďte načtení skriptu bez syntaktických chyb.
- Potvrďte, že nezaplavuje hlavní chat.
- Potvrďte, že nevytváří duplicitní roboty nebo opakované záznamy v seznamu uživatelů.
- Po opětovném načtení zkontrolujte, zda se chová správně.
- Potvrďte, že se po restartu huby chová správně.
- Potvrďte, že jej operátoři mohou rychle deaktivovat.
- Příkazové skripty otestujte s běžnými uživateli a účty operátora.
- U časovaných zpráv nebo položek seznamu uživatelů otestujte interval, aby skript nevytvářel šum nebo se nezatěžoval.
Výrobní bezpečnostní poznámky
Kód Lua běží uvnitř procesu hubu. Špatný skript může ovlivnit chat, přihlášení, aktualizace seznamu uživatelů nebo vypnutí pluginu.
Vyhněte se:
- Nekonečné smyčky.
- Dlouhé spánek uvnitř obslužných programů událostí.
- Čtení velkých souborů během uživatelských událostí.
- Blokování externích požadavků HTTP.
- Těžké databázové dotazy z chatu nebo přihlášení.
- Opakovaně vysílané zprávy bez omezení.
- Skripty, které nelze čistě vyjmout.
Preferuji:
- Obsluha malých událostí.
- Vymazat konfigurační hodnoty.
- Konzervativní časovače.
- Jednoduchá příkazová logika.
- Protokolování pouze tehdy, když poskytuje operátorovi užitečné informace.
- Snadné vrácení zpět.
Pokud je úloha dlouhotrvající, přesuňte ji mimo Verlihub a nechte Lua spustit nebo zobrazit výsledek.
Kontrola verzí
Pokud je to možné, ponechejte si vlastní skripty v Gitu. Pro mnoho hubů stačí malé úložiště v adresáři skriptů.
cd /usr/local/etc/verlihub/lua
git init
git add .
git commit -m "Initial Verlihub Lua scripts"
Před úpravou produkčního skriptu zkontrolujte, co se již změnilo:
git status
git diff
Po otestování změny:
git add time.lua
git commit -m "Update time.lua clock display"
To poskytuje dalšímu operátorovi historii změn a rychlou cestu vrácení.
Dostupné skripty
time.lua Verlihub skript hodin seznamu uživatelů vytvoří malou položku v seznamu uživatelů jako bot, která zobrazuje aktuální čas.
Použijte jej, když hub chce viditelný záznam hodin, aniž by spouštěl samostatný proces bota nebo externí službu. Je to první udržovaný příklad v této knihovně a lze jej použít jako vzor pro další skripty orientované na zobrazení.
Přidání dalších skriptů
Nové skripty by měly být přidány jako podřízené články do této sekce, nikoli vloženy do této stránky indexu. Mezi dobré kandidáty patří:
- Skript uvítací zprávy.
- Skript pro připomenutí pravidel.
- Příkazový skript pomocníka operátora.
- Skript plánovaného oznámení.
- Skript zobrazení počtu uživatelů.
- Pomocný skript proti spamu.
- Příkazový skript informací o centru.
- Skript upozornění na režim údržby.
Každý nový článek by měl obsahovat poznámky k instalaci, konfigurační hodnoty, testovací kroky, kroky uvolnění a úplný výpis skriptů.