package com.smtaiscript.lib; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.mozilla.javascript.NativeObject; import com.alibaba.dashscope.utils.Constants; import com.smtaiscript.lib.aliyunai.SMTAliyunAISession; import com.smtscript.lib.JSStaticAbstract; import com.smtscript.utils.SMTStatic; public class JSStaticSMTAI extends JSStaticAbstract { private static Pattern _patGlobalMacro = Pattern.compile("\\{\\{\\{([\\w\\.]+)\\}\\}\\}"); public void setAliyunKey(String key) { Constants.apiKey= key; } public SMTAliyunAISession createAliyun() { return new SMTAliyunAISession(this); } private String getMacroValue(NativeObject nvMacro, String key) throws Exception { String ret = SMTStatic.toString(SMTStatic.getJSValue(nvMacro, key)); return ret; } public String convMacro(String str, NativeObject nvMacro) throws Exception { while(true) { boolean hasMatcher = false; Matcher m = _patGlobalMacro.matcher(str); String newStr = str; while(m.find()) { hasMatcher = true; newStr = str.replace(m.group(), getMacroValue(nvMacro, m.group(1))); } str = newStr; if(!hasMatcher) return newStr; } } }