Vytvořeno: 2026/07/02 19:41:27 America/Chicago
Od: admin

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.

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:

HodnotaVýznam
300Každých 5 minut.
600Každých 10 minut.
900Každých 15 minut.
1800Každých 30 minut.
3600Kaž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."
}

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 notices tabulka 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í.

Nadřazená Stránka