Utworzony: 2026/07/02 19:41:27 America/Chicago
Przez: admin

The auto-topic.lua skrypt publikuje skonfigurowane powiadomienia centrum na głównym czacie Verlihub w ustalonych odstępach czasu. Używaj go do przypomnień o regułach, notatek konserwacyjnych, łączy pomocy technicznej, wskazówek dotyczących poleceń i krótkich wiadomości społecznościowych, które nie wymagają osobnego zewnętrznego bota.

Zachowaj mały rozmiar tego skryptu. Powinien wysyłać krótkie skonfigurowane wiadomości, a następnie zwracać kontrolę pod numer Verlihub. Nie dodawaj do tego skryptu długotrwałych zadań, zapytań do bazy danych, zewnętrznych żądań HTTP, skanowania plików ani blokowań.

Co robi ten skrypt

Skrypt wysyła automatyczne wiadomości główne na czacie ze skonfigurowanej nazwy bota lub tożsamości centrum.

Typowe zastosowania obejmują:

  • Publikowanie przypomnień o zasadach centrum.
  • Publikowanie linków do stron internetowych lub pomocy technicznej.
  • Ogłaszanie zaplanowanej konserwacji.
  • Przypominanie użytkownikom o dostępnych poleceniach.
  • Udostępnianie linków społecznościowych.
  • Wyświetlanie rotacyjnych powiadomień.
  • Wysyłanie wiadomości o określonej porze dnia.

Przykładowe powiadomienie na czacie głównym:

<HubNotice> Please review the hub rules with !rules before sharing or chatting.

Wymagania

Ten skrypt wymaga:

  • Verlihub zainstalowany i działa.
  • Zainstalowana wtyczka Verlihub Lua.
  • Wtyczka Lua włączona w Verlihub.
  • Zezwolenie na ładowanie i rozładowywanie Lua skryptów.
  • Zapisywalny katalog skryptów dla plików Verlihub Lua.

Przed załadowaniem skryptu upewnij się, że wtyczka Lua jest aktywna:

!pluglist

Jeśli wtyczki Lua nie ma na liście, załaduj ją lub włącz najpierw z nadrzędnego artykułu instalacyjnego Lua.

Użyj dedykowanego katalogu skryptów:

mkdir -p /PATH/TO/HUB/scripts

Umieść skrypt pod adresem:

/PATH/TO/HUB/scripts/auto-topic.lua

W przypadku systemów produkcyjnych katalog powinien umożliwiać zapis tylko zaufanym administratorom lub użytkownikowi usługi Verlihub. Nie udostępniaj katalogu do zapisu dla wszystkich.

Polecenia ładowania i rozładowywania

Załaduj skrypt:

!luaload /PATH/TO/HUB/scripts/auto-topic.lua

Wyładuj skrypt:

!luaunload /PATH/TO/HUB/scripts/auto-topic.lua

Jeśli edytujesz skrypt, wyładuj go i załaduj ponownie:

!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
!luaload /PATH/TO/HUB/scripts/auto-topic.lua

Użyj pełnej ścieżki bezwzględnej, chyba że konfiguracja wtyczki Verlihub Lua obsługuje ścieżki względne.

Kod skryptu

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

Opcje konfiguracji

botname

botname = "HubNotice"

Nazwa wyświetlana przed automatycznym powiadomieniem. Wybierz jasną nazwę, aby użytkownicy zrozumieli, że wiadomość jest zautomatyzowaną informacją centrum.

Przykłady:

botname = "HubNotice"
botname = "RulesBot"
botname = "InfoBot"
botname = "Maintenance"

interval

interval = 900

Kontroluje częstotliwość wysyłania powiadomienia przez skrypt. Zamierzoną wartością są zwykle sekundy, w zależności od konfiguracji licznika czasu Verlihub Lua w Twoim środowisku.

Zalecane wartości:

WartośćOznaczający
300Co 5 minut.
600Co 10 minut.
900Co 15 minut.
1800Co 30 minut.
3600Co 60 minut.

W przypadku ośrodków produkcyjnych 900 Lub 1800 jest zwykle bezpieczniejsze niż krótka przerwa. Unikaj wartości, które powodują szum w koncentratorze:

interval = 10

Powiadomienie co 10 sekund jest zbyt agresywne dla normalnego głównego czatu.

counter

counter = 0

Licznik wewnętrzny używany przez skrypt. Nie zmieniaj tego, chyba że modyfikujesz logikę skryptu.

notice_index

notice_index = 1

Utwory, o których powiadomieniu należy wysłać jako następne. Zostaw to na 1 chyba że chcesz, aby skrypt zaczynał się od innej wiadomości.

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

Lista wiadomości zmienianych na czacie głównym. Każde powiadomienie powinno być krótkie, przydatne i nie zakłócać pracy.

Przykłady dobrych powiadomień:

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

Unikaj długich, powtarzających się lub agresywnych powiadomień. Użytkownicy chętniej ignorują automatyczne wiadomości, gdy pojawiają się zbyt często.

Przykładowe konfiguracje

Przypomnienie podstawowych zasad

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

Informacje dotyczące witryny internetowej i pomocy technicznej

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

Uwaga dotycząca konserwacji

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

Zawiadomienie społeczności

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

W przypadku większości węzłów użyj odstępu 15-minutowego lub 30-minutowego:

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

Dzięki temu powiadomienia są widoczne bez zalewania czatu. W przypadku ruchliwych węzłów użyj:

interval = 3600

W przypadku cichych koncentratorów użyj:

interval = 1800

Automatyzacja głównego czatu powinna wspierać społeczność, a nie ją zakłócać.

Testowanie skryptu

Po załadowaniu skryptu potwierdź, że:

  • Skrypt ładuje się bez błędów.
  • Powiadomienie pojawia się na czacie głównym.
  • Powiadomienia zmieniają się w oczekiwanej kolejności.
  • Interwał nie jest zbyt agresywny.
  • Nazwa bota jest jasna.
  • Skrypt ładuje się czysto.
  • Ponowne załadowanie skryptu nie powoduje utworzenia zduplikowanych liczników czasu ani zduplikowanych powiadomień.

Najpierw przetestuj z krótkim interwałem, a następnie zmień go na interwał produkcyjny.

Przykładowe ustawienie testu:

interval = 30

Po przetestowaniu zmień go z powrotem:

interval = 1800

Następnie załaduj ponownie skrypt.

Rozwiązywanie problemów

Skrypt nie ładuje się

Sprawdź, czy wtyczka Lua jest aktywna:

!pluglist

Sprawdź, czy ścieżka pliku jest poprawna:

!luaload /PATH/TO/HUB/scripts/auto-topic.lua

Użyj ścieżki bezwzględnej, jeśli ścieżki względne nie działają.

Powiadomienia nie pojawiają się

Sprawdzać:

  • Wtyczka Lua została załadowana.
  • Ścieżka skryptu jest poprawna.
  • Twoja wersja wtyczki Verlihub Lua obsługuje funkcję timera.
  • Odstęp nie jest zbyt długi podczas testowania.
  • The notices tabela zawiera co najmniej jedną wiadomość.

Tymczasowo użyj:

interval = 30

Następnie załaduj ponownie skrypt i poczekaj na następne powiadomienie.

Powiadomienia pojawiają się zbyt często

Zwiększ interwał.

interval = 1800

Lub:

interval = 3600

Unikaj krótkich interwałów w produkcji.

Pojawiają się zduplikowane powiadomienia

Zwykle oznacza to, że skrypt został załadowany więcej niż raz lub stara instancja nie została poprawnie wyładowana.

Wyładuj skrypt:

!luaunload /PATH/TO/HUB/scripts/auto-topic.lua

Następnie załaduj go ponownie:

!luaload /PATH/TO/HUB/scripts/auto-topic.lua

Jeśli duplikaty będą się powtarzać, zrestartuj wtyczkę Lua lub usługę Verlihub w oknie konserwacji.

Błędy skryptu po edycji uwag

Sprawdź składnię Lua. Każdy wiersz ostrzeżenia powinien kończyć się przecinkiem, z wyjątkiem ostatniego wiersza, który może go pominąć.

Prawidłowy:

notices = {
    "First notice.",
    "Second notice.",
    "Third notice."
}

Błędny:

notices = {
    "First notice."
    "Second notice."
}

W niepoprawnym przykładzie brakuje przecinka po pierwszej wiadomości.

Uwagi dotyczące bezpieczeństwa

Ten skrypt powinien pozostać lekki. Nie dodawaj:

  • Zewnętrzne żądania HTTP.
  • Zapytania do bazy danych.
  • Skanowanie plików.
  • Długie pętle.
  • Blokowanie połączeń usypiających.
  • Duże przetwarzanie na użytkownika.

Skrypt powinien jedynie zmieniać skonfigurowane powiadomienia i wysyłać je w rozsądnych odstępach czasu.

Uwagi dotyczące konserwacji

Zachowaj kopię zapasową przed zmianą skryptu:

cp /PATH/TO/HUB/scripts/auto-topic.lua /PATH/TO/HUB/scripts/auto-topic.lua.bak

Jeśli używasz Gita:

cd /PATH/TO/HUB/scripts
git add auto-topic.lua
git commit -m "Update auto-topic.lua notices"

Zmieniając tylko nazwę bota, powiadomienia lub interwał, nie są wymagane żadne zmiany logiczne.

Sugerowane zasady pisania zawiadomień

Dobre powiadomienia są krótkie i przydatne.

Zalecony:

  • Jeden pomysł na ogłoszenie.
  • Jasne sformułowanie.
  • Brak powtarzających się znaków interpunkcyjnych.
  • Żadnych wiadomości pisanych wielkimi literami.
  • Żadnego zbyt częstego publikowania.
  • Żadnych długich akapitów na czacie głównym.

Unikać:

  • Publikowanie co kilka sekund.
  • Wielokrotne wysyłanie tej samej wiadomości.
  • Używanie powiadomień wyłącznie jako reklam.
  • Wysyłanie dużych bloków reguł do głównego czatu.
  • Zbyt częste przerywanie aktywnych rozmów.

Strona Nadrzędna