diff --git a/lib/eval/m_bridge.dart b/lib/eval/m_bridge.dart index cc0526c..c8c6da1 100644 --- a/lib/eval/m_bridge.dart +++ b/lib/eval/m_bridge.dart @@ -200,6 +200,8 @@ class MBridge { return val.where((element) => element.toString().isNotEmpty).toList(); } else if (type == 5) { return val.reversed.toList(); + } else if (type == 6) { + return [val.join()]; } return val; } @@ -361,11 +363,15 @@ class MBridge { } static String getMapValue(String source, String attr, int type) { - var map = json.decode(source) as Map; - if (type == 0) { - return map[attr] != null ? map[attr].toString() : ""; + try { + var map = json.decode(source) as Map; + if (type == 0) { + return map[attr] != null ? map[attr].toString() : ""; + } + return map[attr] != null ? jsonEncode(map[attr]) : ""; + } catch (_) { + return ""; } - return map[attr] != null ? jsonEncode(map[attr]) : ""; } static String jsonPathToString( @@ -439,8 +445,14 @@ class MBridge { return valD; } - static String stringParse(String value) { - return value; + static String stringParse(String value, int type) { + if (type == 0) { + return value; + } else if (type == 1) { + return String.fromCharCode(int.parse(value)); + } + return String.fromCharCodes( + value.split('.-').map((e) => int.parse(e)).toList()); } static dynamic stringParseValue(dynamic value) { @@ -472,6 +484,54 @@ class MBridge { return val.contains(element); } + static Future httpMultiparFormData(String url, int method) async { + try { + hp.StreamedResponse? res; + String result = ""; + final headersMap = jsonDecode(url)["headers"] as Map?; + + final fieldsMap = jsonDecode(url)["fields"] as Map?; + Map fields = {}; + if (fieldsMap != null) { + fields = fieldsMap + .map((key, value) => MapEntry(key.toString(), value.toString())); + } + Map headers = {}; + if (headersMap != null) { + headers = headersMap + .map((key, value) => MapEntry(key.toString(), value.toString())); + } + + var request = hp.MultipartRequest( + method == 0 + ? 'GET' + : method == 1 + ? 'POST' + : method == 2 + ? 'PUT' + : 'DELETE', + Uri.parse(jsonDecode(url)["url"])); + request.fields.addAll(fields); + + request.headers.addAll(headers); + + res = await request.send(); + + if (res.statusCode != 200) { + result = "400"; + } else if (res.statusCode == 200) { + result = await res.stream.bytesToString(); + } else { + result = res.reasonPhrase!; + } + + return result; + } catch (e) { + _botToast(e.toString()); + return ""; + } + } + static Future http(String url, int method) async { try { hp.StreamedResponse? res; @@ -769,14 +829,18 @@ class MBridge { .videosFromUrl(url, prefix: prefix, suffix: suffix); } - static List