Das Skript time.lua erstellt einen kleinen Benutzerlisteneintrag, dessen Name sich ändert, um die aktuelle Uhrzeit anzuzeigen. Verwenden Sie es, wenn ein Verlihub-Hub eine sichtbare Zeitzonenmarkierung für internationale Benutzer, regionale Räume oder Operatoren benötigt, die über Zeitzonen hinweg koordinieren.
Das Skript erfordert keinen separaten externen Bot-Prozess. Es verwendet das Plugin Verlihub Lua, um einen Bot-ähnlichen Eintrag in der Hub-Benutzerliste zu erstellen. Ein Uhreintrag kann so aussehen:
!_US_06:30:00PM
Sie können Präfix, Postfix, Zeitformat, Aktualisierungsintervall und Zeitzonenversatz ändern, bevor Sie das Skript laden.
Was dieses Skript macht
Das Skript erstellt den Anzeigenamen aus drei Teilen:
prefix + current time + postfix
Beispielausgabe:
!_US_06:30:00PM
Der sichtbare Benutzerlisteneintrag wird zeitgesteuert aktualisiert, sodass die angezeigte Zeit aktuell bleibt.
Verwenden Sie dieses Skript für:
- Zeigt eine Hub-Zeitzone an.
- Zeigt eine regionale Uhr.
- Helfen Sie internationalen Benutzern, ihre Zeit zu koordinieren.
- Erstellen einer einfachen visuellen Markierung in der Benutzerliste.
- Hinzufügen eines kleinen Utility-Bots, ohne externe Software auszuführen.
Anforderungen
Dieses Skript erfordert:
- Verlihub installiert und läuft.
- Das Plugin Verlihub Lua ist installiert.
- Das Plugin Lua ist in Verlihub aktiviert.
- Berechtigung zum Laden und Entladen von Lua-Skripten.
- Ein beschreibbares Skriptverzeichnis für Verlihub Lua Dateien.
Stellen Sie vor dem Laden des Skripts sicher, dass das Plugin Lua aktiv ist:
!pluglist
Wenn das Plugin Lua nicht aufgeführt ist, laden oder aktivieren Sie es zuerst aus dem übergeordneten Setup-Artikel Lua.
Empfohlener Dateispeicherort
Verwenden Sie ein dediziertes Skriptverzeichnis:
mkdir -p /PATH/TO/HUB/scripts
Platzieren Sie das Skript unter:
/PATH/TO/HUB/scripts/time.lua
Bei Produktionssystemen sollte das Verzeichnis nur von vertrauenswürdigen Administratoren oder vom Dienstbenutzer Verlihub beschreibbar sein. Machen Sie das Verzeichnis nicht weltweit beschreibbar.
Befehle zum Laden und Entladen
Laden Sie das Skript:
!luaload /PATH/TO/HUB/scripts/time.lua
Entladen Sie das Skript:
!luaunload /PATH/TO/HUB/scripts/time.lua
Wenn Sie das Skript bearbeiten, entladen Sie es und laden Sie es erneut:
!luaunload /PATH/TO/HUB/scripts/time.lua
!luaload /PATH/TO/HUB/scripts/time.lua
Verwenden Sie den vollständigen absoluten Pfad, es sei denn, Ihre Plugin-Konfiguration Lua unterstützt relative Pfade.
Skriptcode
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
Konfigurationsoptionen
name
name = ''
Der Basisnamenswert für den Bot-ähnlichen Eintrag. In diesem Skript wird der sichtbare Name generiert von GetName(), Also name kann in der Regel leer bleiben.
class
class = 3
Steuert die angezeigte Klasse oder Profilebene des Bot-ähnlichen Eintrags. Die genaue Bedeutung der Klassenwerte hängt von der Hub-Konfiguration ab. In vielen Hub-Setups stehen höhere Klassennummern für erhöhte Benutzerrollen.
Verwenden Sie einen Klassenwert, der dazu passt, wie der Uhreintrag in der Benutzerliste angezeigt werden soll.
description
description = 'Time Bot: US'
Die für den Bot-ähnlichen Eintrag angezeigte Beschreibung. Erklären Sie hiermit, was der Eintrag darstellt.
description = 'Time Bot: US'
description = 'Time Bot: UTC'
description = 'Hub Clock'
description = 'Server Time'
speed
speed = '100'
Der für den Bot-ähnlichen Eintrag angezeigte Verbindungsgeschwindigkeitswert. Dies ist größtenteils kosmetischer Natur. Es steuert nicht, wie oft das Skript aktualisiert wird.
email = ''
Das für den Bot-ähnlichen Eintrag angezeigte E-Mail-Feld. Lassen Sie es leer, es sei denn, Sie möchten eine Kontaktadresse anzeigen.
share
share = '0'
Die für den Bot-ähnlichen Eintrag angezeigte Freigabegröße. Für einen Uhrenbot, 0 ist angemessen, da es sich nicht um einen echten Filesharing-Benutzer handelt.
prefix
prefix = '!_US_'
Text vor der generierten Zeit platziert. Dadurch ist die Uhr in der Benutzerliste leicht zu identifizieren.
prefix = '!_US_'
prefix = '!_UTC_'
prefix = '[TIME] '
prefix = 'Clock_'
Wählen Sie ein Präfix, das in Ihrer Hub-Benutzerliste eine klare Sortierung ermöglicht.
postfix
postfix = ''
Text nach der generierten Zeit platziert.
postfix = ''
postfix = '_EST'
postfix = '_UTC'
postfix = ' HubTime'
interval
interval = 10
Steuert, wie oft das Skript aktualisiert werden soll, normalerweise in Sekunden. Halten Sie den Abstand angemessen. Für einen Hub-Benutzerlisteneintrag ist es normalerweise nicht erforderlich, jede Sekunde zu aktualisieren.
10: nützlich für eine sichtbare sekundenbasierte Uhr.30: eine gute Balance für viele Hubs.60: am besten für Nur-Minuten-Uhren.
Wenn Ihr Format keine Sekunden anzeigt, verwenden Sie 60.
format = "%I:%M%p"
interval = 60
counter
counter = 0
Interner Zähler, der vom Skript verwendet wird. Ändern Sie dies nicht, es sei denn, Sie ändern die Skriptlogik.
format
format = "%I:%M:%S%p"
Steuert, wie die Uhrzeit angezeigt wird. Dies verwendet Lua os.date Formatierung. Das Standardformat zeigt die 12-Stunden-Zeit mit Sekunden und AM/PM an.
Beispielausgabe:
06:30:00PM
Gängige Formate:
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
Bei Benutzerlisteneinträgen sind kürzere Formate normalerweise einfacher zu lesen.
offset
offset = -5
Zeitzonenunterschied zur Serverzeit, in Stunden. Das Skript berechnet die Zeit anhand von:
os.time() + offset * 60 * 60
Beispiele:
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
Dies ist ein fester Offset. Sommerzeitregeln werden nicht automatisch verarbeitet, es sei denn, die Serverzeit und der Offset werden angepasst. Bei Änderungen der Sommerzeit aktualisieren Sie den Offset bei Bedarf.
Beispielkonfigurationen
US-Eastern-Time-Stil
description = 'Time Bot: US Eastern'
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5
Beispielanzeige:
!_US_06:30PM
UTC-Uhr
description = 'Time Bot: UTC'
prefix = '!_UTC_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0
Beispielanzeige:
!_UTC_23:30
24-Stunden-Hub-Uhr
description = 'Hub Clock'
prefix = '!_TIME_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0
Beispielanzeige:
!_TIME_18:30
Empfohlene Produktionseinstellungen
Verwenden Sie für die meisten Hubs eine Nur-Minuten-Uhr:
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5
Dies reduziert unnötige Aktualisierungen und sorgt gleichzeitig dafür, dass die Uhr lesbar bleibt.
Verwenden Sie Sekunden nur, wenn Sie einen Live-Clock-Effekt wünschen:
interval = 10
format = "%I:%M:%S%p"
Ein Aktualisierungsintervall von einer Sekunde ist für einen Hub-Benutzerlisteneintrag normalerweise nicht erforderlich:
interval = 1
Testen des Skripts
Überprüfen Sie nach dem Laden des Skripts die Hub-Benutzerliste auf den generierten Zeiteintrag.
Bestätigen Sie Folgendes:
- Der Eintrag erscheint nur einmal.
- Die angezeigte Zeit ist korrekt.
- Das Präfix und das Postfix sehen richtig aus.
- Das Aktualisierungsintervall ist nicht zu aggressiv.
- Der Eintrag verschwindet nach dem Entladen des Skripts.
- Durch das Neuladen des Skripts werden keine Duplikate erstellt.
Wenn die Uhrzeit falsch ist, überprüfen Sie die Zeitzone des Servers und den konfigurierten Offset.
Überprüfen Sie auf dem Server die aktuelle Systemzeit:
date
timedatectl
Fehlerbehebung
Das Skript wird nicht geladen
Überprüfen Sie, ob das Plugin Lua aktiv ist:
!pluglist
Überprüfen Sie, ob der Dateipfad korrekt ist:
!luaload /PATH/TO/HUB/scripts/time.lua
Verwenden Sie den absoluten Pfad, wenn relative Pfade nicht funktionieren.
Die Zeit ist falsch
Überprüfen:
- Zeitzone des Servers.
offsetWert.- Sommerzeit.
- Ob die Serveruhr synchronisiert ist.
Serverprüfungen:
date
timedatectl
Wenn die Serverzeit korrekt ist, die angezeigte Uhr jedoch falsch ist, passen Sie sie an offset.
Das Skript erstellt doppelte Einträge
Entladen Sie das Skript und bestätigen Sie, dass der alte Eintrag verschwindet:
!luaunload /PATH/TO/HUB/scripts/time.lua
Dann laden Sie es erneut:
!luaload /PATH/TO/HUB/scripts/time.lua
Wenn Duplikate verbleiben, starten Sie das Plugin Lua oder den Dienst Verlihub während eines Wartungsfensters neu.
Die Uhr wird zu oft aktualisiert
Erhöhen Sie das Intervall.
interval = 60
format = "%I:%M%p"
Wenn Sekunden angezeigt werden, verwenden Sie:
interval = 10
format = "%I:%M:%S%p"
Benutzer sind durch den Eintrag verwirrt
Machen Sie das Präfix oder die Beschreibung klarer.
prefix = '!_HUB_TIME_'
description = 'Hub Time Clock'
Sicherheitshinweise
Dieses Skript ist klein, läuft aber dennoch in der Umgebung Verlihub Lua. Konzentrieren Sie sich im Skript auf die Berechnung der aktuellen Uhrzeit und die Aktualisierung des Anzeigenamens.
Nicht hinzufügen:
- Externe HTTP-Anfragen.
- Datenbankabfragen.
- Scannen von Dateien.
- Lange Schleifen.
- Schlafrufe blockieren.
Wartungshinweise
Erstellen Sie ein Backup, bevor Sie das Skript ändern:
cp /PATH/TO/HUB/scripts/time.lua /PATH/TO/HUB/scripts/time.lua.bak
Bei Verwendung von Git:
cd /PATH/TO/HUB/scripts
git add time.lua
git commit -m "Update time.lua clock settings"
Wenn nur Präfix, Postfix, Format, Intervall oder Offset geändert werden, sind keine Änderungen an der Codelogik erforderlich.