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

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.

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

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

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.
  • offset wartość.
  • 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.

Strona Nadrzędna