Skrypty -- Pierwsze kroki
repartee obsługuje skrypty Lua 5.4 z bogatym API wzorowanym na WeeChat, irssi i kokoirc.
Lokalizacja skryptów
Skrypty użytkownika znajdują się w ~/.repartee/scripts/ jako pliki .lua. Repartee przeszukuje także dołączone skrypty (takie jak keepnick, slap i hello) w katalogu instalacyjnym (scripts/).
Format skryptu
Każdy skrypt składa się z dwóch części: tablicy meta i funkcji setup:
meta = {
name = "hello",
version = "1.0",
description = "A simple greeting script"
}
function setup(api)
api.on("irc.join", function(event)
if event.nick ~= api.store.our_nick() then
api.irc.say(event.channel, "Welcome, " .. event.nick .. "!")
end
end)
api.log("Hello script loaded!")
-- Return a cleanup function (optional)
return function()
api.log("Hello script unloaded")
end
end
Tablica meta
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
name | string | Tak | Nazwa skryptu (używana przy ładowaniu/wyładowywaniu) |
version | string | Nie | Ciąg wersji |
description | string | Nie | Krótki opis |
Funkcja setup(api)
Wywoływana podczas ładowania skryptu. Otrzymuje obiekt api ze wszystkimi możliwościami skryptowania. Opcjonalnie może zwrócić funkcję czyszczącą, która jest uruchamiana przy wyładowaniu.
Ładowanie skryptów
/script load hello
/script load keepnick
/script unload hello
/script reload hello
/script list
Automatyczne ładowanie i trwałe ustawienia skryptów
Dodaj nazwy skryptów do konfiguracji, aby ładować je automatycznie przy uruchomieniu:
[scripts]
autoload = ["hello", "keepnick", "urllogger"]
Skrypty wywołujące api.config.set(key, value) automatycznie zapisują swoje ustawienia w config.toml w sekcji [scripts.values.<nazwa_skryptu>] pomiędzy przeładowaniami i restartami klienta.
Sandboxing
Skrypty działają w izolowanym środowisku Lua. Następujące zmienne globalne są usunięte ze względów bezpieczeństwa:
os-- brak dostępu do systemu plików/procesówio-- brak operacji wejścia/wyjścia na plikachloadfile,dofile-- brak dowolnego wykonywania plikówpackage-- brak ładowania modułów
Skrypty są izolowane od siebie -- każdy otrzymuje własne środowisko Lua.
Następne kroki
- Referencja API -- pełna dokumentacja API
- Przykłady -- praktyczne przykłady skryptów