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.
Zalecana lokalizacja pliku
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 |
|---|---|
300 | Co 5 minut. |
600 | Co 10 minut. |
900 | Co 15 minut. |
1800 | Co 30 minut. |
3600 | Co 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."
}
Zalecane ustawienia produkcyjne
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
noticestabela 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.