5 LUA语法说明
5.1 系统函数列表
出于安全及性能原因,RTA SaaS禁用了大量不必要的 LUA功能。以下为支持的全局函数列表。
函数名 | 功能 |
---|---|
next | 对table进行遍历 |
打印信息(注:在生产环境中该函数被设置为不输出) | |
tonumber | 转换为数字 |
tostring | 转换为文本 |
type | 获取变量类型 |
unpack | 将table 的元素解包为多值返回 |
5.2 内置模块time
time为时间计算相关功能函数,系统使用uint32为基础格式,存放Unix Timestamp。
5.2.1 函数列表
函数名 | 功能 |
---|---|
time.now | 获取当前时间 |
time.date | 获取日期,一次返回年月日 |
time.hour | 获取小时 |
time.minute | 获取分钟 |
time.second | 获取秒 |
time.weekday | 获取星期几,星期日为 0,星期一为 1,以此类推 |
time.truncate | 向下取整,第二参数可指定取整类型 |
time.addtime | 增减时间,可一次增减时分秒 |
time.adddate | 增减日期,可一次增减年月日 |
time.setdate | 设置日期,可一次设置年月日时分秒 |
5.2.2 time.now函数
函数获取当前时间戳,返回值为uint32类型。
now = time.now()
5.2.3 time.date函数
函数传入时间戳,一次返回年、月、日三个值。
now = time.now()
year, month, day = time.date(now)
5.2.4 time.hour函数
函数传入时间戳,返回小时。
now = time.now()
hour = time.hour(now)
5.2.5 time.minute函数
函数传入时间戳,返回分钟。
now = time.now()
minute = time.minute(now)
5.2.6 time.second函数
函数传入时间戳,返回秒。
now = time.now()
second = time.second(now)
5.2.7 time.weekday函数
函数传入时间戳,返回星期几。星期天为 0,星期一为 1,以此类推。
now = time.now()
weekday = time.weekday(now)
5.2.8 time.truncate函数
函数传入时间戳,及截断精度,返回截断后的时间戳。
时间精度可以是以下值:month、day、hour、minute。
now = time.now()
month_start = time.truncate(now, "month") -- 本月开始时间戳
today_start = time.truncate(now, "day") -- 今天开始时间戳
hour_start = time.truncate(now, "hour") -- 本小时开始时间戳
minute_start = time.truncate(now, "minute") -- 本分钟开始时间戳
5.2.9 time.addtime函数
函数传入时间戳,及增减时间(时分秒),时分秒可为 0 或 负值,返回增减后的时间戳。
now = time.now()
newstamp = time.addtime(now, -1, 1, 1) -- 前1小时 ,再增加1分1秒
5.2.10 time.adddate函数
函数传入时间戳,及增减日期(年月日),年月日可为 0 或 负值,返回增减后的时间戳。
now = time.now()
newstamp = time.adddate(now, -1, 1, 1) -- 去年,再增加1月1天
5.2.11 time.setdate函数
函数传入年月日时分秒,返回时间戳。
newstamp = time.setdate(2025, 6, 18, 12,13,14) -- 2025:06:18 12:13:14
5.3 内置模块srta
5.3.1 常量
服务内置了名为 srta 的模块,提供了访问数据的功能及相关常量。
5.3.1.1 数据区
常量名称 | 含义 | 适用函数或变量 |
---|---|---|
srta.DS_DID | 默认设备数据空间编号 | srta.get_dsdata() |
srta.DS_WUID | 默认 WUID数据空间编号 | srta.get_dsdata() |
5.3.1.2 字段区
常量名称 | 含义 | 适用函数或变量 |
---|---|---|
srta.U8 | UINT8字段区 | dsdata |
srta.U32 | UINT32字段区 | dsdata |
srta.FLAG | FLAG字段区 | dsdata |
5.3.1.3 操作系统
常量名称 | 含义 | 适用函数或变量 |
---|---|---|
srta.OS_UNKNOWN | 未知操作系统 | srta.get_os() |
srta.OS_IOS | iOS | srta.get_os() |
srta.OS_ANDROID | Android | srta.get_os() |
srta.OS_OTHER | 其它操作系统 | srta.get_os() |
5.3.1.4 策略参数
常量名称 | 含义 | 适用函数或变量 |
---|---|---|
srta.TARGETINFO_ENABLE | 策略参竞 | target_info |
srta.TARGETINFO_CPC_PRICE | CPC出价 | target_info |
srta.TARGETINFO_CPA_PRICE | CPA出价 | target_info |
srta.TARGETINFO_USER_WEIGHT_FACTOR | 用户权重系数 target_info | |
srta.TARGETINFO_CPC_FACTOR | CPC出价系统 | target_info |
5.3.2 函数列表
函数名 | 功能 |
---|---|
srta.get_dsdata | 获取数据空间数据 |
srta.get_targets | 获取需决策的策略ID列表 |
srta.get_apps | 获取App安装态(需授权) |
srta.get_scores | 获取模型分(需授权) |
srta.get_os | 获取终端操作系统 |
5.3.2.1 srta.get_dsdata函数
返回的数据以 LUA Table 结构存在,定义如下
didData = srta.get_dsdata(srta.DS_DID) -- 获取设备数据
-- 以下为字段返回值示例
didData = {
[1]: {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, .... 0, 0, 0, 0, 0, 0, 0, 0},
[2]: {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
[3]: {false, false, false, false,false, false, false, false}
}
5.3.2.2 srta.get_targets函数
返回的数据以 LUA Table 结构存在,定义如下
targets = srta.get_targets() -- 获取策略列表
-- 以下为字段返回值示例
targets = {"news", "music", "video_for_new"}
5.3.2.3 srta.get_apps函数
一次可以获得多个App安装态,每个返回值为 true(已安装)/false(未安装)/nil(无权限或不可靠)中的一个状态
app1, app2, app3 = srta.get_apps(app1hash, app2hash, app3hash) -- 获取App安装态,可支持多个。
-- 以下为字段返回值示例
app1 = true
app2 = false
app3 = nil
5.3.2.3 srta.get_scores函数
一次可以获得多个模型安装态,每个返回值为数字/nil(无权限或不可靠)中的一个状态
score1, score2, score3 = srta.get_apps(model1, model2, model1) -- 获取模型分,可支持多个。
-- 以下为字段返回值示例
score1 = 0
score2 = 80
score3 = nil
5.3.2.3 srta.get_os函数
获取终端的操作系统。返回值参考系统常量
os = srta.get_os() -- 获取终端操作系统
-- 以下为字段返回值示例
1 -- 代表iOS,可以用srta常量进行判断
5.4 内置模块string
string为字符串计算相关功能函数。
5.4.1 函数列表
函数名 | 功能 |
---|---|
string.split | 切割字符串 |