use of com.mashape.unirest.request.body.MultipartBody in project Javacord by BtoBastian.
the class ImplChannel method sendFile.
@Override
public Future<Message> sendFile(final File file, final String comment, FutureCallback<Message> callback) {
final MessageReceiver receiver = this;
ListenableFuture<Message> future = api.getThreadPool().getListeningExecutorService().submit(new Callable<Message>() {
@Override
public Message call() throws Exception {
logger.debug("Trying to send a file in channel {} (name: {}, comment: {})", ImplChannel.this, file.getName(), comment);
api.checkRateLimit(null, RateLimitType.SERVER_MESSAGE, null, ImplChannel.this);
MultipartBody body = Unirest.post("https://discordapp.com/api/v6/channels/" + id + "/messages").header("authorization", api.getToken()).field("file", file);
if (comment != null) {
body.field("content", comment);
}
HttpResponse<JsonNode> response = body.asJson();
api.checkResponse(response);
api.checkRateLimit(response, RateLimitType.SERVER_MESSAGE, null, ImplChannel.this);
logger.debug("Sent a file in channel {} (name: {}, comment: {})", ImplChannel.this, file.getName(), comment);
return new ImplMessage(response.getBody().getObject(), api, receiver);
}
});
if (callback != null) {
Futures.addCallback(future, callback);
}
return future;
}
use of com.mashape.unirest.request.body.MultipartBody in project Javacord by BtoBastian.
the class ImplChannel method sendFile.
@Override
public Future<Message> sendFile(final InputStream inputStream, final String filename, final String comment, FutureCallback<Message> callback) {
final MessageReceiver receiver = this;
ListenableFuture<Message> future = api.getThreadPool().getListeningExecutorService().submit(new Callable<Message>() {
@Override
public Message call() throws Exception {
logger.debug("Trying to send an input stream in channel {} (comment: {})", ImplChannel.this, comment);
api.checkRateLimit(null, RateLimitType.SERVER_MESSAGE, null, ImplChannel.this);
MultipartBody body = Unirest.post("https://discordapp.com/api/v6/channels/" + id + "/messages").header("authorization", api.getToken()).field("file", inputStream, filename);
if (comment != null) {
body.field("content", comment);
}
HttpResponse<JsonNode> response = body.asJson();
api.checkResponse(response);
api.checkRateLimit(response, RateLimitType.SERVER_MESSAGE, null, ImplChannel.this);
logger.debug("Sent an input stream in channel {} (comment: {})", ImplChannel.this, comment);
return new ImplMessage(response.getBody().getObject(), api, receiver);
}
});
if (callback != null) {
Futures.addCallback(future, callback);
}
return future;
}
use of com.mashape.unirest.request.body.MultipartBody in project Javacord by BtoBastian.
the class ImplUser method sendFile.
@Override
public Future<Message> sendFile(final File file, final String comment, FutureCallback<Message> callback) {
final MessageReceiver receiver = this;
ListenableFuture<Message> future = api.getThreadPool().getListeningExecutorService().submit(new Callable<Message>() {
@Override
public Message call() throws Exception {
logger.debug("Trying to send a file to user {} (name: {}, comment: {})", ImplUser.this, file.getName(), comment);
api.checkRateLimit(null, RateLimitType.PRIVATE_MESSAGE, null, null);
MultipartBody body = Unirest.post("https://discordapp.com/api/v6/channels/" + getUserChannelIdBlocking() + "/messages").header("authorization", api.getToken()).field("file", file);
if (comment != null) {
body.field("content", comment);
}
HttpResponse<JsonNode> response = body.asJson();
api.checkResponse(response);
api.checkRateLimit(response, RateLimitType.PRIVATE_MESSAGE, null, null);
logger.debug("Sent a file to user {} (name: {}, comment: {})", ImplUser.this, file.getName(), comment);
return new ImplMessage(response.getBody().getObject(), api, receiver);
}
});
if (callback != null) {
Futures.addCallback(future, callback);
}
return future;
}
use of com.mashape.unirest.request.body.MultipartBody in project Javacord by BtoBastian.
the class ImplUser method sendFile.
@Override
public Future<Message> sendFile(final InputStream inputStream, final String filename, final String comment, FutureCallback<Message> callback) {
final MessageReceiver receiver = this;
ListenableFuture<Message> future = api.getThreadPool().getListeningExecutorService().submit(new Callable<Message>() {
@Override
public Message call() throws Exception {
logger.debug("Trying to send an input stream to user {} (comment: {})", ImplUser.this, comment);
api.checkRateLimit(null, RateLimitType.PRIVATE_MESSAGE, null, null);
MultipartBody body = Unirest.post("https://discordapp.com/api/v6/channels/" + getUserChannelIdBlocking() + "/messages").header("authorization", api.getToken()).field("file", inputStream, filename);
if (comment != null) {
body.field("content", comment);
}
HttpResponse<JsonNode> response = body.asJson();
api.checkResponse(response);
api.checkRateLimit(response, RateLimitType.PRIVATE_MESSAGE, null, null);
logger.debug("Sent an input stream to user {} (comment: {})", ImplUser.this, comment);
return new ImplMessage(response.getBody().getObject(), api, receiver);
}
});
if (callback != null) {
Futures.addCallback(future, callback);
}
return future;
}
use of com.mashape.unirest.request.body.MultipartBody in project DiscLoader by R3alCl0ud.
the class APIRequest method createRequest.
public BaseRequest createRequest() throws IOException {
BaseRequest request = null;
switch(this.method) {
case 0:
request = Unirest.get(this.route);
break;
case 1:
request = Unirest.post(this.route);
if (multi) {
// try {
SendableMessage sdata = (SendableMessage) this.data;
File file = sdata.file;
Resource resource = sdata.resource;
byte[] bytes = new byte[0];
if (file != null)
bytes = DLUtil.readAllBytes(file);
if (resource != null)
bytes = DLUtil.readAllBytes(resource);
MultipartBody body = ((HttpRequestWithBody) request).fields(null);
String loc = "";
if (file != null)
loc = file.getName();
if (resource != null)
loc = resource.getFileName();
body.field("Content-type", "multipart/form-data").field("file", bytes, loc).field("payload_json", gson.toJson(sdata));
// } catch (IOException ex) {
// ex.printStackTrace();
// }
} else {
((HttpRequestWithBody) request).body(gson.toJson(data));
}
break;
case 3:
request = Unirest.patch(this.route);
((HttpRequestWithBody) request).body(gson.toJson(data));
break;
case 2:
request = Unirest.delete(this.route);
break;
case 4:
request = Unirest.put(this.route);
((HttpRequestWithBody) request).body(gson.toJson(this.data));
break;
default:
request = Unirest.get(this.route);
break;
}
return request;
}
Aggregations