Utility Functions
Some useful utility functions.
Check arguments
Checks arguments from the mympd_arguments global variable.
local tocheck = {
uri = "notempty",
entries = "number",
view = "required"
}
local rc, msg = mympd.check_arguments(tocheck)
if rc == false then
return msg
end
Parameters:
PARAMETER | TYPE | DESCRIPTION |
---|---|---|
tocheck | table | Lua table of arguments to check. |
The tocheck
parameter expects a lua table consisting of arguments to check as key and one of notempty
, number
or required
as value.
notempty
: Checks for a not empty string.number
: Checks if the argument can be converted to a Lua number.required
: Checks if the argument is there.
Hashing functions
local md5_hash = mympd.hash_md5(string)
local sha1_hash = mympd.hash_sha1(string)
local sha256_hash = mympd.hash_sha256(string)
Parameters:
PARAMETER | TYPE | DESCRIPTION |
---|---|---|
string | string | String to hash |
HTML encoding
Parameters:
PARAMETER | TYPE | DESCRIPTION |
---|---|---|
string | string | String to encode |
URL encoding and decoding
Parameters:
PARAMETER | TYPE | DESCRIPTION |
---|---|---|
string | string | String to encode/decode |
form_url_decode | boolean | Decode as form url |
Logging
Logs messages to the myMPD log. You can use the number or the loglevel name.
mympd.log(loglevel, message)
-- This is the same
mympd.log(5, message)
mympd.log("LOG_NOTICE", message)
Parameters:
PARAMETER | TYPE | DESCRIPTION |
---|---|---|
message | string | Message to log |
loglevel | number or string | Syslog log level |
LOGLEVEL | NUMBER | DESCRIPTION |
---|---|---|
LOG_EMERG | 0 | Emergency |
LOG_ALERT | 1 | Alert |
LOG_CRIT | 2 | Critical |
LOG_ERR | 3 | Error |
LOG_WARNING | 4 | Warning |
LOG_NOTICE | 5 | Notice |
LOG_INFO | 6 | Informational |
LOG_DEBUG | 7 | Debug |
Return message from script
local msg = "test"
-- Debug
return mympd.jsonrpc_notification(7, msg)
-- Info
return msg
-- Notice
return mympd.jsonrpc_notification(5, msg)
-- Warning
return mympd.jsonrpc_warn(msg)
-- Error
return mympd.jsonrpc_error(msg)
-- Critical
return mympd.jsonrpc_notification(2, msg)
-- Alert
return mympd.jsonrpc_notification(1, msg)
-- Emergency
return mympd.jsonrpc_notification(0, msg)
Notifications
-- Send a notification to the client that has started the script
mympd.notify_client(severity, message)
-- Send a notification to all clients in the partition from which the client started the script
mympd.notify_partition(severity, message)
Parameters:
PARAMETER | TYPE | DESCRIPTION |
---|---|---|
severity | number or string | Severity |
message | string | Message to send. |
SEVERITY | NUMBER | DESCRIPTION |
---|---|---|
SEVERITY_EMERG | 0 | Emergency |
SEVERITY_ALERT | 1 | Alert |
SEVERITY_CRIT | 2 | Critical |
SEVERITY_ERR | 3 | Error |
SEVERITY_WARNING | 4 | Warning |
SEVERITY_NOTICE | 5 | Notice |
SEVERITY_INFO | 6 | Informational |
SEVERITY_DEBUG | 7 | Debug |
Read an ascii file
Parameters:
PARAMETER | TYPE | DESCRIPTION |
---|---|---|
path | string | Filepath to open and read. |
Remove a file
Deletes a file or empty directory. It is a wrapper for os.remove
that logs the error on failure.
Parameters:
PARAMETER | TYPE | DESCRIPTION |
---|---|---|
path | string | Filepath to delete. |
Sleep
Parameters:
PARAMETER | TYPE | DESCRIPTION |
---|---|---|
ms | positive number | Milliseconds |