From 01866b6a32f3d13cbdf05fb3bfb449fd67b030cd Mon Sep 17 00:00:00 2001 From: mrbesen Date: Mon, 8 Apr 2019 03:35:34 +0200 Subject: [PATCH 1/3] added Photo to Attachment.getForExt() --- src/main/java/de/mrbesen/telegram/MessageBuilder.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/de/mrbesen/telegram/MessageBuilder.java b/src/main/java/de/mrbesen/telegram/MessageBuilder.java index b736142..34629e2 100644 --- a/src/main/java/de/mrbesen/telegram/MessageBuilder.java +++ b/src/main/java/de/mrbesen/telegram/MessageBuilder.java @@ -256,6 +256,8 @@ public class MessageBuilder { return Attachment.Audio; } else if(extention.equalsIgnoreCase("ogg")) { return Attachment.Voice; + } else if(extention.equalsIgnoreCase("jpg") || extention.equalsIgnoreCase("jpeg") || extention.equalsIgnoreCase("png")) { + return Attachment.Photo; } return Attachment.Document; } From 9a8de527a1ea9d3407837ea371d1247549bab5ec Mon Sep 17 00:00:00 2001 From: mrbesen Date: Thu, 11 Apr 2019 01:41:15 +0200 Subject: [PATCH 2/3] fixed error reading --- src/main/java/de/mrbesen/telegram/TelegramAPI.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/mrbesen/telegram/TelegramAPI.java b/src/main/java/de/mrbesen/telegram/TelegramAPI.java index d7e5bea..4256c77 100644 --- a/src/main/java/de/mrbesen/telegram/TelegramAPI.java +++ b/src/main/java/de/mrbesen/telegram/TelegramAPI.java @@ -10,6 +10,7 @@ import java.util.Scanner; import javax.net.ssl.HttpsURLConnection; +import de.mrbesen.telegram.commands.JSONCommandHandler; import org.json.JSONArray; import org.json.JSONObject; @@ -126,8 +127,8 @@ public class TelegramAPI implements Runnable { } else { String errdesc = "[No description available]"; try { - //try to read anyway to get error message - JSONObject returned = new JSONObject(readfromIS(con.getInputStream())); + //try to read error message + JSONObject returned = new JSONObject(readfromIS(con.getErrorStream())); errdesc = returned.getString("description"); } catch(Throwable ignore) { } throw new APIError(parameter, request, con.getResponseCode(), null, errdesc); From fbeae445ad10725181ed5477f2eb096d1de98cdc Mon Sep 17 00:00:00 2001 From: mrbesen Date: Thu, 11 Apr 2019 12:31:07 +0200 Subject: [PATCH 3/3] catch message not modified exception --- .../de/mrbesen/telegram/MessageBuilder.java | 17 ++++++++++------- .../java/de/mrbesen/telegram/TelegramAPI.java | 18 ++++++++++++++++-- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/mrbesen/telegram/MessageBuilder.java b/src/main/java/de/mrbesen/telegram/MessageBuilder.java index 34629e2..d83e67c 100644 --- a/src/main/java/de/mrbesen/telegram/MessageBuilder.java +++ b/src/main/java/de/mrbesen/telegram/MessageBuilder.java @@ -249,16 +249,21 @@ public class MessageBuilder { public static Attachment getForFileExt(String extention) { if(extention.startsWith(".")) extention = extention.substring(1); - - if(extention.equalsIgnoreCase("mp4")) { + + extention = extention.toLowerCase(); + + if(extention.equals("mp4")) { return Attachment.Video; - } else if(extention.equalsIgnoreCase("mp3")) { + } else if(extention.equals("mp3")) { return Attachment.Audio; - } else if(extention.equalsIgnoreCase("ogg")) { + } else if(extention.equals("ogg")) { return Attachment.Voice; - } else if(extention.equalsIgnoreCase("jpg") || extention.equalsIgnoreCase("jpeg") || extention.equalsIgnoreCase("png")) { + } else if(extention.equals("jpg") || extention.equals("jpeg") || extention.equals("png")) { return Attachment.Photo; + } else if(extention.equals("gif")) { + return Attachment.Animation; } + return Attachment.Document; } @@ -275,6 +280,4 @@ public class MessageBuilder { super("The Object " + missing_obj + " is missing or invalid."); } } - - } diff --git a/src/main/java/de/mrbesen/telegram/TelegramAPI.java b/src/main/java/de/mrbesen/telegram/TelegramAPI.java index 4256c77..9436222 100644 --- a/src/main/java/de/mrbesen/telegram/TelegramAPI.java +++ b/src/main/java/de/mrbesen/telegram/TelegramAPI.java @@ -188,7 +188,7 @@ public class TelegramAPI implements Runnable { } /** - * creates internal APIEror, when message is not modyfied! TODO; run update Caption with MessageBuilder and catch that error + * creates internal APIEror, when message is not modyfied! * @param newCaption * @param chatid * @param msg_id @@ -203,7 +203,21 @@ public class TelegramAPI implements Runnable { rply = "&reply_markup=" + URLEncoder.encode(rm.toJSONString(), "UTF-8"); String q = "chat_id=" + chatid + "&message_id=" + msg_id + "&caption=" + URLEncoder.encode(newCaption, "UTF-8") + rply; if(async) { - this.async.enque("editMessageCaption", q); + Task t = new Task("editMessageCaption", q); + t.setExceptionhandl(new Callback() { + @Override + public Void call(Throwable j) throws Throwable { + if(j instanceof APIError) { + String errmsg = ((APIError) j).getMessage(); + if(errmsg.equals("Bad Request: message is not modified") || errmsg.equals("Bad Request: message to edit not found")) { + //both have code 400 + return null; + } + } + throw j; + } + }); + this.async.enque(t); } else { request("editMessageCaption", q); }