The auto-topic.lua skript zasílá oznámení nakonfigurovaného centra do hlavního chatu Verlihub v nastaveném intervalu. Použijte jej pro připomenutí pravidel, poznámky k údržbě, odkazy na podporu, rady k příkazům a krátké zprávy komunity, které nepotřebují samostatného externího robota.
Udržujte tento skript malý. Měl by odesílat krátké nakonfigurované zprávy a poté vrátit řízení na Verlihub. Nepřidávejte do tohoto skriptu dlouhotrvající úlohy, databázové dotazy, externí požadavky HTTP, skenování souborů ani blokování čekání.
Co tento skript dělá
Skript automaticky odesílá zprávy hlavního chatu z nakonfigurovaného jména bota nebo identity hubu.
Mezi běžné použití patří:
- Odesílání připomenutí pravidel centra.
- Zveřejňování webových stránek nebo odkazů na podporu.
- Oznámení plánované údržby.
- Připomíná uživatelům dostupné příkazy.
- Sdílení odkazů komunity.
- Zobrazování rotujících upozornění.
- Odesílání zpráv podle denní doby.
Příklad hlavního oznámení chatu:
<HubNotice> Please review the hub rules with !rules before sharing or chatting.
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/auto-topic.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/auto-topic.lua
Uvolněte skript:
!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
Pokud skript upravíte, uvolněte jej a znovu načtěte:
!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
Použijte úplnou absolutní cestu, pokud vaše konfigurace pluginu Verlihub Lua nepodporuje relativní cesty.
Kód skriptu
-- Script: auto-topic.lua
-- Purpose: Sends rotating automatic notices to Verlihub main chat.
-- Scope: Lightweight hub notices only.
-- Notes: Keep interval reasonable to avoid chat spam.
botname = "HubNotice"
interval = 900
counter = 0
notice_index = 1
notices = {
"Welcome to the hub. Please read the rules with !rules.",
"Need help? Use !help or contact an operator.",
"Visit our website for updates, guides, and hub information.",
"Keep main chat respectful and avoid spam or repeated messages."
}
function SendNotice()
if notices[notice_index] == nil then
notice_index = 1
end
VH:SendToAll("<" .. botname .. "> " .. notices[notice_index])
notice_index = notice_index + 1
if notice_index > table.getn(notices) then
notice_index = 1
end
end
function OnTimer()
counter = counter + 1
if counter >= interval then
counter = 0
SendNotice()
end
end
Možnosti konfigurace
botname
botname = "HubNotice"
Jméno zobrazené před automatickým upozorněním. Zvolte jasný název, aby uživatelé pochopili, že zpráva je automatizovaná informace centra.
Příklady:
botname = "HubNotice"
botname = "RulesBot"
botname = "InfoBot"
botname = "Maintenance"
interval
interval = 900
Řídí, jak často skript odesílá upozornění. Zamýšlená hodnota je obvykle v sekundách, v závislosti na tom, jak je ve vašem prostředí nakonfigurován časovač Lua.
Doporučené hodnoty:
| Hodnota | Význam |
|---|---|
300 | Každých 5 minut. |
600 | Každých 10 minut. |
900 | Každých 15 minut. |
1800 | Každých 30 minut. |
3600 | Každých 60 minut. |
Pro výrobní centra, 900 nebo 1800 je obvykle bezpečnější než krátký interval. Vyhněte se hodnotám, které způsobují hlučnost rozbočovače:
interval = 10
Upozornění každých 10 sekund je pro normální hlavní chat příliš agresivní.
counter
counter = 0
Interní počítadlo používané skriptem. Toto neměňte, pokud neupravujete logiku skriptu.
notice_index
notice_index = 1
Sleduje, které oznámení má být odesláno jako další. Nechte to na 1 pokud nechcete, aby skript začínal od jiné zprávy.
notices
notices = {
"Welcome to the hub. Please read the rules with !rules.",
"Need help? Use !help or contact an operator.",
"Visit our website for updates, guides, and hub information.",
"Keep main chat respectful and avoid spam or repeated messages."
}
Seznam zpráv, které rotují v hlavním chatu. Každé oznámení by mělo být krátké, užitečné a nerušící.
Příklady dobrého upozornění:
notices = {
"Use !rules to view hub rules.",
"Use !help to see available commands.",
"Operators are marked in the user list if you need assistance.",
"Please keep main chat friendly and on topic."
}
Vyhněte se dlouhým, opakovaným nebo agresivním upozorněním. Uživatelé s větší pravděpodobností ignorují automatické zprávy, když se objevují příliš často.
Příklad konfigurace
Připomenutí základních pravidel
botname = "RulesBot"
interval = 1800
notices = {
"Please read the hub rules with !rules.",
"Do not spam main chat or repeat the same message.",
"Respect other users and follow operator instructions."
}
Webové stránky a upozornění na podporu
botname = "InfoBot"
interval = 3600
notices = {
"Visit the website for hub guides, updates, and support.",
"Need help? Use !help or contact an operator.",
"Check the articles section for Verlihub setup notes and Lua scripts."
}
Upozornění na údržbu
botname = "Maintenance"
interval = 900
notices = {
"Scheduled maintenance may occur during low-traffic hours.",
"If the hub disconnects during maintenance, reconnect after a few minutes.",
"Check the website for maintenance updates."
}
Oznámení komunity
botname = "Community"
interval = 1800
notices = {
"Welcome to the hub. Keep chat friendly and helpful.",
"Use main chat for general discussion. Contact operators for support issues.",
"Invite trusted users and help keep the hub useful."
}
Doporučená výrobní nastavení
Pro většinu hubů použijte 15minutový nebo 30minutový interval:
botname = "HubNotice"
interval = 1800
notices = {
"Welcome to the hub. Use !rules to review the hub rules.",
"Need help? Use !help or contact an operator.",
"Keep main chat respectful and avoid spam."
}
Díky tomu zůstanou oznámení viditelná, aniž by došlo k zahlcení chatu. Pro rušné uzly použijte:
interval = 3600
Pro tiché náboje použijte:
interval = 1800
Hlavní automatizace chatu by měla komunitu podporovat, ne ji rušit.
Testování skriptu
Po načtení skriptu potvrďte, že:
- Skript se načte bez chyb.
- Upozornění se objeví v hlavním chatu.
- Oznámení se střídají v očekávaném pořadí.
- Interval není příliš agresivní.
- Jméno robota je jasné.
- Skript se načte čistě.
- Opětovné načtení skriptu nevytváří duplicitní časovače ani duplicitní oznámení.
Nejprve otestujte v krátkém intervalu a poté jej změňte na výrobní interval.
Příklad nastavení testu:
interval = 30
Po testování jej změňte zpět:
interval = 1800
Poté skript znovu načtěte.
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/auto-topic.lua
Pokud relativní cesty nefungují, použijte absolutní cestu.
Upozornění se nezobrazují
Kontrola:
- Plugin Lua je načten.
- Cesta skriptu je správná.
- Vaše verze pluginu Verlihub Lua podporuje funkci časovače.
- Interval při testování není příliš vysoký.
- The
noticestabulka obsahuje alespoň jednu zprávu.
Dočasně použít:
interval = 30
Poté znovu načtěte skript a počkejte na další upozornění.
Upozornění se objevují příliš často
Zvyšte interval.
interval = 1800
nebo:
interval = 3600
V produkci nepoužívejte krátké intervaly.
Objeví se duplicitní oznámení
To obvykle znamená, že skript byl načten více než jednou nebo se stará instance neuvolnila správně.
Uvolněte skript:
!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
Poté jej znovu načtěte:
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
Pokud duplikáty přetrvávají, restartujte během okna údržby plugin Lua nebo službu Verlihub.
Chyby skriptu po úpravách oznámení
Zkontrolujte syntaxi Lua. Každý řádek upozornění by měl končit čárkou kromě posledního řádku, který jej může vynechat.
Opravit:
notices = {
"First notice.",
"Second notice.",
"Third notice."
}
Nesprávný:
notices = {
"First notice."
"Second notice."
}
V nesprávném příkladu chybí za první zprávou čárka.
Bezpečnostní poznámky
Tento skript by měl zůstat lehký. Nepřidávejte:
- Externí požadavky HTTP.
- Databázové dotazy.
- Skenování souborů.
- Dlouhé smyčky.
- Blokování spánkových hovorů.
- Náročné zpracování na uživatele.
Skript by měl pouze otáčet nakonfigurovaná oznámení a odesílat je v přiměřeném intervalu.
Poznámky k údržbě
Před změnou skriptu si vytvořte zálohu:
cp /PATH/TO/HUB/scripts/auto-topic.lua /PATH/TO/HUB/scripts/auto-topic.lua.bak
Pokud používáte Git:
cd /PATH/TO/HUB/scripts
git add auto-topic.lua
git commit -m "Update auto-topic.lua notices"
Při změně pouze názvu robota, upozornění nebo intervalu nejsou vyžadovány žádné logické změny.
Doporučená pravidla pro psaní oznámení
Dobrá upozornění jsou krátká a užitečná.
Doporučeno:
- Jeden nápad za upozornění.
- Jasná formulace.
- Žádná opakovaná interpunkce.
- Žádné velké zprávy.
- Žádné příliš časté zveřejňování.
- Žádné dlouhé odstavce v hlavním chatu.
Vyhněte se:
- Zveřejňování každých pár sekund.
- Opakované odesílání stejné zprávy.
- Používání oznámení pouze jako reklamy.
- Odesílání velkých bloků pravidel do hlavního chatu.
- Příliš časté přerušování aktivních konverzací.