telegram API отправка и получение изображения 3-х типов. стикер. просто. документ.
при отправки в бота сообщения с изображением если оно будет с сжатием то бот обработает его как просто изображение, если оно будет маленьким то обработает его как стикер, если изображение будет отправлено без сжатия то оно будет обработато как документ
релизовны потоки и синхронизация, т.е. когда пользователь отправляет сообщение в бот, то поток пока не скачает его на диск не отдаст ресурс на отправку второму потоку.
private void downloadAndSend(String fileId, String newFile, Byte type) throws Exception {
StringBuilder fn = new StringBuilder();
Thread thread2 = new Thread(() -> {
synchronized (fn) {
System.out.println("Поток 2: ожидание...");
try {
fn.wait();
System.out.println("Поток 2: продолжение работы...");
uvedomlenie("это вложение будет вам отправлено обратно...");
getSendPhoto(this.chatId, fn.toString(), type);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
} catch (TelegramApiException e) {
throw new RuntimeException(e);
}
}
});
Thread thread1 = new Thread(() -> {
synchronized (fn) {
System.out.println("Поток 1: работа...");
try {
System.out.println(fn.append(downloadFile(fileId, newFile)));
} catch (Exception e) {
throw new RuntimeException(e);
}
try {
Thread.sleep(200);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
System.out.println("Поток 1: уведомление...");
try {
uvedomlenie("вы отправили вложение!");
} catch (TelegramApiException e) {
throw new RuntimeException(e);
}
fn.notify();
}
});
thread2.start();
thread1.start();
}
https://gitlab.com/synergy9980417/razdel2/3_3