[
  {
    "code": "",
    "color": "#FF000000",
    "name": "json_edit_header",
    "typeName": "",
    "palette": "20",
    "type": "h",
    "spec": "JSON ○ Edit Blocks"
  },
  {
    "code": "%1$s \u003d new HashMap\u003c\u003e();\n%1$s.put(\"serverkey\", %2$s);\n%1$s.put(\"password\", %3$s);\n%1$s.put(\"text\", %4$s);",
    "color": "#FF0066FF",
    "name": "json_edit_set",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "%m.varMap ○ ServerKey %s ○ Password %s ○ Data %s"
  },
  {
    "code": "%1$s.setParams(%2$s, RequestNetworkController.REQUEST_PARAM);\n%1$s.startRequestNetwork(RequestNetworkController.POST, \"https://litebase.ir/editjson.php\", \"\", _%1$s_request_listener);",
    "color": "#FF0066FF",
    "name": "json_edit_send",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "Send JSON Edit ○ %m.requestnetwork ○ %m.varMap"
  },
  {
    "code": "",
    "color": "#FF000000",
    "name": "json_display_header",
    "typeName": "",
    "palette": "20",
    "type": "h",
    "spec": "JSON ○ Display Blocks"
  },
  {
    "code": "%1$s \u003d new HashMap\u003c\u003e();\n%1$s.put(\"serverkey\", %2$s);\n%1$s.put(\"password\", %3$s);",
    "color": "#FF0066FF",
    "name": "json_display_set",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "%m.varMap ○ ServerKey %s ○ Password %s"
  },
  {
    "code": "%1$s.setParams(%2$s, RequestNetworkController.REQUEST_PARAM);\n%1$s.startRequestNetwork(RequestNetworkController.POST, \"https://litebase.ir/jsonservice.php\", \"\", _%1$s_request_listener);",
    "color": "#FF0066FF",
    "name": "json_display_send",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "Display JSON ○ %m.requestnetwork ○ %m.varMap"
  },
  {
    "code": "",
    "color": "#FF000000",
    "name": "json_create_header",
    "typeName": "",
    "palette": "20",
    "type": "h",
    "spec": "JSON ○ Create Blocks"
  },
  {
    "code": "%1$s \u003d new HashMap\u003c\u003e();\n%1$s.put(\"servername\", %2$s);\n%1$s.put(\"username\", %3$s);\n%1$s.put(\"upassword\", %4$s);\n%1$s.put(\"password\", %5$s);",
    "color": "#FF0066FF",
    "name": "json_create_set",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "%m.varMap ○ ServerName %s ○ Username %s ○ UserPassword %s ○ Password %s"
  },
  {
    "code": "%1$s.setParams(%2$s, RequestNetworkController.REQUEST_PARAM);\n%1$s.startRequestNetwork(RequestNetworkController.POST, \"https://litebase.ir/create_json.php\", \"\", _%1$s_request_listener);",
    "color": "#FF0066FF",
    "name": "json_create_send",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "Create JSON ○ %m.requestnetwork ○ %m.varMap"
  },
  {
    "code": "",
    "color": "#FF000000",
    "name": "mail_header",
    "typeName": "",
    "palette": "20",
    "type": "h",
    "spec": "Mail ○ Service Blocks"
  },
  {
    "code": "%1$s \u003d new HashMap\u003c\u003e();\n%1$s.put(\"mailkey\", %2$s);\n%1$s.put(\"password\", %3$s);",
    "color": "#FF0066FF",
    "name": "mail_setkey",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "%m.varMap ○ MailKey %s ○ Password %s"
  },
  {
    "code": "%1$s.put(\"email\", %2$s);\n%1$s.put(\"sub\", %3$s);\n%1$s.put(\"message\", %4$s);",
    "color": "#FF0066FF",
    "name": "mail_set",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "%m.varMap ○ Email %s ○ Subject %s ○ Message %s"
  },
  {
    "code": "%1$s.setParams(%2$s, RequestNetworkController.REQUEST_PARAM);\n%1$s.startRequestNetwork(RequestNetworkController.POST, \"https://litebase.ir/sendmail.php\", \"\", _%1$s_request_listener);",
    "color": "#FF0066FF",
    "name": "mail_send",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "Send Mail ○ %m.requestnetwork ○ %m.varMap"
  },
  {
    "code": "",
    "imports": "",
    "color": "#FF000000",
    "name": "database_remote_header",
    "typeName": "",
    "palette": "20",
    "type": "h",
    "spec": "Database ○ Remote service blocks"
  },
  {
    "code": "%1$s \u003d new HashMap\u003c\u003e();\n%1$s.put(\"db_user\", %2$s);\n%1$s.put(\"db_pass\", %3$s);\n%1$s.put(\"db_name\", %4$s);\n%1$s.put(\"sql\", %5$s);\n%1$s.put(\"params\", %6$s);",
    "imports": "",
    "color": "#FF0066FF",
    "name": "set_database",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "%m.varMap DB User %s ○ Password %s ○ Database %s ○ SQL %s ○ Params %s"
  },
  {
    "code": "%1$s.setParams(%2$s, RequestNetworkController.REQUEST_PARAM);\n%1$s.startRequestNetwork(RequestNetworkController.POST, \"https://database.litebase.ir/api.php\", \"\", _%1$s_request_listener);",
    "imports": "",
    "color": "#FF0066FF",
    "name": "send_database",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "Execute SQL %m.requestnetwork ○ %m.varMap"
  },
  {
    "code": "",
    "color": "#FF000000",
    "name": "storage_header",
    "typeName": "",
    "palette": "20",
    "type": "h",
    "spec": "Storage ○ Upload Blocks"
  },
  {
    "code": "import android.database.Cursor;\nimport android.net.Uri;\nimport android.provider.OpenableColumns;",
    "imports": "",
    "color": "#FF0066FF",
    "name": "storage_import",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "Import"
  },
  {
    "code": "if (_resultCode \u003d\u003d RESULT_OK \u0026\u0026 _data !\u003d null) {\n\t    Uri uri \u003d _data.getData();\n\t     uploadFileBase64(uri);\n\t\r\n}",
    "imports": "",
    "color": "#FF0066FF",
    "name": "storage_onact",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "onActivityResult"
  },
  {
    "code": "}\npublic void uploadFileBase64(Uri fileUri) {\n\t    String encodedFile \u003d readFileBase64(fileUri);\n\t\n\t    String extension \u003d \"\";\n\t    String path \u003d getRealPathFromUri(fileUri);\n\t    if (path !\u003d null) {\n\t\t        int i \u003d path.lastIndexOf(\u0027.\u0027);\n\t\t        if (i \u003e 0) extension \u003d path.substring(i+1);\n\t\t    }\n\t\n\t    HashMap\u003cString, Object\u003e params \u003d new HashMap\u003c\u003e();\n\t    %4$s \u003d new HashMap\u003c\u003e();\r\n%4$s.put(\"username\", %1$s);\r\n%4$s.put(\"password\", %2$s);\r\n%4$s.put(\"file\", encodedFile);\n%4$s.put(\"file_path\", \"file.\" + extension);\r\n%3$s.setParams(%4$s, RequestNetworkController.REQUEST_PARAM);\r\n%3$s.startRequestNetwork(RequestNetworkController.POST, \"https://storage.litebase.ir/upload.php\", \"\", _%3$s_request_listener);\r\n}\npublic String readFileBase64(Uri uri) {\n\t    String outData \u003d \"\";\n\t    try (InputStream inputStream \u003d getContentResolver().openInputStream(uri)) {\n\t\t        if (inputStream !\u003d null) {\n\t\t\t            byte[] fileData \u003d readBytes(inputStream);\n\t\t\t            byte[] encodedBytesFile \u003d android.util.Base64.encode(fileData, android.util.Base64.NO_WRAP);\n\t\t\t            outData \u003d new String(encodedBytesFile);\n\t\t\t        }\n\t\t    } catch (FileNotFoundException e) {\n\t\t        SketchwareUtil.showMessage(getApplicationContext(), e.getMessage());\n\t\t    } catch (IOException ioe) {\n\t\t        SketchwareUtil.showMessage(getApplicationContext(), ioe.getMessage());\n\t\t    }\n\t    return outData;\n}\n\nprivate byte[] readBytes(InputStream inputStream) throws IOException {\n\t    ByteArrayOutputStream byteBuffer \u003d new ByteArrayOutputStream();\n\t    int bufferSize \u003d 1024;\n\t    byte[] buffer \u003d new byte[bufferSize];\n\t\n\t    int len;\n\t    while ((len \u003d inputStream.read(buffer)) !\u003d -1) {\n\t\t        byteBuffer.write(buffer, 0, len);\n\t\t    }\n\t    return byteBuffer.toByteArray();\n}\npublic String getRealPathFromUri(Uri uri) {\n\t    String fileName \u003d \"\";\n\t\n\t    if (uri.getScheme().equals(\"content\")) {\n\t\t        Cursor cursor \u003d getContentResolver().query(uri, null, null, null, null);\n\t\t        if (cursor !\u003d null \u0026\u0026 cursor.moveToFirst()) {\n\t\t\t            int nameIndex \u003d cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);\n\t\t\t            fileName \u003d cursor.getString(nameIndex);\n\t\t\t            cursor.close();\n\t\t\t        }\n\t\t    } else if (uri.getScheme().equals(\"file\")) {\n\t\t        fileName \u003d uri.getLastPathSegment();\n\t\t    }\n\t\n\t    return fileName;\n}\npublic void devzeus () {",
    "imports": "",
    "color": "#FF0066FF",
    "name": "storage_up",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "Upload Username %s ○ Password %s ○ %m.requestnetwork ○ %m.varMap"
  },
  {
    "code": "",
    "color": "#FF000000",
    "name": "sms_header",
    "typeName": "",
    "palette": "20",
    "type": "h",
    "spec": "SMS ○ Service Blocks"
  },
  {
    "code": "%1$s \u003d new HashMap\u003c\u003e();\n%1$s.put(\"username\", %2$s);\n%1$s.put(\"password\", %3$s);\n%1$s.put(\"patterncode\", %4$s);\n%1$s.put(\"to\", %5$s);\n%1$s.put(\"inputdata\", %6$s);",
    "color": "#FF0066FF",
    "name": "sms_set",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "%m.varMap ○ Username %s ○ Password %s ○ Pattern %s ○ To %s ○ Value %s"
  },
  {
    "code": "%1$s.setParams(%2$s, RequestNetworkController.REQUEST_PARAM);\n%1$s.startRequestNetwork(RequestNetworkController.POST, \"https://litebase.ir/send_sms.php\", \"\", _%1$s_request_listener);",
    "color": "#FF0066FF",
    "name": "sms_send",
    "typeName": "",
    "palette": "20",
    "type": " ",
    "spec": "Send SMS ○ %m.requestnetwork ○ %m.varMap"
  }
]