longpolling

This commit is contained in:
mrbesen 2019-02-25 02:51:17 +01:00
parent 6bc04e719a
commit a8011462f3
Signed by: MrBesen
GPG Key ID: 596B2350DCD67504
3 changed files with 19 additions and 8 deletions

View File

@ -44,6 +44,15 @@ public class TelegramAPI implements Runnable {
private String apikey;
private Thread thread;
private boolean run = true;
private boolean longpolling = false;
public boolean isLongpolling() {
return longpolling;
}
public void setLongpolling(boolean longpolling) {
this.longpolling = longpolling;
}
private String helpmessage = "generic helppage\nuse TelegramAPI.setHelpText(java.lang.String) to change this.";
//stats
@ -51,7 +60,7 @@ public class TelegramAPI implements Runnable {
protected long start = 0;
private LinkedList<TUser> users = new LinkedList<>();
private CommandManager cmdmgr = new CommandManager();
private CommandManager cmdmgr = new CommandManager(this);
private EventManager evntmgr = new EventManager();
//async
@ -239,7 +248,7 @@ public class TelegramAPI implements Runnable {
private void fetchUpdates() {
try {
processUpdates(request("getUpdates", "offset=" + msg_offset, false));
processUpdates(request("getUpdates", "offset=" + msg_offset + "&timeout=" + (longpolling ? updateInterval : 1), true));
} catch (IOException e) {
log.log("error getting updates.", e);
}

View File

@ -1,18 +1,24 @@
package de.mrbesen.telegram.commands;
import org.apache.logging.log4j.message.TimestampMessage;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import de.mrbesen.telegram.objects.TMessage;
import de.mrbesen.telegram.objects.TUser;
import de.mrbesen.telegram.*;
public class CommandManager {
private final static String CMDPATTERN = "^[\\w-]+$";
private final TelegramAPI api;
private Multimap<String, ICommandHandler> handlerlist = ArrayListMultimap.create();//list of all registered CommandHandler
public CommandManager() { }
public CommandManager(TelegramAPI a) {
api = a;
}
public void onCommand(String line, TUser sender, TMessage json) {//called by the api (/-prefix already removed)
line = line.trim();
@ -46,7 +52,7 @@ public class CommandManager {
}
//do smth. with result
if(!result) {
sender.sendHelpPage();
TUser.sendMessage(api, json.getChatID(), api.getHelpMessage(), null, 0, true, null);
}
}

View File

@ -67,10 +67,6 @@ public class TUser {
return uname;
}
public void sendHelpPage() {
sendMessage(api.getHelpMessage());
}
public boolean sendMessage(String text) {
return sendMessage(text, null);
}