zapscript

package
v2.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 22, 2026 License: GPL-3.0 Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MIMEZaparooZapScript  = "application/vnd.zaparoo.zapscript"
	WellKnownPath         = "/.well-known/zaparoo"
	HeaderZaparooOS       = "Zaparoo-OS"
	HeaderZaparooArch     = "Zaparoo-Arch"
	HeaderZaparooPlatform = "Zaparoo-Platform"
)
View Source
const ExecuteTimeout = 2 * time.Second

ExecuteTimeout is the maximum duration for execute commands.

Variables

View Source
var (
	ErrArgCount     = errors.New("invalid number of arguments")
	ErrRequiredArgs = errors.New("arguments are required")
	ErrRemoteSource = errors.New("cannot run from remote source")
	ErrFileNotFound = errors.New("file not found")
)
View Source
var AcceptedMimeTypes = []string{
	MIMEZaparooZapScript,
}

Functions

func IsMediaLaunchingCommand added in v2.7.0

func IsMediaLaunchingCommand(cmdName string) bool

IsMediaLaunchingCommand returns true if the command launches media and should be subject to playtime limits. This includes all launch.* commands, most playlist commands (play/next/prev/goto/load/open), and mister.mgl.

func IsValidCommand added in v2.9.0

func IsValidCommand(cmdName string) bool

IsValidCommand returns true if the command name is a valid ZapScript command.

func ParseAdvArgs added in v2.8.0

func ParseAdvArgs[T any](pl platforms.Platform, env *platforms.CmdEnv, dest *T) error

ParseAdvArgs parses and validates advanced arguments for a command. Returns an error if parsing or validation fails.

func PreWarmZapLinkHosts added in v2.8.0

func PreWarmZapLinkHosts(db *database.Database, platform string, checkInternet func(int) bool)

PreWarmZapLinkHosts pre-warms the DNS and TLS cache for known zaplink hosts. This is called during startup to reduce latency on first zaplink access. It makes HEAD requests to /.well-known/zaparoo for each supported base URL.

func RunCommand

func RunCommand(
	pl platforms.Platform,
	cfg *config.Instance,
	plsc playlists.PlaylistController,
	token tokens.Token,
	cmd zapscript.Command,
	totalCmds int,
	currentIndex int,
	db *database.Database,
	st *state.State,
	exprOpts *ExprEnvOptions,
) (platforms.CmdResult, error)

RunCommand parses and runs a single ZapScript command.

Types

type ArgPlaylist

type ArgPlaylist struct {
	ID    string            `json:"id"`
	Name  string            `json:"name"`
	Items []ArgPlaylistItem `json:"items"`
}

type ArgPlaylistItem

type ArgPlaylistItem struct {
	Name      string `json:"name"`
	ZapScript string `json:"zapscript"`
}

type ExprEnvOptions added in v2.8.0

type ExprEnvOptions struct {
	Scanned       *zapscript.ExprEnvScanned
	Launching     *zapscript.ExprEnvLaunching
	InHookContext bool // prevents recursive hook execution
}

ExprEnvOptions provides optional context for expression environment.

type WellKnown

type WellKnown struct {
	ZapScript int `json:"zapscript"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL