Deze bibliotheek verzamelt Lua-scripts die zijn geschreven voor Verlihub-hubs. Elk script voegt een kleine hub-functie toe zonder de Verlihub C++-bron te wijzigen of een aangepaste plug-in te compileren.
Gebruik deze artikelen voor weergavebots, helperopdrachten, getimede berichten, vermeldingen in de gebruikerslijst, validatiehelpers en kleine automatisering. Houd zwaar werk buiten het hubproces en gebruik Lua alleen voor het hubgedrag dat binnen Verlihub moet worden uitgevoerd.
Doel van deze bibliotheek
De bibliotheek bestaat zodat een hub-eigenaar een script kan beoordelen, begrijpen wat het verandert, het naar de verwachte map kan kopiëren, de gedocumenteerde instellingen kan aanpassen, het kan laden, testen en het zonder giswerk weer kan uitschakelen.
In elk scriptartikel moet het volgende worden vermeld:
- Wat het script doet.
- Welke Verlihub-functie wordt gewijzigd of toegevoegd.
- Of het nu een bot, commando, timer, hook, gebruikerslijstinvoer of validatiehelper creëert.
- Waar het scriptbestand moet worden geplaatst.
- Hoe het script wordt geladen, opnieuw geladen, verwijderd of uitgeschakeld.
- Welke instellingen veilig kunnen worden bewerkt.
- Van welke Verlihub plug-in of hub-machtiging het script afhankelijk is.
- Bekende limieten, versieopmerkingen en productiewaarschuwingen.
Aanbevolen scriptstandaarden
Scripts in deze bibliotheek moeten klein, leesbaar en versiebeheerd blijven. Eén Lua-bestand zou één taak moeten uitvoeren. Combineer geen klokbot, regelopdracht, antispamcontrole en het opschonen van de database in één bestand, tenzij het artikel uitlegt waarom deze acties samen moeten worden uitgevoerd.
- Gebruik één hoofddoel per script.
- Plaats duidelijke opmerkingen bovenaan het bestand.
- Groepeer configureerbare waarden bovenaan.
- Hardcodeer privépaden niet tenzij het artikel ze uitlegt.
- Vermijd onnodige databaseschrijfbewerkingen.
- Vermijd het blokkeren van netwerkoproepen van hubgebeurtenissen.
- Vermijd zware lussen in login-, chat- of gebruikerslijsthooks.
- Maak het opstart- en afsluitgedrag duidelijk.
- Opdrachten voor het laden, opnieuw laden en verwijderen van documenten.
Voor productiehubs zijn kleinere scripts doorgaans eenvoudiger te debuggen, uit te schakelen en te vervangen dan één groot bestand dat niet-gerelateerd hubgedrag regelt.
Voorgestelde scriptkop
Begin elk script met een kort commentaarblok. De header moet de volgende operator vertellen wat het bestand is voordat het script een live hub raakt.
-- 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.
Voorgesteld scriptartikelformaat
Elk onderliggend artikel in deze sectie moet dezelfde vorm gebruiken, zodat scripts snel kunnen worden vergeleken en beoordeeld.
- Overzicht.
- Vereisten.
- Installatie.
- Configuratie.
- Het script laden.
- Testen.
- Lossen of uitschakelen.
- Problemen oplossen.
- Volledig script.
- Gerelateerde pagina's.
Scripts installeren
De exacte locatie is afhankelijk van het installatiepad Verlihub, maar aangepaste Lua-bestanden moeten in een map staan die eigendom is van de servicegebruiker die de hub uitvoert.
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
Plaats vervolgens elk script in die map:
/usr/local/etc/verlihub/lua/time.lua
Als uw service onder een andere gebruiker draait, wijzigt u de eigenaar naar dat account. Niet gebruiken chmod 777 /usr/local/etc/verlihub/lua. Lua-bestanden worden binnen het hubproces uitgevoerd, dus schrijftoegang behoort alleen toe aan vertrouwde beheerders.
Scripts laden en opnieuw laden
Lua-scripts vereisen dat de plug-in Verlihub Lua eerst wordt geïnstalleerd en ingeschakeld. Als de plug-in niet is geladen, raadpleegt u het bovenliggende installatieartikel Lua voordat u scriptbestanden laadt.
Handige plug-incontroles zijn onder meer:
!pluglist!lstplug
Gebruik een workflow met kleine wijzigingen bij het bewerken van een live script:
- Sla een back-up op van het huidige werkbestand.
- Wijzig één instelling of één functie.
- Laad alleen dat script opnieuw als uw build dit ondersteunt.
- Controleer de hubuitvoer en Verlihub-logboeken.
- Herstel snel als gebruikers fouten, dubbele bots of herhaalde chatuitvoer zien.
Als er geen opdrachten voor het opnieuw laden van scripts beschikbaar zijn in uw Verlihub-build, start u de plug-in Lua opnieuw op of laadt u deze opnieuw volgens de opdrachten voor plug-inbeheer van uw server.
Scripts veilig testen
Test Lua-scripts op een privéhub of een rustig onderhoudsvenster voordat u erop vertrouwt in de productie.
- Bevestig dat het script wordt geladen zonder syntaxisfouten.
- Bevestig dat de hoofdchat niet wordt overspoeld.
- Bevestig dat er geen dubbele bots of herhaalde vermeldingen in de gebruikerslijst ontstaan.
- Controleer of het zich correct gedraagt na het opnieuw laden.
- Controleer of het zich correct gedraagt na een herstart van de hub.
- Controleer of operators dit snel kunnen uitschakelen.
- Voor opdrachtscripts kunt u testen met normale gebruikers- en operatoraccounts.
- Voor getimede berichten of vermeldingen in de gebruikerslijst test u het interval zodat het script geen ruis of belasting veroorzaakt.
Veiligheidsopmerkingen bij de productie
Lua-code wordt uitgevoerd binnen het hubproces. Een slecht script kan van invloed zijn op chatten, inloggen, updates van gebruikerslijsten of het afsluiten van plug-ins.
Voorkomen:
- Oneindige lussen.
- Lange slaapjes in event handlers.
- Grote bestanden worden gelezen tijdens gebruikersgebeurtenissen.
- Externe HTTP-verzoeken blokkeren.
- Zware databasequery's via chat of login-hooks.
- Herhaalde uitzendingsberichten zonder grenzen.
- Scripts die niet netjes kunnen worden verwijderd.
De voorkeur geven aan:
- Behandelaars van kleine evenementen.
- Configuratiewaarden wissen.
- Conservatieve timers.
- Eenvoudige commandologica.
- Alleen loggen als het de operator nuttige informatie oplevert.
- Gemakkelijk terugdraaien.
Als een taak lang duurt, verplaats deze dan buiten Verlihub en laat Lua het resultaat activeren of weergeven.
Versiebeheer
Bewaar aangepaste scripts in Git indien mogelijk. Voor veel hubs is een kleine repository in de scriptdirectory voldoende.
cd /usr/local/etc/verlihub/lua
git init
git add .
git commit -m "Initial Verlihub Lua scripts"
Voordat u een productiescript bewerkt, controleert u wat er al is gewijzigd:
git status
git diff
Na het testen van de wijziging:
git add time.lua
git commit -m "Update time.lua clock display"
Dit geeft de volgende operator een wijzigingsgeschiedenis en een snel terugdraaipad.
Beschikbare scripts
time.lua Verlihub klokscript gebruikerslijst creëert een klein botachtig gebruikerslijstitem dat de huidige tijd weergeeft.
Gebruik het wanneer een hub een zichtbare klokinvoer wil zonder een afzonderlijk botproces of externe service uit te voeren. Het is het eerste onderhouden voorbeeld in deze bibliotheek en kan worden gebruikt als patroon voor andere display-georiënteerde scripts.
Meer scripts toevoegen
Nieuwe scripts moeten als onderliggende artikelen onder deze sectie worden toegevoegd en niet in deze indexpagina worden geplakt. Goede kandidaten zijn onder meer:
- Welkomstberichtscript.
- Herinneringsscript voor regels.
- Operator helper-opdrachtscript.
- Gepland aankondigingsscript.
- Weergavescript voor aantal gebruikers.
- Anti-spam helperscript.
- Hub-informatieopdrachtscript.
- Meldingsscript voor de onderhoudsmodus.
Elk nieuw artikel moet installatieopmerkingen, configuratiewaarden, teststappen, stappen voor het uitladen en de volledige scriptlijst bevatten.