Utworzony: 2026/07/02 19:41:27 America/Chicago
Przez: admin
Zmieniony: 2026/07/03 16:24:56 America/Chicago
Przez: admin

Ta biblioteka gromadzi skrypty Lua napisane dla hubów Verlihub. Każdy skrypt dodaje jedną małą funkcję huba bez zmieniania źródeł C++ Verlihub lub kompilowania niestandardowej wtyczki.

Używaj tych artykułów przy botach ekranowych, poleceniach pomocniczych, komunikatach czasowych, wpisach na listach użytkowników, pomocnikach walidacji i małej automatyzacji. Przechowuj ciężką pracę poza procesem huba i używaj Lua tylko do zachowania huba, które musi działać wewnątrz Verlihub.

Cel tej biblioteki

Biblioteka istnieje, więc właściciel huba może przejrzeć skrypt, zrozumieć, co w nim zmienia, skopiować go do oczekiwanego katalogu, dostosować udokumentowane ustawienia, załadować, przetestować i wyłączyć ponownie bez zgadywania.

Każdy artykuł skryptu powinien zawierać:

  • Co robi skrypt.
  • Którą funkcję Verlihub zmienia lub dodaje.
  • Niezależnie od tego, czy tworzy bota, polecenie, licznik czasu, hak, wpis na liście użytkowników, czy pomocnika sprawdzania poprawności.
  • Gdzie powinien zostać umieszczony plik skryptu.
  • Sposób ładowania, ponownego ładowania, rozładowywania lub wyłączania skryptu.
  • Które ustawienia można bezpiecznie edytować.
  • Od którego uprawnienia wtyczki Verlihub lub huba zależy skrypt.
  • Znane ograniczenia, uwagi do wersji i ostrzeżenia produkcyjne.

Skrypty w tej bibliotece powinny pozostać małe, czytelne i kontrolowane pod względem wersji. Jeden plik Lua powinien wykonać jedno zadanie. Nie łącz bota zegarowego, polecenia reguł, sprawdzania antyspamowego i czyszczenia bazy danych w jednym pliku, chyba że w artykule wyjaśniono, dlaczego te działania muszą być dostarczane razem.

  • Użyj jednego głównego celu w każdym skrypcie.
  • Umieść jasne komentarze na górze pliku.
  • Grupuj konfigurowalne wartości u góry.
  • Nie koduj na stałe ścieżek prywatnych, chyba że artykuł je wyjaśni.
  • Unikaj niepotrzebnych zapisów do bazy danych.
  • Unikaj blokowania połączeń sieciowych ze zdarzeń huba.
  • Unikaj ciężkich pętli wewnątrz zaczepów logowania, czatu lub listy użytkowników.
  • Wyjaśnij zachowanie podczas uruchamiania i zamykania systemu.
  • Dokumentuj polecenia ładowania, ponownego ładowania i rozładowywania.

W przypadku centrów produkcyjnych mniejsze skrypty są zwykle łatwiejsze do debugowania, wyłączania i zastępowania niż jeden duży plik kontrolujący niepowiązane zachowanie centrum.

Sugerowany nagłówek skryptu

Rozpocznij każdy skrypt krótkim blokiem komentarza. Nagłówek powinien poinformować następnego operatora, jaki jest plik, zanim skrypt dotknie aktywnego centrum.

-- 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.

Sugerowany format artykułu w skrypcie

Każdy artykuł podrzędny w tej sekcji powinien mieć ten sam kształt, aby można było szybko porównywać i przeglądać skrypty.

  1. Przegląd.
  2. Wymagania.
  3. Instalacja.
  4. Konfiguracja.
  5. Ładowanie skryptu.
  6. Testowanie.
  7. Rozładunek lub wyłączenie.
  8. Rozwiązywanie problemów.
  9. Pełny scenariusz.
  10. Powiązane strony.

Instalowanie skryptów

Dokładna lokalizacja zależy od ścieżki instalacji Verlihub, ale niestandardowe pliki Lua powinny znajdować się w katalogu należącym do użytkownika usługi uruchamiającego huba.

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

Następnie umieść każdy skrypt w tym katalogu:

/usr/local/etc/verlihub/lua/time.lua

Jeśli Twoja usługa działa na koncie innego użytkownika, zmień właściciela na to konto. Nie używać chmod 777 /usr/local/etc/verlihub/lua. Pliki Lua działają w procesie koncentrującym, dlatego dostęp do zapisu mają tylko zaufani administratorzy.

Ładowanie i ponowne ładowanie skryptów

Skrypty Lua wymagają najpierw zainstalowania i włączenia wtyczki Verlihub Lua. Jeśli wtyczka nie jest załadowana, przed załadowaniem plików skryptów przejrzyj nadrzędny artykuł instalacyjny Lua.

Przydatne kontrole wtyczek obejmują:

  • !pluglist
  • !lstplug

Podczas edytowania skryptu na żywo użyj przepływu pracy z małymi zmianami:

  1. Zapisz kopię zapasową bieżącego pliku roboczego.
  2. Zmień jedno ustawienie lub jedną funkcję.
  3. Załaduj ponownie tylko ten skrypt, jeśli Twoja kompilacja go obsługuje.
  4. Sprawdź dane wyjściowe huba i dzienniki Verlihub.
  5. Szybko przywróć zmiany, jeśli użytkownicy zobaczą błędy, zduplikowane boty lub powtarzające się wyniki czatu.

Jeśli polecenia przeładowania skryptu nie są dostępne w kompilacji Verlihub, uruchom ponownie lub załaduj ponownie wtyczkę Lua zgodnie z poleceniami zarządzania wtyczkami na serwerze.

Bezpieczne testowanie skryptów

Przetestuj skrypty Lua w prywatnym hubie lub w oknie cichej konserwacji, zanim zaczniesz polegać na nich w środowisku produkcyjnym.

  • Potwierdź, że skrypt ładuje się bez błędów składniowych.
  • Upewnij się, że nie zalewa głównego czatu.
  • Upewnij się, że nie tworzy zduplikowanych botów ani powtarzających się wpisów na liście użytkowników.
  • Sprawdź, czy zachowuje się poprawnie po ponownym załadowaniu.
  • Sprawdź, czy zachowuje się poprawnie po ponownym uruchomieniu huba.
  • Upewnij się, że operatorzy mogą to szybko wyłączyć.
  • W przypadku skryptów poleceń przetestuj na zwykłych użytkownikach i kontach operatorów.
  • W przypadku wiadomości o określonym czasie lub wpisów na liście użytkowników przetestuj interwał, aby skrypt nie powodował zakłóceń ani nie ładował się.

Uwagi dotyczące bezpieczeństwa produkcji

Kod Lua działa w procesie centrum. Zły skrypt może mieć wpływ na czat, logowanie, aktualizacje listy użytkowników lub zamknięcie wtyczki.

Unikać:

  • Nieskończone pętle.
  • Długo śpi wewnątrz procedur obsługi zdarzeń.
  • Odczyt dużych plików podczas zdarzeń użytkownika.
  • Blokowanie zewnętrznych żądań HTTP.
  • Ciężkie zapytania do bazy danych z haków czatu lub logowania.
  • Powtarzające się wiadomości rozgłoszeniowe bez ograniczeń.
  • Skrypty, których nie można rozładować w sposób czysty.

Woleć:

  • Obsługa małych zdarzeń.
  • Wyczyść wartości konfiguracyjne.
  • Konserwatywne timery.
  • Prosta logika poleceń.
  • Rejestrowanie tylko wtedy, gdy dostarcza operatorowi przydatnych informacji.
  • Łatwe wycofanie.

Jeśli zadanie jest długotrwałe, przenieś je poza Verlihub i pozwól Lua uruchomić lub wyświetlić wynik.

Kontrola wersji

Jeśli to możliwe, przechowuj niestandardowe skrypty w Git. Dla wielu hubów wystarczy małe repozytorium w katalogu skryptów.

cd /usr/local/etc/verlihub/lua
git init
git add .
git commit -m "Initial Verlihub Lua scripts"

Przed edycją skryptu produkcyjnego sprawdź, co zostało już zmienione:

git status
git diff

Po przetestowaniu zmiany:

git add time.lua
git commit -m "Update time.lua clock display"

Daje to następnemu operatorowi historię zmian i szybką ścieżkę wycofania.

Dostępne skrypty

time.lua Verlihub skrypt zegara listy użytkowników tworzy mały wpis na liście użytkowników przypominający bota, który wyświetla aktualny czas.

Użyj go, gdy hub potrzebuje widocznego wpisu zegara bez uruchamiania osobnego procesu bota lub usługi zewnętrznej. Jest to pierwszy utrzymywany przykład w tej bibliotece i może być używany jako wzorzec dla innych skryptów zorientowanych na wyświetlanie.

Dodawanie kolejnych skryptów

Nowe skrypty należy dodawać jako artykuły podrzędne w tej sekcji, a nie wklejać do tej strony indeksu. Dobrzy kandydaci to m.in.:

  • Skrypt wiadomości powitalnej.
  • Skrypt przypominający o zasadach.
  • Skrypt poleceń pomocnika operatora.
  • Zaplanowany skrypt ogłoszenia.
  • Skrypt wyświetlania liczby użytkowników.
  • Skrypt pomocniczy antyspamowy.
  • Skrypt poleceń informacji o centrum.
  • Skrypt powiadamiający o trybie konserwacji.

Każdy nowy artykuł powinien zawierać uwagi dotyczące instalacji, wartości konfiguracyjne, kroki testowe, kroki usuwania i pełną listę skryptów.

Powiązane Strony

Strona Nadrzędna