libf 2 tahun lalu
induk
melakukan
ccb6a21526
5 mengubah file dengan 150 tambahan dan 1 penghapusan
  1. 1 1
      drsp/perf.js
  2. 1 0
      env/setenv.sh
  3. 35 0
      sample.js
  4. 35 0
      wframe/init.js
  5. 78 0
      wframe/util.js

+ 1 - 1
drsp/perf.js

@@ -84,7 +84,7 @@ function parseTime(ymdhm) {
 
 // 主执行阶段
 try {
-    // 参数检查
+    // 输入参数检查验证
     var type = input.type;
     if (!type) {
         throw ("必须指定参数 type,如:HVPS,BEPS,IBPS,FXPS");

+ 1 - 0
env/setenv.sh

@@ -21,5 +21,6 @@ curl 'http://27.193.12.228:8080/script/exec/js?filepath=/cncc/API/drsp/perf.js&i
 
 curl -X POST -i 'http://27.193.12.228:8080/script/exec/js?filepath=/cncc/API/drsp/perf.js' --data 'input={"type":"HVPS","time":"202210261025"}' --header "Authorization: Basic bWV0YS5hZG1pbjphZG1pbg=="
 
+curl -X POST 'http://27.193.12.228:8080/script/exec/js?filepath=/cncc/API/drsp/perf.js' --data 'input={"type":"HVPS","time":"202210261025"}' --header "Authorization: Basic bWV0YS5hZG1pbjphZG1pbg=="
 
 

+ 35 - 0
sample.js

@@ -0,0 +1,35 @@
+// 输入输出参数格式化
+input = INPUT;
+output = {};
+try {
+    input = decodeURIComponent(input);
+} catch (e) { }
+try {
+    input = base64.decode(input);
+} catch (e) { }
+try {
+    input = JSON.parse(input);
+    input = JSON.parse(input); // 解析可能存在的重复编码
+} catch (e) { }
+// 主执行阶段
+try {
+    // 示例处理过程,返回输入信息
+    output.sampledata = {
+        input: input,
+    };
+} catch (e) {
+    // 错误信息输出处理,抛出 ok 表示正常结束    
+    if (e != "ok") {
+        if (typeof (e) == "object") {
+            output.error = e;
+        } else if (typeof (e) == "string") {
+            output.error = "错误:" + e;
+        } else {
+            output.error = JSON.stringify(e);
+        }
+        log.error(output.error);
+        STATUS = "error";
+    }
+}
+// 返回输出信息
+OUTPUT = output;

+ 35 - 0
wframe/init.js

@@ -0,0 +1,35 @@
+
+// 输入输出参数格式化
+input = INPUT;
+output = {};
+try {
+    input = decodeURIComponent(input);
+} catch (e) { }
+try {
+    input = base64.decode(input);
+} catch (e) { }
+try {
+    input = JSON.parse(input);
+    input = JSON.parse(input); // 解析可能存在的重复编码
+} catch (e) { }
+
+// 主执行阶段
+try {
+    main(input, output);
+} catch (e) {
+    // 错误信息输出处理,抛出 ok 表示正常结束    
+    if (e != "ok") {
+        if (typeof (e) == "object") {
+            output.error = e;
+        } else if (typeof (e) == "string") {
+            output.error = "错误:" + e;
+        } else {
+            output.error = JSON.stringify(e);
+        }
+        log.error(output.error);
+        STATUS = "error";
+    }
+}
+
+// 返回输出信息
+OUTPUT = output;

+ 78 - 0
wframe/util.js

@@ -0,0 +1,78 @@
+
+// 解析时间字符串 格式标记为 yyyy MM dd HH mm ss SSS
+var date_formats_flag = {
+    "y": { idx: 0, name: "yyyy", len: 4, re: /^\d{4}$/, p: 0 },
+    "M": { idx: 1, name: "MM", len: 2, re: /^\d{2}$/, p: 5 },
+    "d": { idx: 2, name: "dd", len: 2, re: /^\d{2}$/, p: 8 },
+    "H": { idx: 3, name: "HH", len: 2, re: /^\d{2}$/, p: 11 },
+    "m": { idx: 4, name: "mm", len: 2, re: /^\d{2}$/, p: 14 },
+    "s": { idx: 5, name: "ss", len: 2, re: /^\d{2}$/, p: 17 },
+    "S": { idx: 6, name: "SSS", len: 3, re: /^\d{3}$/, p: 20 },
+};
+now = new Date();
+function parseTime(sfmt, yMdHmsS) {
+    if (!sfmt) {
+        throw ("没有指定时间格式");
+    }
+    if (!yMdHmsS) {
+        throw ("没有指定时间字符串");
+    }
+    try {
+        if (sfmt.length != yMdHmsS.length) {
+            throw ("长度不一致");
+        }
+        var dt = [null, null, null, null, null, null, null];
+        for (var i = 0; i < sfmt.length; i++) {
+            var fmt = date_formats_flag[sfmt[i]];
+            if (fmt && sfmt.length >= i + fmt.len && sfmt.substr(i, fmt.len) == fmt.name) {
+                if (yMdHmsS.length < i + fmt.len) {
+                    throw (fmt.name + " " + i);
+                }
+                var ds = yMdHmsS.substr(i, fmt.len);
+                if (!fmt.re.test(ds)) {
+                    throw (fmt.name + " " + ds);
+                }
+                dt[fmt.idx] = parseInt(ds);
+                i += fmt.len - 1;
+            } else {
+                if (yMdHmsS.length <= i || sfmt[i] != yMdHmsS[i]) {
+                    throw (sfmt[i]);
+                }
+            }
+        }
+        var d = new Date(
+            dt[0] == null ? now.getFullYear() : dt[0],
+            dt[1] == null ? now.getMonth() : dt[1] - 1,
+            dt[2] == null ? 1 : dt[2],
+            dt[3],
+            dt[4],
+            dt[5],
+            dt[6]
+        );
+        d.setMinutes(d.getMinutes() - d.getTimezoneOffset());
+        return d;
+    } catch (e) {
+        throw ("时间格式错误,正确格式是 " + sfmt + "," + e);
+    }
+}
+
+function formatTime(sfmt, dt) {
+    if (!sfmt) {
+        throw ("没有指定时间格式");
+    }
+    if (!dt) {
+        throw ("没有指定时间");
+    }
+    var ds = dt.toJSON();
+    var s = "";
+    for (var i = 0; i < sfmt.length; i++) {
+        var fmt = date_formats_flag[sfmt[i]];
+        if (fmt && sfmt.length >= i + fmt.len && sfmt.substr(i, fmt.len) == fmt.name) {
+            s += ds.substring(fmt.p, fmt.p + fmt.len);
+            i += fmt.len - 1;
+        } else {
+            s += sfmt[i];
+        }
+    }
+    return s;
+}