IL auto-topic.lua gli script post configurano gli avvisi dell'hub sulla chat principale Verlihub a un intervallo prestabilito. Usalo per promemoria di regole, note di manutenzione, collegamenti di supporto, suggerimenti sui comandi e brevi messaggi della community che non necessitano di un bot esterno separato.
Mantieni questo script piccolo. Dovrebbe inviare messaggi brevi configurati e quindi restituire il controllo a Verlihub. Non aggiungere processi a lunga esecuzione, query di database, richieste HTTP esterne, scansioni di file o attese di blocco a questo script.
Cosa fa questo script
Lo script invia messaggi di chat principali automatici da un nome bot configurato o da un'identità hub.
Gli usi comuni includono:
- Pubblicazione di promemoria sulle regole dell'hub.
- Pubblicazione di siti Web o collegamenti di supporto.
- Annuncio della manutenzione programmata.
- Ricordare agli utenti i comandi disponibili.
- Condivisione dei collegamenti della comunità.
- Visualizzazione degli avvisi a rotazione.
- Pubblicazione di messaggi relativi all'ora del giorno.
Esempio di avviso della chat principale:
<HubNotice> Please review the hub rules with !rules before sharing or chatting.
Requisiti
Questo script richiede:
- Verlihub installato e funzionante.
- Il plugin Verlihub Lua è installato.
- Il plugin Lua abilitato in Verlihub.
- Autorizzazione a caricare e scaricare gli script Lua.
- Una directory di script scrivibile per i file Verlihub Lua.
Prima di caricare lo script, conferma che il plugin Lua è attivo:
!pluglist
Se il plugin Lua non è elencato, caricalo o abilitalo prima dall'articolo di configurazione principale Lua.
Posizione file consigliata
Utilizza una directory di script dedicata:
mkdir -p /PATH/TO/HUB/scripts
Posiziona lo script in:
/PATH/TO/HUB/scripts/auto-topic.lua
Per i sistemi di produzione, la directory deve essere scrivibile solo da amministratori fidati o dall'utente del servizio Verlihub. Non rendere la directory scrivibile da tutti.
Comandi di caricamento e scaricamento
Carica lo script:
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
Scarica lo script:
!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
Se modifichi lo script, scaricalo e caricalo di nuovo:
!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
Utilizza il percorso assoluto completo a meno che la configurazione del plug-in Verlihub Lua non supporti i percorsi relativi.
Codice di scrittura
-- 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
Opzioni di configurazione
botname
botname = "HubNotice"
Il nome mostrato prima dell'avviso automatico. Scegli un nome chiaro in modo che gli utenti comprendano che il messaggio contiene informazioni sull'hub automatizzato.
Esempi:
botname = "HubNotice"
botname = "RulesBot"
botname = "InfoBot"
botname = "Maintenance"
interval
interval = 900
Controlla la frequenza con cui lo script invia un avviso. Il valore previsto è in genere secondi, a seconda di come è configurato il timer Verlihub Lua nel tuo ambiente.
Valori consigliati:
| Valore | Senso |
|---|---|
300 | Ogni 5 minuti. |
600 | Ogni 10 minuti. |
900 | Ogni 15 minuti. |
1800 | Ogni 30 minuti. |
3600 | Ogni 60 minuti. |
Per i poli produttivi, 900 O 1800 è solitamente più sicuro di un breve intervallo. Evitare valori che rendano rumoroso l'hub:
interval = 10
Un avviso ogni 10 secondi è troppo aggressivo per la normale chat principale.
counter
counter = 0
Contatore interno utilizzato dallo script. Non modificarlo a meno che non si stia modificando la logica dello script.
notice_index
notice_index = 1
Traccia quale avviso dovrebbe essere inviato successivamente. Lascia questo a 1 a meno che tu non voglia che lo script inizi da un messaggio diverso.
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."
}
L'elenco dei messaggi che ruotano nella chat principale. Ogni avviso deve essere breve, utile e non distruttivo.
Esempi di buon avviso:
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."
}
Evita avvisi lunghi, ripetuti o aggressivi. È più probabile che gli utenti ignorino i messaggi automatici quando appaiono troppo spesso.
Configurazioni di esempio
Promemoria delle regole di base
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."
}
Avviso sul sito Web e sul supporto
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."
}
Avviso di manutenzione
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."
}
Avviso comunitario
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."
}
Impostazioni di produzione consigliate
Per la maggior parte degli hub, utilizzare un intervallo di 15 o 30 minuti:
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."
}
Ciò mantiene visibili gli avvisi senza inondare la chat. Per gli hub occupati, utilizzare:
interval = 3600
Per hub silenziosi, utilizzare:
interval = 1800
L'automazione della chat principale dovrebbe supportare la comunità, non interromperla.
Testare la sceneggiatura
Dopo aver caricato lo script, conferma che:
- Lo script viene caricato senza errori.
- L'avviso appare nella chat principale.
- Gli avvisi ruotano nell'ordine previsto.
- L'intervallo non è troppo aggressivo.
- Il nome del bot è chiaro.
- Lo script viene scaricato in modo pulito.
- Il ricaricamento dello script non crea timer duplicati o avvisi duplicati.
Testare prima con un intervallo breve, quindi modificarlo con l'intervallo di produzione.
Esempio di impostazione del test:
interval = 30
Dopo il test, modificalo di nuovo:
interval = 1800
Quindi ricaricare lo script.
Risoluzione dei problemi
Lo script non viene caricato
Verifica che il plugin Lua sia attivo:
!pluglist
Controlla che il percorso del file sia corretto:
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
Utilizzare il percorso assoluto se i percorsi relativi non funzionano.
Gli avvisi non vengono visualizzati
Controllo:
- Il plugin Lua è caricato.
- Il percorso dello script è corretto.
- La tua versione del plugin Verlihub Lua supporta la funzione timer.
- L'intervallo non è troppo alto durante il test.
- IL
noticesla tabella contiene almeno un messaggio.
Utilizzare temporaneamente:
interval = 30
Quindi ricarica lo script e attendi il prossimo avviso.
Gli avvisi vengono visualizzati troppo spesso
Aumentare l'intervallo.
interval = 1800
O:
interval = 3600
Evitare intervalli brevi in produzione.
Vengono visualizzati avvisi duplicati
Ciò in genere significa che lo script è stato caricato più di una volta o che una vecchia istanza non è stata scaricata correttamente.
Scarica lo script:
!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
Quindi caricalo di nuovo:
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
Se i duplicati continuano, riavviare il plug-in Lua o il servizio Verlihub durante una finestra di manutenzione.
Errori di script dopo la modifica degli avvisi
Controllare la sintassi Lua. Ogni riga di avviso deve terminare con una virgola tranne l'ultima riga, che può ometterla.
Corretto:
notices = {
"First notice.",
"Second notice.",
"Third notice."
}
Errato:
notices = {
"First notice."
"Second notice."
}
Nell'esempio errato manca una virgola dopo il primo messaggio.
Note sulla sicurezza
Questo script dovrebbe rimanere leggero. Non aggiungere:
- Richieste HTTP esterne.
- Interrogazioni del database.
- Scansione dei file.
- Anelli lunghi.
- Blocco delle chiamate per dormire.
- Elaborazione intensiva per utente.
Lo script dovrebbe ruotare solo gli avvisi configurati e inviarli a intervalli ragionevoli.
Note sulla manutenzione
Conserva un backup prima di modificare lo script:
cp /PATH/TO/HUB/scripts/auto-topic.lua /PATH/TO/HUB/scripts/auto-topic.lua.bak
Se usi Git:
cd /PATH/TO/HUB/scripts
git add auto-topic.lua
git commit -m "Update auto-topic.lua notices"
Quando si modifica solo il nome del bot, gli avvisi o l'intervallo, non sono richieste modifiche alla logica.
Regole suggerite per la scrittura degli avvisi
I buoni avvisi sono brevi e utili.
Raccomandato:
- Un'idea per avviso.
- Formulazione chiara.
- Nessuna punteggiatura ripetuta.
- Nessun messaggio tutto maiuscolo.
- Nessun post troppo frequente.
- Nessun paragrafo lungo nella chat principale.
Evitare:
- Pubblicazione ogni pochi secondi.
- Pubblicare ripetutamente lo stesso messaggio.
- Utilizzare gli avvisi solo come pubblicità.
- Invio di blocchi di regole di grandi dimensioni alla chat principale.
- Interrompere le conversazioni attive troppo spesso.