WIP
This commit is contained in:
parent
df564169ee
commit
4bdca44b67
|
@ -0,0 +1,109 @@
|
||||||
|
package de.mrbesen.telegram;
|
||||||
|
|
||||||
|
import de.mrbesen.telegram.objects.TReplyMarkup;
|
||||||
|
|
||||||
|
public class MessageBuilder {
|
||||||
|
|
||||||
|
private String text;
|
||||||
|
private Formatting format = Formatting.None;
|
||||||
|
private boolean silent = false;
|
||||||
|
private boolean no_web_view = false;
|
||||||
|
private int reciver_id = 0;
|
||||||
|
private int reply_to_message_id = 0;
|
||||||
|
private TReplyMarkup markup = null;
|
||||||
|
|
||||||
|
public MessageBuilder setReciver(int id) {
|
||||||
|
reciver_id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MessageBuilder setText(String txt) {
|
||||||
|
txt = txt.trim();
|
||||||
|
if(txt.isEmpty()) {
|
||||||
|
throw new IllegalArgumentException("text is not allowed to be empty");
|
||||||
|
}
|
||||||
|
text = txt;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MessageBuilder setFormatting(Formatting form) {
|
||||||
|
format = form;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MessageBuilder setSilent(boolean b) {
|
||||||
|
silent = b;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MessageBuilder setNoWebView(boolean b) {
|
||||||
|
no_web_view = b;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MessageBuilder setMarkup(TReplyMarkup markup) {
|
||||||
|
this.markup = markup;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SendableMessage build() {
|
||||||
|
if(reciver_id == 0) {
|
||||||
|
throw new MissingException("Reciver");
|
||||||
|
}
|
||||||
|
if(text != null) {
|
||||||
|
if(text.trim().isEmpty()) {
|
||||||
|
throw new MissingException("Text");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new MissingException("Text");
|
||||||
|
}
|
||||||
|
String optionals = "";
|
||||||
|
if(format != Formatting.None) {
|
||||||
|
optionals += "&parse_mode=" + format.getname().toLowerCase();
|
||||||
|
}
|
||||||
|
if(reply_to_message_id != 0) {
|
||||||
|
optionals += "&reply_to_message_id=" + reply_to_message_id;
|
||||||
|
}
|
||||||
|
if(markup != null) {
|
||||||
|
optionals += "&reply_markup=" + markup.toJSONString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return new SendableMessage("chat_id=" + reciver_id + "&text=" + text.trim() + optionals + "&disable_web_page_preview=" + no_web_view + "&disable_notification=" + silent);
|
||||||
|
}
|
||||||
|
|
||||||
|
class SendableMessage {
|
||||||
|
private String q;
|
||||||
|
|
||||||
|
public SendableMessage(String q) {
|
||||||
|
this.q = q;
|
||||||
|
}
|
||||||
|
String getQ() {
|
||||||
|
return q;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Formatting {
|
||||||
|
None(""),
|
||||||
|
HTML("HTML"),
|
||||||
|
MD("Markdown");
|
||||||
|
|
||||||
|
private String apiname;
|
||||||
|
|
||||||
|
private Formatting(String s) {
|
||||||
|
apiname = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getname() {
|
||||||
|
return apiname;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MissingException extends RuntimeException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 2750912631502103642L;
|
||||||
|
|
||||||
|
public MissingException(String missing_obj) {
|
||||||
|
super("The Object " + missing_obj + " is missing or invalid.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,15 +11,16 @@ import javax.net.ssl.HttpsURLConnection;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import de.mrbesen.telegram.MessageBuilder.SendableMessage;
|
||||||
import de.mrbesen.telegram.commands.CommandManager;
|
import de.mrbesen.telegram.commands.CommandManager;
|
||||||
import de.mrbesen.telegram.event.Event;
|
import de.mrbesen.telegram.event.Event;
|
||||||
import de.mrbesen.telegram.event.EventManager;
|
import de.mrbesen.telegram.event.EventManager;
|
||||||
import de.mrbesen.telegram.event.events.UserSendAudioEvent;
|
import de.mrbesen.telegram.event.events.UserSendAudioEvent;
|
||||||
import de.mrbesen.telegram.event.events.UserSendMessageEvent;
|
import de.mrbesen.telegram.event.events.UserSendMessageEvent;
|
||||||
|
import de.mrbesen.telegram.objects.JSONBased.Member;
|
||||||
import de.mrbesen.telegram.objects.TAudio;
|
import de.mrbesen.telegram.objects.TAudio;
|
||||||
import de.mrbesen.telegram.objects.TMessage;
|
import de.mrbesen.telegram.objects.TMessage;
|
||||||
import de.mrbesen.telegram.objects.TUser;
|
import de.mrbesen.telegram.objects.TUser;
|
||||||
import de.mrbesen.telegram.objects.JSONBased.Member;
|
|
||||||
|
|
||||||
public class TelegramAPI implements Runnable {
|
public class TelegramAPI implements Runnable {
|
||||||
|
|
||||||
|
@ -64,7 +65,7 @@ public class TelegramAPI implements Runnable {
|
||||||
OutputStreamWriter wr = new OutputStreamWriter(con.getOutputStream());
|
OutputStreamWriter wr = new OutputStreamWriter(con.getOutputStream());
|
||||||
wr.write(parameter);
|
wr.write(parameter);
|
||||||
wr.flush();
|
wr.flush();
|
||||||
System.out.println( this.getClass().getSimpleName() + ": request: " + request + " -> " + con.getResponseCode() + ", " + con.getResponseMessage());
|
System.out.println( this.getClass().getSimpleName() + ": request: " + request + " content " + parameter + " -> " + con.getResponseCode() + ", " + con.getResponseMessage());
|
||||||
if(con.getResponseCode() == 200) {
|
if(con.getResponseCode() == 200) {
|
||||||
Scanner s = new Scanner(con.getInputStream());
|
Scanner s = new Scanner(con.getInputStream());
|
||||||
StringBuilder sb_apianswer = new StringBuilder();
|
StringBuilder sb_apianswer = new StringBuilder();
|
||||||
|
@ -79,6 +80,16 @@ public class TelegramAPI implements Runnable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TMessage sendMessage(SendableMessage msg) {
|
||||||
|
try {
|
||||||
|
JSONObject o = request("sendMessage", msg.getQ());
|
||||||
|
return new TMessage(o.getJSONObject("result"), this);
|
||||||
|
} catch(IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public void stop() {
|
public void stop() {
|
||||||
run = false;
|
run = false;
|
||||||
thread.interrupt();
|
thread.interrupt();
|
||||||
|
|
|
@ -4,8 +4,10 @@ import org.json.JSONObject;
|
||||||
|
|
||||||
public class JSONBased {
|
public class JSONBased {
|
||||||
|
|
||||||
private JSONObject base_json = null;
|
protected JSONObject base_json = null;
|
||||||
protected Member[] allowedmembers = {};
|
protected Member[] allowedmembers = {};
|
||||||
|
|
||||||
|
public JSONBased() {}
|
||||||
|
|
||||||
public JSONBased(JSONObject json) {
|
public JSONBased(JSONObject json) {
|
||||||
base_json = json;
|
base_json = json;
|
||||||
|
@ -33,6 +35,10 @@ public class JSONBased {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Member[] getAllowed() {
|
||||||
|
return allowedmembers;
|
||||||
|
}
|
||||||
|
|
||||||
public enum Member {
|
public enum Member {
|
||||||
|
|
||||||
|
@ -93,7 +99,7 @@ public class JSONBased {
|
||||||
//===== END FILE =====
|
//===== END FILE =====
|
||||||
}
|
}
|
||||||
|
|
||||||
private class UnallowedMemberException extends RuntimeException {
|
protected class UnallowedMemberException extends RuntimeException {
|
||||||
private static final long serialVersionUID = -253424139568749269L;
|
private static final long serialVersionUID = -253424139568749269L;
|
||||||
|
|
||||||
public UnallowedMemberException(Member mem, JSONBased b) {
|
public UnallowedMemberException(Member mem, JSONBased b) {
|
||||||
|
|
|
@ -2,18 +2,14 @@ package de.mrbesen.telegram.objects;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
public class TDocument extends JSONBased {
|
public class TDocument extends TSendable {
|
||||||
|
|
||||||
private String file_id;
|
|
||||||
|
|
||||||
public TDocument(JSONObject o) {
|
public TDocument(JSONObject o) {
|
||||||
super(o);
|
super(o);
|
||||||
file_id = o.getString("file_id");
|
|
||||||
allowedmembers = new Member[] {Member.thumb, Member.file_name, Member.mime_type, Member.file_size};
|
allowedmembers = new Member[] {Member.thumb, Member.file_name, Member.mime_type, Member.file_size};
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getFile_id() {
|
public String getFile_id() {
|
||||||
return file_id;
|
return file_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,10 @@ public class TInlineKeyboardMarkup implements TReplyMarkup {
|
||||||
|
|
||||||
ArrayList<JSONArray> arr_btn = new ArrayList<>();
|
ArrayList<JSONArray> arr_btn = new ArrayList<>();
|
||||||
|
|
||||||
|
public TInlineKeyboardMarkup() {
|
||||||
|
this(1);
|
||||||
|
}
|
||||||
|
|
||||||
public TInlineKeyboardMarkup(int rows) {
|
public TInlineKeyboardMarkup(int rows) {
|
||||||
if(rows < 1)
|
if(rows < 1)
|
||||||
throw new IllegalArgumentException("You need at least one row.");
|
throw new IllegalArgumentException("You need at least one row.");
|
||||||
|
@ -16,21 +20,32 @@ public class TInlineKeyboardMarkup implements TReplyMarkup {
|
||||||
|
|
||||||
for( int row = 0; row < rows; row++ ) {
|
for( int row = 0; row < rows; row++ ) {
|
||||||
arr_btn.add(new JSONArray());
|
arr_btn.add(new JSONArray());
|
||||||
}
|
}
|
||||||
System.out.println("break here");
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
public TInlineKeyboardMarkup addButton(String title, String url, int row) {
|
* Insert button in first line
|
||||||
|
* @param title
|
||||||
|
* @param url
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public TInlineKeyboardMarkup addUrlButton(String title, String url) {
|
||||||
|
addUrlButton(title, url, 1);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Insert button in nth line
|
||||||
|
* @param title
|
||||||
|
* @param url
|
||||||
|
* @param row
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public TInlineKeyboardMarkup addUrlButton(String title, String url, int row) {
|
||||||
arr_btn.get(row-1).put(new JSONObject().put("text", title).put("url", url));
|
arr_btn.get(row-1).put(new JSONObject().put("text", title).put("url", url));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toJSONString() {
|
public String toJSONString() {
|
||||||
JSONArray ja = new JSONArray(arr_btn);
|
return new JSONObject().put("inline_keyboard", new JSONArray(arr_btn)).toString();
|
||||||
JSONObject jo = new JSONObject();
|
|
||||||
jo.put("inline_keyboard", ja);
|
|
||||||
return jo.toString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package de.mrbesen.telegram.objects;
|
package de.mrbesen.telegram.objects;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import de.mrbesen.telegram.TelegramAPI;
|
import de.mrbesen.telegram.TelegramAPI;
|
||||||
|
@ -16,6 +18,31 @@ public class TMessage extends JSONBased {
|
||||||
|
|
||||||
public void sendTo(TUser u) {
|
public void sendTo(TUser u) {
|
||||||
//if this message already exists forward, if not send directly.
|
//if this message already exists forward, if not send directly.
|
||||||
|
throw new RuntimeException("not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean reply(String msg) {
|
||||||
|
if(from == null) {
|
||||||
|
throw new RuntimeException("no from defined!");
|
||||||
|
} else {
|
||||||
|
return from.sendMessage(msg, null, message_id);
|
||||||
|
}
|
||||||
|
// try {
|
||||||
|
// return api.request("sendMessage", "chat_id=" + from.getID() + "&text=" + msg + "&reply_to_message_id=" + message_id ).getBoolean("ok") ;
|
||||||
|
// } catch (IOException | NullPointerException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
public TMessage forward(TUser us) {
|
||||||
|
try {
|
||||||
|
String fro = String.valueOf(forward_from == null ? from.getID() : forward_from.getID());
|
||||||
|
return new TMessage(api.request("forwardMessage", "chat_id=" + us.getID() + "&from_chat_id=" + fro + "&message_id=" + message_id).getJSONObject("result"), api);
|
||||||
|
} catch (IOException | NullPointerException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TMessage(JSONObject json, TelegramAPI api) {
|
public TMessage(JSONObject json, TelegramAPI api) {
|
||||||
|
|
|
@ -2,8 +2,6 @@ package de.mrbesen.telegram.objects;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import de.mrbesen.telegram.objects.JSONBased.Member;
|
|
||||||
|
|
||||||
public class TPhotoSize extends TDocument {
|
public class TPhotoSize extends TDocument {
|
||||||
|
|
||||||
private int width, height;
|
private int width, height;
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
package de.mrbesen.telegram.objects;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.json.JSONArray;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
public class TReplyKeyboardMarkup implements TReplyMarkup {
|
||||||
|
|
||||||
|
boolean isOneTimeKeyboard = false;
|
||||||
|
boolean isResizeKeyboard = false;
|
||||||
|
boolean isSelective = true;
|
||||||
|
|
||||||
|
ArrayList<JSONArray> arr_btn = new ArrayList<>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* One line ReplyKeyboard
|
||||||
|
*/
|
||||||
|
public TReplyKeyboardMarkup() {
|
||||||
|
this(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* multi-line ReplyKeyboard
|
||||||
|
* @param rows
|
||||||
|
*/
|
||||||
|
public TReplyKeyboardMarkup(int rows) {
|
||||||
|
if(rows < 1)
|
||||||
|
throw new IllegalArgumentException("You need at least one row.");
|
||||||
|
arr_btn = new ArrayList<JSONArray>();
|
||||||
|
|
||||||
|
for( int row = 0; row < rows; row++ ) {
|
||||||
|
arr_btn.add(new JSONArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toJSONString() {
|
||||||
|
return new JSONObject().put("keyboard", new JSONArray(arr_btn))
|
||||||
|
.put("one_time_keyboard", isOneTimeKeyboard)
|
||||||
|
.put("resize_keyboard", isResizeKeyboard)
|
||||||
|
.put("selective", isSelective)
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Insert button in first line
|
||||||
|
* @param title
|
||||||
|
* @param url
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public TReplyKeyboardMarkup addButton(String title) {
|
||||||
|
addButton(title, 1);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Insert button in nth line
|
||||||
|
* @param title
|
||||||
|
* @param url
|
||||||
|
* @param row
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public TReplyKeyboardMarkup addButton(String title, int row) {
|
||||||
|
arr_btn.get(row-1).put(title);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOneTimeKeyboard() {
|
||||||
|
return isOneTimeKeyboard;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TReplyKeyboardMarkup setOneTimeKeyboard(boolean isOneTimeKeyboard) {
|
||||||
|
this.isOneTimeKeyboard = isOneTimeKeyboard;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isResizeKeyboard() {
|
||||||
|
return isResizeKeyboard;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TReplyKeyboardMarkup setResizeKeyboard(boolean isResizeKeyboard) {
|
||||||
|
this.isResizeKeyboard = isResizeKeyboard;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSelective() {
|
||||||
|
return isSelective;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TReplyKeyboardMarkup setSelective(boolean isSelective) {
|
||||||
|
this.isSelective = isSelective;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package de.mrbesen.telegram.objects;
|
||||||
|
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
public class TReplyKeyboardRemove implements TReplyMarkup {
|
||||||
|
|
||||||
|
boolean isSelective = true;
|
||||||
|
|
||||||
|
public boolean isSelective() {
|
||||||
|
return isSelective;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TReplyKeyboardRemove setSelective(boolean isSelective) {
|
||||||
|
this.isSelective = isSelective;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toJSONString() {
|
||||||
|
return new JSONObject().put("remove_keyboard", true).put("selective", isSelective).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
package de.mrbesen.telegram.objects;
|
||||||
|
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
public class TSendable extends JSONBased {
|
||||||
|
|
||||||
|
protected String file_id;
|
||||||
|
|
||||||
|
public void set(Member mem, Object value ) {
|
||||||
|
if(isAllowd(mem)) {
|
||||||
|
if(value instanceof Integer)
|
||||||
|
base_json.put(mem.name(), (int) value);
|
||||||
|
else if(value instanceof Boolean)
|
||||||
|
base_json.put(mem.name(), (boolean) value);
|
||||||
|
else
|
||||||
|
base_json.put(mem.name(), value);
|
||||||
|
} else {
|
||||||
|
throw new UnallowedMemberException(mem, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSendable(JSONObject o) {
|
||||||
|
super(o);
|
||||||
|
file_id = o.getString("file_id");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean upload() {
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -67,23 +67,29 @@ public class TUser {
|
||||||
sendMessage(api.getHelpMessage());
|
sendMessage(api.getHelpMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendMessage(String text) {
|
public boolean sendMessage(String text) {
|
||||||
sendMessage(text, null);
|
return sendMessage(text, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendMessage(String text, TReplyMarkup rm) {
|
public boolean sendMessage(String text, TReplyMarkup rm) {
|
||||||
|
return sendMessage(text, rm, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean sendMessage(String text, TReplyMarkup rm, int reply_to_msg) {
|
||||||
if(api == null) {
|
if(api == null) {
|
||||||
System.err.println("api == null!");
|
System.err.println("api == null!");
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
String replyto = (reply_to_msg > 0 ? "&reply_to_message_id=" +reply_to_msg : "");
|
||||||
try {
|
try {
|
||||||
String reply= (rm == null ? "" : "&reply_markup=" + URLEncoder.encode(rm.toJSONString(), "UTF-8"));
|
String replymarkup = (rm == null ? "" : "&reply_markup=" + URLEncoder.encode(rm.toJSONString(), "UTF-8"));
|
||||||
api.request("sendMessage", "chat_id=" + id
|
return api.request("sendMessage", "chat_id=" + id
|
||||||
+ "&text=" + URLEncoder.encode(text, "UTF-8")
|
+ "&text=" + URLEncoder.encode(text, "UTF-8")
|
||||||
+ reply );
|
+ replymarkup + replyto).getBoolean("ok");
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendStatus(Status status) {
|
public void sendStatus(Status status) {
|
||||||
|
|
|
@ -1,36 +1,47 @@
|
||||||
package de.mrbesen.test;
|
package de.mrbesen.test;
|
||||||
|
|
||||||
import java.util.Random;
|
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
import de.mrbesen.telegram.MessageBuilder;
|
||||||
import de.mrbesen.telegram.TelegramAPI;
|
import de.mrbesen.telegram.TelegramAPI;
|
||||||
import de.mrbesen.telegram.commands.CommandHandler;
|
|
||||||
import de.mrbesen.telegram.event.EventHandler;
|
import de.mrbesen.telegram.event.EventHandler;
|
||||||
import de.mrbesen.telegram.event.EventListener;
|
import de.mrbesen.telegram.event.EventListener;
|
||||||
import de.mrbesen.telegram.event.events.UserSendMessageEvent;
|
import de.mrbesen.telegram.event.events.UserSendMessageEvent;
|
||||||
import de.mrbesen.telegram.objects.TInlineKeyboardMarkup;
|
import de.mrbesen.telegram.objects.TMessage;
|
||||||
import de.mrbesen.telegram.objects.TUser;
|
|
||||||
import de.mrbesen.telegram.objects.TUser.Status;
|
import de.mrbesen.telegram.objects.TUser.Status;
|
||||||
|
import de.mrbesen.test.commands.InlineKeyboardTC;
|
||||||
|
import de.mrbesen.test.commands.ReplyKeyboardRemoveTC;
|
||||||
|
import de.mrbesen.test.commands.ReplyKeyboardTestCase;
|
||||||
|
import de.mrbesen.test.commands.SimpleTestCase;
|
||||||
|
|
||||||
public class Main implements CommandHandler, Runnable, EventListener {
|
public class Main implements Runnable, EventListener {
|
||||||
|
|
||||||
TelegramAPI api;
|
TelegramAPI api;
|
||||||
|
private int action = 0;
|
||||||
|
private TMessage oldmsg = null;
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
new Main().run();
|
new Main().run();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Main() {
|
public Main() {
|
||||||
api = new TelegramAPI("577609137:AAGrlfMHAOQPzN6w9ceNSgFZZCbaiK4gAnw");
|
api = new TelegramAPI("577609137:AAGrlfMHAOQPzN6w9ceNSgFZZCbaiK4gAnw");
|
||||||
api.getCommandManager().registerCommand("test", this);
|
api.getCommandManager().registerCommand("test", new SimpleTestCase());
|
||||||
|
api.getCommandManager().registerCommand("inlinekb", new InlineKeyboardTC());
|
||||||
|
api.getCommandManager().registerCommand("replykb", new ReplyKeyboardTestCase());
|
||||||
|
api.getCommandManager().registerCommand("replykbrm", new ReplyKeyboardRemoveTC());
|
||||||
api.getEventManager().registerEvent(this);
|
api.getEventManager().registerEvent(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void eventbla(UserSendMessageEvent e) {
|
public void eventbla(UserSendMessageEvent e) {
|
||||||
e.getUser().sendMessage(e.getMessage().getText().replace(' ', '-'));
|
api.sendMessage(new MessageBuilder().setText("this is a reply").setReciver(e.getUser().getID()).setSilent(true).setNoWebView(true).build());
|
||||||
int i = new Random().nextInt(Status.values().length);
|
if(oldmsg != null) {
|
||||||
e.getUser().sendStatus(Status.values()[i]);
|
oldmsg.forward(e.getUser());
|
||||||
|
}
|
||||||
|
e.getUser().sendStatus(Status.values()[action++]);
|
||||||
|
action%=Status.values().length;
|
||||||
|
oldmsg = e.getMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -43,19 +54,4 @@ public class Main implements CommandHandler, Runnable, EventListener {
|
||||||
System.out.println("Terminated.");
|
System.out.println("Terminated.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(TUser sender, String cmd, String[] args) {
|
|
||||||
if(cmd.equals("test")) {
|
|
||||||
// sender.sendMessage("Ja moin!");
|
|
||||||
|
|
||||||
sender.sendMessage("Links zu antippen:",
|
|
||||||
new TInlineKeyboardMarkup(2)
|
|
||||||
.addButton("gg","https://green-gaming.de", 1)
|
|
||||||
.addButton("ok", "https://oliver-kaestner.de", 1)
|
|
||||||
.addButton("mrB", "https://mrbesen.de", 2));
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
package de.mrbesen.test.commands;
|
||||||
|
|
||||||
|
import de.mrbesen.telegram.commands.CommandHandler;
|
||||||
|
import de.mrbesen.telegram.objects.TInlineKeyboardMarkup;
|
||||||
|
import de.mrbesen.telegram.objects.TUser;
|
||||||
|
|
||||||
|
public class InlineKeyboardTC implements CommandHandler {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(TUser sender, String cmd, String[] args) {
|
||||||
|
if(cmd.equals("inlinekb")) {
|
||||||
|
sender.sendMessage("Links zu antippen:",
|
||||||
|
new TInlineKeyboardMarkup(2)
|
||||||
|
.addUrlButton("gg","https://green-gaming.de", 1)
|
||||||
|
.addUrlButton("ok", "https://oliver-kaestner.de", 1)
|
||||||
|
.addUrlButton("mrB", "https://mrbesen.de", 2));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package de.mrbesen.test.commands;
|
||||||
|
|
||||||
|
import de.mrbesen.telegram.commands.CommandHandler;
|
||||||
|
import de.mrbesen.telegram.objects.TReplyKeyboardRemove;
|
||||||
|
import de.mrbesen.telegram.objects.TUser;
|
||||||
|
|
||||||
|
public class ReplyKeyboardRemoveTC implements CommandHandler {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(TUser sender, String cmd, String[] args) {
|
||||||
|
if(cmd.equals("replykbrm")) {
|
||||||
|
sender.sendMessage("Entferne TReplyKeyboard",
|
||||||
|
new TReplyKeyboardRemove());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
|
||||||
|
package de.mrbesen.test.commands;
|
||||||
|
|
||||||
|
import de.mrbesen.telegram.commands.CommandHandler;
|
||||||
|
import de.mrbesen.telegram.objects.TReplyKeyboardMarkup;
|
||||||
|
import de.mrbesen.telegram.objects.TUser;
|
||||||
|
|
||||||
|
public class ReplyKeyboardTestCase implements CommandHandler {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(TUser sender, String cmd, String[] args) {
|
||||||
|
if(cmd.equals("replykb")) {
|
||||||
|
sender.sendMessage("Buttons zum Antippen:",
|
||||||
|
new TReplyKeyboardMarkup(2)
|
||||||
|
.addButton("gg", 1)
|
||||||
|
.addButton("ok", 1)
|
||||||
|
.addButton("mrB", 2)
|
||||||
|
.setOneTimeKeyboard(true)
|
||||||
|
.setResizeKeyboard(true));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
package de.mrbesen.test.commands;
|
||||||
|
|
||||||
|
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) {
|
||||||
|
if(cmd.equals("test")) {
|
||||||
|
sender.sendMessage("HI");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue