Files
mixly3-server/mixly/boards/default_src/arduino/generators/text.js
2026-01-24 16:16:48 +08:00

37 lines
1.6 KiB
JavaScript

import * as Blockly from 'blockly/core';
export const text_base64_url_codec = function () {
const FIELD_TYPE = this.getFieldValue("TYPE");
const FIELD_OPTION = this.getFieldValue("OPTION");
const VALUE_INPUT_VALUE = Blockly.Arduino.valueToCode(this, "VALUE", Blockly.Arduino.ORDER_ATOMIC);
let code = '';
if (FIELD_TYPE === 'BASE64') {
Blockly.Arduino.definitions_['include_rBase64'] = '#include <rBase64.h>';
if (FIELD_OPTION === 'ENCODE') {
code = 'rbase64.encode(' + VALUE_INPUT_VALUE + ')';
} else {
code = 'rbase64.decode(' + VALUE_INPUT_VALUE + ')';
}
} else {
Blockly.Arduino.definitions_['include_URLCode'] = '#include <URLCode.h>';
Blockly.Arduino.definitions_['var_declare_urlCode'] = 'URLCode urlCode;';
if (FIELD_OPTION === 'ENCODE') {
Blockly.Arduino.definitions_['function_urlEncode']
= 'String urlEncode(String urlStr) {\n'
+ ' urlCode.strcode = urlStr;\n'
+ ' urlCode.urlencode();\n'
+ ' return urlCode.urlcode;\n'
+ '}\n';
code = 'urlEncode(' + VALUE_INPUT_VALUE + ')';
} else {
Blockly.Arduino.definitions_['function_urlDecode']
= 'String urlDecode(String urlStr) {\n'
+ ' urlCode.urlcode = urlStr;\n'
+ ' urlCode.urldecode();\n'
+ ' return urlCode.strcode;\n'
+ '}\n';
code = 'urlDecode(' + VALUE_INPUT_VALUE + ')';
}
}
return [code, Blockly.Arduino.ORDER_ATOMIC];
};