mirror of
https://github.com/42wim/matterbridge.git
synced 2024-11-25 12:12:05 -08:00
1bb39eba87
TengoModifyMessage allows you to specify the location of a tengo (https://github.com/d5/tengo/) script. This script will receive every incoming message and can be used to modify the Username and the Text of that message. The script will have the following global variables: to modify: msgUsername and msgText to read: msgChannel and msgAccount The script is reloaded on every message, so you can modify the script on the fly. Example script can be found in https://github.com/42wim/matterbridge/tree/master/gateway/bench.tengo and https://github.com/42wim/matterbridge/tree/master/contrib/example.tengo The example below will check if the text contains blah and if so, it'll replace the text and the username of that message. text := import("text") if text.re_match("blah",msgText) { msgText="replaced by this" msgUsername="fakeuser" } More information about tengo on: https://github.com/d5/tengo/blob/master/docs/tutorial.md and https://github.com/d5/tengo/blob/master/docs/stdlib.md
136 lines
1.7 KiB
Go
136 lines
1.7 KiB
Go
package objects
|
|
|
|
// NamedBuiltinFunc is a named builtin function.
|
|
type NamedBuiltinFunc struct {
|
|
Name string
|
|
Func CallableFunc
|
|
}
|
|
|
|
// Builtins contains all default builtin functions.
|
|
var Builtins = []NamedBuiltinFunc{
|
|
{
|
|
Name: "print",
|
|
Func: builtinPrint,
|
|
},
|
|
{
|
|
Name: "printf",
|
|
Func: builtinPrintf,
|
|
},
|
|
{
|
|
Name: "sprintf",
|
|
Func: builtinSprintf,
|
|
},
|
|
{
|
|
Name: "len",
|
|
Func: builtinLen,
|
|
},
|
|
{
|
|
Name: "copy",
|
|
Func: builtinCopy,
|
|
},
|
|
{
|
|
Name: "append",
|
|
Func: builtinAppend,
|
|
},
|
|
{
|
|
Name: "string",
|
|
Func: builtinString,
|
|
},
|
|
{
|
|
Name: "int",
|
|
Func: builtinInt,
|
|
},
|
|
{
|
|
Name: "bool",
|
|
Func: builtinBool,
|
|
},
|
|
{
|
|
Name: "float",
|
|
Func: builtinFloat,
|
|
},
|
|
{
|
|
Name: "char",
|
|
Func: builtinChar,
|
|
},
|
|
{
|
|
Name: "bytes",
|
|
Func: builtinBytes,
|
|
},
|
|
{
|
|
Name: "time",
|
|
Func: builtinTime,
|
|
},
|
|
{
|
|
Name: "is_int",
|
|
Func: builtinIsInt,
|
|
},
|
|
{
|
|
Name: "is_float",
|
|
Func: builtinIsFloat,
|
|
},
|
|
{
|
|
Name: "is_string",
|
|
Func: builtinIsString,
|
|
},
|
|
{
|
|
Name: "is_bool",
|
|
Func: builtinIsBool,
|
|
},
|
|
{
|
|
Name: "is_char",
|
|
Func: builtinIsChar,
|
|
},
|
|
{
|
|
Name: "is_bytes",
|
|
Func: builtinIsBytes,
|
|
},
|
|
{
|
|
Name: "is_array",
|
|
Func: builtinIsArray,
|
|
},
|
|
{
|
|
Name: "is_immutable_array",
|
|
Func: builtinIsImmutableArray,
|
|
},
|
|
{
|
|
Name: "is_map",
|
|
Func: builtinIsMap,
|
|
},
|
|
{
|
|
Name: "is_immutable_map",
|
|
Func: builtinIsImmutableMap,
|
|
},
|
|
{
|
|
Name: "is_time",
|
|
Func: builtinIsTime,
|
|
},
|
|
{
|
|
Name: "is_error",
|
|
Func: builtinIsError,
|
|
},
|
|
{
|
|
Name: "is_undefined",
|
|
Func: builtinIsUndefined,
|
|
},
|
|
{
|
|
Name: "is_function",
|
|
Func: builtinIsFunction,
|
|
},
|
|
{
|
|
Name: "is_callable",
|
|
Func: builtinIsCallable,
|
|
},
|
|
{
|
|
Name: "to_json",
|
|
Func: builtinToJSON,
|
|
},
|
|
{
|
|
Name: "from_json",
|
|
Func: builtinFromJSON,
|
|
},
|
|
{
|
|
Name: "type_name",
|
|
Func: builtinTypeName,
|
|
},
|
|
}
|