newThreadWithAttachement method

Future<Uint8List> newThreadWithAttachement(
  1. String siteUrl,
  2. String text,
  3. Uint8List attachement,
  4. String preEntry,
  5. Uint8List katamari,
  6. String nick,
  7. int atl,
  8. int xxAt,
  9. String cid,
  10. String avatar,
)

Implementation

Future<Uint8List> newThreadWithAttachement(
    String siteUrl,
    String text,
    Uint8List attachement,
    String preEntry,
    Uint8List katamari,
    String nick,
    int atl,
    int xxAt,
    String cid,
    String avatar) async {
  var url = Uri.parse(siteUrl + '/new/' + preEntry + '?bin=true');
  final ModeratorCapsuleItemAttachment att =
      ModeratorCapsuleItemAttachment(atl, xxAt, cid);

  var request = http.MultipartRequest("POST", url)
    ..fields['katamari'] = base64Encode(katamari)
    ..fields['post'] = text
    ..fields['nick'] = nick
    ..fields['avatar'] = avatar
    ..fields['attachment'] = base64Encode(att.binary);

  /*var multipartFile = http.MultipartFile.fromBytes(
      'filename', attachement); //("image", attachement, length,
  request.files.add(multipartFile);*/

  request.headers.addAll({'Cookie': 'DARTSESSID=' + dartSessionId});
  var response;
  try {
    response = await request.send().timeout(_timoutIn);
  } catch (e) {
    if (!(e is TimeoutException)) setOffline();
    return Uint8List(0);
  }
  setOnline();
  if (response.statusCode == 409) {
    //dup
    return Uint8List(1);
  }

  if (response.statusCode == 200) {
    print("Image Uploaded");
  } else {
    print("Upload Failed");
  }
  String? h = response.headers["set-cookie"];
  if (h != null) {
    cookie = h.split(' ').first;
    String dSid = cookie.split('=').last;
    dartSessionId = dSid.substring(0, dSid.length - 1);
  }
  print(cookie);
  print(response.contentLength);
  return response.stream.toBytes();
}