diff --git a/pom.xml b/pom.xml
index 2eb18d7..97f39f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,4 +34,8 @@
1.2.17
+
+ 1.8
+ 1.8
+
\ No newline at end of file
diff --git a/src/de/mrbesen/telegram/MessageBuilder.java b/src/de/mrbesen/telegram/MessageBuilder.java
index 18aba70..a48524a 100644
--- a/src/de/mrbesen/telegram/MessageBuilder.java
+++ b/src/de/mrbesen/telegram/MessageBuilder.java
@@ -1,5 +1,8 @@
package de.mrbesen.telegram;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
import de.mrbesen.telegram.objects.TReplyMarkup;
public class MessageBuilder {
@@ -22,7 +25,11 @@ public class MessageBuilder {
if(txt.isEmpty()) {
throw new IllegalArgumentException("text is not allowed to be empty");
}
- text = txt;
+ try {
+ text = URLEncoder.encode(txt, "UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
return this;
}
diff --git a/src/de/mrbesen/telegram/TelegramAPI.java b/src/de/mrbesen/telegram/TelegramAPI.java
index bc60dc2..dcaaedf 100644
--- a/src/de/mrbesen/telegram/TelegramAPI.java
+++ b/src/de/mrbesen/telegram/TelegramAPI.java
@@ -245,7 +245,7 @@ public class TelegramAPI implements Runnable {
if(text.startsWith("/" )) {
text = text.substring(1);//remove '/'
isCommand = true;
- cmdmgr.onCommand(text, msg.getFrom());
+ cmdmgr.onCommand(text, msg.getFrom(), json.getJSONObject("message"));
} else {
Event e = null;
if(getMsg().has(Member.audio)) {
diff --git a/src/de/mrbesen/telegram/commands/CommandHandler.java b/src/de/mrbesen/telegram/commands/CommandHandler.java
index 08b629c..b1dde41 100644
--- a/src/de/mrbesen/telegram/commands/CommandHandler.java
+++ b/src/de/mrbesen/telegram/commands/CommandHandler.java
@@ -1,5 +1,7 @@
package de.mrbesen.telegram.commands;
+import org.json.JSONObject;
+
import de.mrbesen.telegram.objects.TUser;
public interface CommandHandler {
@@ -9,8 +11,9 @@ public interface CommandHandler {
* @param sender
* @param cmd
* @param args
+ * @param json
* @return
*/
- public boolean onCommand(TUser sender, String cmd, String[] args);
+ public boolean onCommand(TUser sender, String cmd, String[] args, JSONObject json);
}
diff --git a/src/de/mrbesen/telegram/commands/CommandManager.java b/src/de/mrbesen/telegram/commands/CommandManager.java
index 8524891..35ee22e 100644
--- a/src/de/mrbesen/telegram/commands/CommandManager.java
+++ b/src/de/mrbesen/telegram/commands/CommandManager.java
@@ -1,5 +1,7 @@
package de.mrbesen.telegram.commands;
+import org.json.JSONObject;
+
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
@@ -13,10 +15,13 @@ public class CommandManager {
public CommandManager() { }
- public void onCommand(String line, TUser sender) {//called by the api (/-prefix already removed)
+ public void onCommand(String line, TUser sender, JSONObject json) {//called by the api (/-prefix already removed)
line = line.trim();
String[] split = line.split(" ",2);
String cmd = split[0].toLowerCase();
+ if(cmd.contains("@")) {
+ cmd = cmd.substring(0, cmd.indexOf('@'));
+ }
boolean result = false;
if(cmd.matches(CMDPATTERN)) {
String[] args = new String[0];
@@ -27,7 +32,7 @@ public class CommandManager {
// System.out.println("cmd " + cmd + " args: " + args.length);
for(CommandHandler cmdhand : handlerlist.get(cmd)) {
try {
- result = cmdhand.onCommand(sender, cmd, args);
+ result = cmdhand.onCommand(sender, cmd, args, json);
if(result)
break;
} catch(Throwable t) {
diff --git a/src/de/mrbesen/telegram/objects/JSONBased.java b/src/de/mrbesen/telegram/objects/JSONBased.java
index 72c9879..729d90c 100644
--- a/src/de/mrbesen/telegram/objects/JSONBased.java
+++ b/src/de/mrbesen/telegram/objects/JSONBased.java
@@ -43,6 +43,7 @@ public class JSONBased {
public enum Member {
// ===== MESSAGE ====
+ chat,//Chat
forward_from_message_id,//int
forward_signature,//String
forward_date,//long
diff --git a/src/de/mrbesen/telegram/objects/TMessage.java b/src/de/mrbesen/telegram/objects/TMessage.java
index 2d3b033..c3158d7 100644
--- a/src/de/mrbesen/telegram/objects/TMessage.java
+++ b/src/de/mrbesen/telegram/objects/TMessage.java
@@ -13,6 +13,7 @@ public class TMessage extends JSONBased {
private long date = -1;
private TUser forward_from = null; //optional
private String text = null;//optional
+ private int chatid = 0;
protected TelegramAPI api;
@@ -50,6 +51,7 @@ public class TMessage extends JSONBased {
this.api = api;
message_id = json.getInt("message_id");
date = json.getLong("date");
+ chatid = ((JSONObject) get(Member.chat)).getInt("id");
if(json.has("from"))
from = api.getUser(json.getJSONObject("from"));
@@ -58,7 +60,11 @@ public class TMessage extends JSONBased {
if(json.has("text") )
text = json.getString("text");
- allowedmembers = new Member[] {Member.forward_from_message_id, Member.forward_signature, Member.forward_date, Member.reply_to_message, Member.edit_date, Member.media_group_id, Member.author_signature, Member.author_signature, Member.audio, Member.document, Member.game, Member.photo, Member.sticker, Member.video, Member.voice, Member.video_note, Member.caption, Member.contact, Member.location, Member.venue, Member.new_chat_members, Member.left_chat_members, Member.new_chat_title, Member.new_chat_photo, Member.delete_chat_photo, Member.group_chat_created, Member.supergroup_chat_created, Member.channel_chat_created, Member.migrate_from_chat_id, Member.migrate_to_chat_id, Member.pinned_message, Member.invoice, Member.successful_payment, Member.connected_website};
+ allowedmembers = new Member[] {Member.forward_from_message_id, Member.forward_signature, Member.forward_date, Member.reply_to_message, Member.edit_date, Member.media_group_id, Member.author_signature, Member.author_signature, Member.audio, Member.document, Member.game, Member.photo, Member.sticker, Member.video, Member.voice, Member.video_note, Member.caption, Member.contact, Member.location, Member.venue, Member.new_chat_members, Member.left_chat_members, Member.new_chat_title, Member.new_chat_photo, Member.delete_chat_photo, Member.group_chat_created, Member.supergroup_chat_created, Member.channel_chat_created, Member.migrate_from_chat_id, Member.migrate_to_chat_id, Member.pinned_message, Member.invoice, Member.successful_payment, Member.connected_website, Member.chat};
+ }
+
+ public int getChatID() {
+ return chatid;
}
public TUser getFrom() {
diff --git a/src/de/mrbesen/telegram/objects/TUser.java b/src/de/mrbesen/telegram/objects/TUser.java
index 53b4278..7a06000 100644
--- a/src/de/mrbesen/telegram/objects/TUser.java
+++ b/src/de/mrbesen/telegram/objects/TUser.java
@@ -18,7 +18,6 @@ public class TUser {
private boolean isBot = false;
private TelegramAPI api = null;
-
TUser(int chatid, String uname, TelegramAPI api) {
this.id = chatid;
diff --git a/src/de/mrbesen/test/commands/InlineKeyboardTC.java b/src/de/mrbesen/test/commands/InlineKeyboardTC.java
index 97396e7..fe41d80 100644
--- a/src/de/mrbesen/test/commands/InlineKeyboardTC.java
+++ b/src/de/mrbesen/test/commands/InlineKeyboardTC.java
@@ -1,5 +1,7 @@
package de.mrbesen.test.commands;
+import org.json.JSONObject;
+
import de.mrbesen.telegram.commands.CommandHandler;
import de.mrbesen.telegram.objects.TInlineKeyboardMarkup;
import de.mrbesen.telegram.objects.TUser;
@@ -7,7 +9,7 @@ import de.mrbesen.telegram.objects.TUser;
public class InlineKeyboardTC implements CommandHandler {
@Override
- public boolean onCommand(TUser sender, String cmd, String[] args) {
+ public boolean onCommand(TUser sender, String cmd, String[] args, JSONObject ignored) {
if(cmd.equals("inlinekb")) {
sender.sendMessage("Links zu antippen:",
new TInlineKeyboardMarkup(2)
diff --git a/src/de/mrbesen/test/commands/ReplyKeyboardRemoveTC.java b/src/de/mrbesen/test/commands/ReplyKeyboardRemoveTC.java
index 05785d8..95a211d 100644
--- a/src/de/mrbesen/test/commands/ReplyKeyboardRemoveTC.java
+++ b/src/de/mrbesen/test/commands/ReplyKeyboardRemoveTC.java
@@ -1,5 +1,7 @@
package de.mrbesen.test.commands;
+import org.json.JSONObject;
+
import de.mrbesen.telegram.commands.CommandHandler;
import de.mrbesen.telegram.objects.TReplyKeyboardRemove;
import de.mrbesen.telegram.objects.TUser;
@@ -7,7 +9,7 @@ import de.mrbesen.telegram.objects.TUser;
public class ReplyKeyboardRemoveTC implements CommandHandler {
@Override
- public boolean onCommand(TUser sender, String cmd, String[] args) {
+ public boolean onCommand(TUser sender, String cmd, String[] args, JSONObject ignored) {
if(cmd.equals("replykbrm")) {
sender.sendMessage("Entferne TReplyKeyboard",
new TReplyKeyboardRemove());
diff --git a/src/de/mrbesen/test/commands/ReplyKeyboardTestCase.java b/src/de/mrbesen/test/commands/ReplyKeyboardTestCase.java
index 2395133..2fe2e46 100644
--- a/src/de/mrbesen/test/commands/ReplyKeyboardTestCase.java
+++ b/src/de/mrbesen/test/commands/ReplyKeyboardTestCase.java
@@ -1,6 +1,8 @@
package de.mrbesen.test.commands;
+import org.json.JSONObject;
+
import de.mrbesen.telegram.commands.CommandHandler;
import de.mrbesen.telegram.objects.TReplyKeyboardMarkup;
import de.mrbesen.telegram.objects.TUser;
@@ -8,7 +10,7 @@ import de.mrbesen.telegram.objects.TUser;
public class ReplyKeyboardTestCase implements CommandHandler {
@Override
- public boolean onCommand(TUser sender, String cmd, String[] args) {
+ public boolean onCommand(TUser sender, String cmd, String[] args, JSONObject ignored) {
if(cmd.equals("replykb")) {
sender.sendMessage("Buttons zum Antippen:",
new TReplyKeyboardMarkup(2)
diff --git a/src/de/mrbesen/test/commands/SimpleTestCase.java b/src/de/mrbesen/test/commands/SimpleTestCase.java
index b85e0c3..27848b1 100644
--- a/src/de/mrbesen/test/commands/SimpleTestCase.java
+++ b/src/de/mrbesen/test/commands/SimpleTestCase.java
@@ -1,12 +1,14 @@
package de.mrbesen.test.commands;
+import org.json.JSONObject;
+
import de.mrbesen.telegram.commands.CommandHandler;
import de.mrbesen.telegram.objects.TUser;
public class SimpleTestCase implements CommandHandler {
@Override
- public boolean onCommand(TUser sender, String cmd, String[] args) {
+ public boolean onCommand(TUser sender, String cmd, String[] args, JSONObject ignored) {
if(cmd.equals("test")) {
sender.sendMessage("HI");
return true;