const {
REFRESH_DELAY,
CONFIRM_ORDER_DELAY,
AUTO_STOP_TIME,
AUTO_STOP_ORDER_TIME,
RING_ENABLE,
VOLUME_KEY_ENABLE,
EXTRA_RULE,
GROUP_CONTROL_ENABLE,
GROUP_CONTROL_WECHAT_NAME,
CONFIRM_ORDER_DELAY_FAST,
REFRESH_DELAY_FAST,
PAY_PASS,
CLICK_NOTIFY_ENABLE,
REFRESH_RANDOM_DELAY_TIME_UP,
REFRESH_RANDOM_DELAY_TIME_DOWN,
GROUP_CONTROL_START_MODE,
VOLUME_KEY_START_MODE,
ALTERNATE_REFRESH_MODE,
IS_RELOAD_PAGE,
BUY_BUTTON_CLICK_DELAY,
AUTO_STOP_SENTRY_TIME,
IS_RETURN_CHANGE_QUANTITY,
IS_RECORD_ICON_POSITION,
} = hamibot.env;
console.log(hamibot);
console.log('REFRESH_DELAY', REFRESH_DELAY);
console.log('CONFIRM_ORDER_DELAY', CONFIRM_ORDER_DELAY);
console.log('AUTO_STOP_TIME', AUTO_STOP_TIME);
console.log('AUTO_STOP_ORDER_TIME', AUTO_STOP_ORDER_TIME);
console.log('RING_ENABLE', RING_ENABLE);
console.log('VOLUME_KEY_ENABLE', VOLUME_KEY_ENABLE);
console.log('EXTRA_RULE', EXTRA_RULE);
console.log('GROUP_CONTROL_ENABLE', GROUP_CONTROL_ENABLE);
回答
文档地址 https://docs.hamibot.com/
你展示的代码是正确使用Hamibot配置系统的方式。hamibot.env对象包含了所有在脚本配置界面设置的变量,你的解构赋值方式完全符合Hamibot的设计规范。
当通过以下任一方式运行脚本时,这些配置值会被正确注入:
- 在Hamibot应用内通过脚本配置界面设置的参数
- 通过API调用时传递的vars参数(如文档中
POST /v1/devscripts/开发脚本_id/run接口的vars参数)
这些配置值来源于:
- 脚本开发者在发布脚本时预设的默认值
- 用户在安装脚本后自定义的配置值
- 通过API远程调用时动态传入的参数
你代码中的console.log语句会输出所有配置项的值,这是调试脚本配置的有效方法。特别注意:
- 所有配置值都是字符串类型,即使看起来像数字或布尔值
- 如果配置项未设置,解构赋值会得到undefined
- 对于需要数值类型的配置,需要手动转换:
const REFRESH_DELAY_NUM = parseInt(REFRESH_DELAY)
在实际应用中,你应该添加类型检查和默认值处理:
const REFRESH_DELAY = hamibot.env.REFRESH_DELAY ? parseInt(hamibot.env.REFRESH_DELAY) : 1000;
这是Hamibot自动化脚本中管理配置的标准做法,你的实现完全符合最佳实践。