Skrypt time.lua tworzy mały wpis na liście użytkowników, którego nazwa zmienia się, aby pokazać bieżący czas. Użyj go, gdy hub Verlihub potrzebuje widocznego znacznika strefy czasowej dla użytkowników międzynarodowych, pokojów regionalnych lub operatorów koordynujących pracę w różnych strefach czasowych.
Skrypt nie wymaga osobnego procesu zewnętrznego bota. Wykorzystuje wtyczkę Lua Verlihub do tworzenia wpisu przypominającego bota na liście użytkowników huba. Wpis zegara może wyglądać następująco:
!_US_06:30:00PM
Przed załadowaniem skryptu możesz zmienić przedrostek, postfiks, format czasu, interwał aktualizacji i przesunięcie strefy czasowej.
Co robi ten skrypt
Skrypt buduje nazwę wyświetlaną z trzech części:
prefix + current time + postfix
Przykładowe wyjście:
!_US_06:30:00PM
Widoczny wpis na liście użytkowników jest aktualizowany zgodnie z zegarem, więc wyświetlany czas pozostaje aktualny.
Użyj tego skryptu do:
- Pokazywanie strefy czasowej huba.
- Wyświetlanie zegara regionalnego.
- Pomaganie użytkownikom międzynarodowym w koordynowaniu czasu.
- Tworzenie prostego znacznika wizualnego na liście użytkowników.
- Dodanie małego bota narzędziowego bez uruchamiania zewnętrznego oprogramowania.
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/time.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/time.lua
Wyładuj skrypt:
!luaunload /PATH/TO/HUB/scripts/time.lua
Jeśli edytujesz skrypt, wyładuj go i załaduj ponownie:
!luaunload /PATH/TO/HUB/scripts/time.lua
!luaload /PATH/TO/HUB/scripts/time.lua
Użyj pełnej ścieżki bezwzględnej, chyba że konfiguracja wtyczki Verlihub Lua obsługuje ścieżki względne.
Kod skryptu
name = ''
class = 3
description = 'Time Bot: US'
speed = '100'
email = ''
share = '0'
prefix = '!_US_'
postfix = ''
interval = 10
counter = 0
format = "%I:%M:%S%p"
offset = -5
function GetTime()
return os.date(format, os.time() + offset * 60 * 60)
end
function GetName()
time = GetTime()
return prefix..time..postfix
end
Opcje konfiguracji
name
name = ''
Podstawowa wartość nazwy wpisu przypominającego bota. W tym skrypcie widoczna nazwa jest generowana przez GetName(), Więc name zazwyczaj może pozostać pusty.
class
class = 3
Kontroluje wyświetlaną klasę lub poziom profilu wpisu przypominającego bota. Dokładne znaczenie wartości klas zależy od konfiguracji huba. W wielu konfiguracjach hubów wyższe numery klas reprezentują wyższe role użytkowników.
Użyj wartości klasy, która pasuje do sposobu, w jaki wpis zegara ma być wyświetlany na liście użytkowników.
description
description = 'Time Bot: US'
Opis pokazany dla wpisu przypominającego bota. Użyj tego, aby wyjaśnić, co reprezentuje wpis.
description = 'Time Bot: US'
description = 'Time Bot: UTC'
description = 'Hub Clock'
description = 'Server Time'
speed
speed = '100'
Wartość szybkości połączenia wyświetlana dla wpisu przypominającego bota. Jest to głównie kosmetyka. Nie kontroluje częstotliwości aktualizacji skryptu.
email = ''
Pole e-mail wyświetlane dla wpisu przypominającego bota. Pozostaw to pole puste, chyba że chcesz wyświetlić adres kontaktowy.
share
share = '0'
Rozmiar udziału wyświetlany dla wpisu przypominającego bota. W przypadku bota zegarowego 0 jest właściwe, ponieważ nie jest prawdziwym użytkownikiem udostępniającym pliki.
prefix
prefix = '!_US_'
Tekst umieszczony przed wygenerowanym czasem. Ułatwia to identyfikację zegara na liście użytkowników.
prefix = '!_US_'
prefix = '!_UTC_'
prefix = '[TIME] '
prefix = 'Clock_'
Wybierz prefiks, który będzie wyraźnie sortowany na liście użytkowników huba.
postfix
postfix = ''
Tekst umieszczony po wygenerowanym czasie.
postfix = ''
postfix = '_EST'
postfix = '_UTC'
postfix = ' HubTime'
interval
interval = 10
Kontroluje częstotliwość aktualizacji skryptu, zwykle w sekundach. Zachowaj rozsądny odstęp. W przypadku wpisu na liście użytkowników huba aktualizacja co sekundę jest zwykle niepotrzebna.
10: przydatne w przypadku widocznego zegara sekundowego.30: dobra równowaga dla wielu hubów.60: najlepsze dla zegarów minutowych.
Jeśli Twój format nie pokazuje sekund, użyj 60.
format = "%I:%M%p"
interval = 60
counter
counter = 0
Licznik wewnętrzny używany przez skrypt. Nie zmieniaj tego, chyba że modyfikujesz logikę skryptu.
format
format = "%I:%M:%S%p"
Kontroluje sposób wyświetlania czasu. Używa Lua os.date formatowanie. Domyślny format wyświetla czas 12-godzinny z sekundami i AM/PM.
Przykładowe wyjście:
06:30:00PM
Typowe formaty:
format = "%I:%M:%S%p" -- 06:30:00PM
format = "%I:%M%p" -- 06:30PM
format = "%H:%M:%S" -- 18:30:00
format = "%H:%M" -- 18:30
format = "%Y-%m-%d %H:%M" -- 2026-07-02 18:30
W przypadku wpisów na liście użytkowników krótsze formaty są zwykle łatwiejsze do odczytania.
offset
offset = -5
Różnica strefy czasowej w stosunku do czasu serwera, w godzinach. Skrypt oblicza czas za pomocą:
os.time() + offset * 60 * 60
Przykłady:
offset = 0 -- same as server time
offset = -5 -- five hours behind server time
offset = 1 -- one hour ahead of server time
offset = 5.5 -- five and a half hours ahead, if fractional offsets work in your Lua environment
Jest to stałe przesunięcie. Nie obsługuje automatycznie reguł czasu letniego, chyba że czas serwera i przesunięcie zostaną dostosowane. W przypadku zmian czasu letniego zaktualizuj przesunięcie w razie potrzeby.
Przykładowe konfiguracje
Styl czasu wschodniego w USA
description = 'Time Bot: US Eastern'
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5
Przykładowy wyświetlacz:
!_US_06:30PM
Zegar UTC
description = 'Time Bot: UTC'
prefix = '!_UTC_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0
Przykładowy wyświetlacz:
!_UTC_23:30
24-godzinny zegar huba
description = 'Hub Clock'
prefix = '!_TIME_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0
Przykładowy wyświetlacz:
!_TIME_18:30
Zalecane ustawienia produkcyjne
W przypadku większości hubów używaj zegara minutowego:
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5
Ogranicza to niepotrzebne aktualizacje, zachowując jednocześnie czytelność zegara.
Używaj sekund tylko wtedy, gdy chcesz uzyskać efekt zegara na żywo:
interval = 10
format = "%I:%M:%S%p"
Jednosekundowy interwał aktualizacji jest zwykle niepotrzebny w przypadku wpisu na liście użytkowników huba:
interval = 1
Testowanie skryptu
Po załadowaniu skryptu sprawdź listę użytkowników huba pod kątem wygenerowanego wpisu czasu.
Potwierdź, że:
- Wpis pojawia się tylko raz.
- Wyświetlany czas jest prawidłowy.
- Przedrostek i postfiks wyglądają prawidłowo.
- Interwał aktualizacji nie jest zbyt agresywny.
- Wpis znika po wyładowaniu skryptu.
- Ponowne załadowanie skryptu nie tworzy duplikatów.
Jeśli godzina jest nieprawidłowa, sprawdź strefę czasową serwera i skonfigurowane przesunięcie.
Na serwerze sprawdź aktualny czas systemowy:
date
timedatectl
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/time.lua
Użyj ścieżki bezwzględnej, jeśli ścieżki względne nie działają.
Czas jest nieprawidłowy
Sprawdzać:
- Strefa czasowa serwera.
offsetwartość.- Czas letni.
- Czy zegar serwera jest zsynchronizowany.
Kontrole serwera:
date
timedatectl
Jeśli czas serwera jest prawidłowy, ale wyświetlany zegar jest nieprawidłowy, dostosuj go offset.
Skrypt tworzy zduplikowane wpisy
Wyładuj skrypt i potwierdź, że stary wpis zniknął:
!luaunload /PATH/TO/HUB/scripts/time.lua
Następnie załaduj go ponownie:
!luaload /PATH/TO/HUB/scripts/time.lua
Jeśli nadal występują duplikaty, zrestartuj wtyczkę Lua lub usługę Verlihub podczas okna konserwacji.
Zegar aktualizuje się zbyt często
Zwiększ interwał.
interval = 60
format = "%I:%M%p"
Jeśli wyświetlane są sekundy, użyj:
interval = 10
format = "%I:%M:%S%p"
Użytkownicy są zdezorientowani wpisem
Zwiększ przejrzystość przedrostka lub opisu.
prefix = '!_HUB_TIME_'
description = 'Hub Time Clock'
Uwagi dotyczące bezpieczeństwa
Ten skrypt jest mały, ale nadal działa w środowisku Verlihub Lua. Skoncentruj skrypt na obliczaniu bieżącego czasu i aktualizowaniu nazwy wyświetlanej.
Nie dodawaj:
- Zewnętrzne żądania HTTP.
- Zapytania do bazy danych.
- Skanowanie plików.
- Długie pętle.
- Blokowanie połączeń usypiających.
Uwagi dotyczące konserwacji
Zachowaj kopię zapasową przed zmianą skryptu:
cp /PATH/TO/HUB/scripts/time.lua /PATH/TO/HUB/scripts/time.lua.bak
Jeśli używasz Gita:
cd /PATH/TO/HUB/scripts
git add time.lua
git commit -m "Update time.lua clock settings"
W przypadku zmiany tylko przedrostka, postfiksu, formatu, interwału lub przesunięcia nie są wymagane żadne zmiany w logice kodu.