java 8, message has chatid
This commit is contained in:
parent
e2d7b48c2e
commit
57c6ba701a
4
pom.xml
4
pom.xml
|
@ -34,4 +34,8 @@
|
|||
<version>1.2.17</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<properties>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
</properties>
|
||||
</project>
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -43,6 +43,7 @@ public class JSONBased {
|
|||
public enum Member {
|
||||
|
||||
// ===== MESSAGE ====
|
||||
chat,//Chat
|
||||
forward_from_message_id,//int
|
||||
forward_signature,//String
|
||||
forward_date,//long
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue