Java源码示例:org.telegram.telegrambots.meta.bots.AbsSender

示例1
@Override
public void execute(AbsSender absSender, User user, Chat chat, String[] strings) {
    Subscribers subscribers = Subscribers.getInstance();
    String ans;

    Long id = chat.getId();

    boolean isSubscribed = subscribers.isSubscribed(id);

    if (isSubscribed) {
        subscribers.unsubscribe(id);
        ans = botStrings.get("message.unsub.success");
    } else {
        ans = botStrings.get("message.unsub.alreadyunsub");
    }

    SendMessage answer = new SendMessage();
    answer.setChatId(chat.getId().toString());
    answer.setText(ans);

    try {
        absSender.execute(answer);
    } catch (TelegramApiException e) {
        LOGGER.error(LOG_TAG, e);
    }
}
 
示例2
/**
 * Executes a command action if the command is registered.
 *
 * @note If the command is not registered and there is a default consumer,
 * that action will be performed
 *
 * @param absSender absSender
 * @param message input message
 * @return True if a command or default action is executed, false otherwise
 */
public final boolean executeCommand(AbsSender absSender, Message message) {
    if (message.hasText()) {
        String text = message.getText();
        if (text.startsWith(BotCommand.COMMAND_INIT_CHARACTER)) {
            String commandMessage = text.substring(1);
            String[] commandSplit = commandMessage.split(BotCommand.COMMAND_PARAMETER_SEPARATOR_REGEXP);

            String command = removeUsernameFromCommandIfNeeded(commandSplit[0]);

            if (commandRegistryMap.containsKey(command)) {
                String[] parameters = Arrays.copyOfRange(commandSplit, 1, commandSplit.length);
                commandRegistryMap.get(command).processMessage(absSender, message, parameters);
                return true;
            } else if (defaultConsumer != null) {
                defaultConsumer.accept(absSender, message);
                return true;
            }
        }
    }
    return false;
}
 
示例3
@Override
public void execute(AbsSender absSender, User user, Chat chat, String[] strings) {
    DatabaseManager databseManager = DatabaseManager.getInstance();
    StringBuilder messageBuilder = new StringBuilder();

    String userName = user.getFirstName() + " " + user.getLastName();

    if (databseManager.getUserStateForCommandsBot(user.getId())) {
        messageBuilder.append("Hi ").append(userName).append("\n");
        messageBuilder.append("i think we know each other already!");
    } else {
        databseManager.setUserStateForCommandsBot(user.getId(), true);
        messageBuilder.append("Welcome ").append(userName).append("\n");
        messageBuilder.append("this bot will demonstrate you the command feature of the Java TelegramBots API!");
    }

    SendMessage answer = new SendMessage();
    answer.setChatId(chat.getId().toString());
    answer.setText(messageBuilder.toString());

    try {
        absSender.execute(answer);
    } catch (TelegramApiException e) {
        BotLogger.error(LOGTAG, e);
    }
}
 
示例4
@Override
public void execute(AbsSender absSender, User user, Chat chat, String[] arguments) {
    DatabaseManager dbManager = DatabaseManager.getInstance();

    if (dbManager.getUserStateForCommandsBot(user.getId())) {
        dbManager.setUserStateForCommandsBot(user.getId(), false);
        String userName = user.getFirstName() + " " + user.getLastName();

        SendMessage answer = new SendMessage();
        answer.setChatId(chat.getId().toString());
        answer.setText("Good bye " + userName + "\n" + "Hope to see you soon!");

        try {
            absSender.execute(answer);
        } catch (TelegramApiException e) {
            BotLogger.error(LOGTAG, e);
        }
    }
}
 
示例5
@Override
public void execute(AbsSender absSender, User user, Chat chat, String[] strings) {

    if (!DatabaseManager.getInstance().getUserStateForCommandsBot(user.getId())) {
        return;
    }

    StringBuilder helpMessageBuilder = new StringBuilder("<b>Help</b>\n");
    helpMessageBuilder.append("These are the registered commands for this Bot:\n\n");

    for (IBotCommand botCommand : commandRegistry.getRegisteredCommands()) {
        helpMessageBuilder.append(botCommand.toString()).append("\n\n");
    }

    SendMessage helpMessage = new SendMessage();
    helpMessage.setChatId(chat.getId().toString());
    helpMessage.enableHtml(true);
    helpMessage.setText(helpMessageBuilder.toString());

    try {
        absSender.execute(helpMessage);
    } catch (TelegramApiException e) {
        BotLogger.error(LOGTAG, e);
    }
}
 
示例6
@Override
public void execute(AbsSender absSender, User user, Chat chat, String[] strings) {
    Subscribers subscribers = Subscribers.getInstance();
    String toSend;

    Long id = chat.getId();

    boolean isSubscribed = subscribers.isSubscribed(id);

    if (isSubscribed) {
        boolean isApproved = subscribers.isApproved(id);

        if (CONFIG.getApprovalType() == UserApprover.ApprovalType.ALL) {
            toSend = botStrings.get("message.status.approved");
        } else {
            toSend = isApproved
                    ? botStrings.get("message.status.approved")
                    : botStrings.get("message.status.unapproved");
        }
    } else {
        toSend = botStrings.get("message.status.unsubscribed");
    }

    SendMessage answer = new SendMessage();
    answer.setChatId(chat.getId().toString());
    answer.setText(toSend);

    try {
        absSender.execute(answer);
    } catch (TelegramApiException e) {
        LOGGER.error(LOG_TAG, e);
    }
}
 
示例7
@Override
public void execute(AbsSender absSender, User user, Chat chat, String[] strings) {
    SendMessage answer = new SendMessage();
    answer.setChatId(chat.getId().toString());
    answer.setText(botStrings.get("message.help"));

    try {
        absSender.execute(answer);
    } catch (TelegramApiException e) {
        LOGGER.error(LOG_TAG, e);
    }
}
 
示例8
@Override
public void execute(AbsSender absSender, User user, Chat chat, String[] strings) {
    Subscribers subscribers = Subscribers.getInstance();
    String ans;

    Long id = chat.getId();
    String name = chat.isUserChat() ? user.toString() : chat.toString();

    boolean isSubscribed = subscribers.isSubscribed(id);

    if (!isSubscribed) {
        subscribers.subscribe(name, id);
        ans = botStrings.get("message.sub.success");
    } else {
        ans = botStrings.get("message.sub.alreadysub");
    }

    SendMessage answer = new SendMessage();
    answer.setChatId(chat.getId().toString());
    answer.setText(ans);

    try {
        absSender.execute(answer);
    } catch (TelegramApiException e) {
        LOGGER.error(LOG_TAG, e);
    }
}
 
示例9
@Override
public void execute(AbsSender absSender, User user, Chat chat, String[] strings) {
    SendMessage answer = new SendMessage();
    answer.setChatId(chat.getId().toString());
    answer.setText(botStrings.get("message.help"));

    try {
        absSender.execute(answer);
    } catch (TelegramApiException e) {
        LOGGER.error(LOG_TAG, e);
    }
}
 
示例10
@Override
public void execute(AbsSender absSender, User user, Chat chat, String[] arguments) {

    if (!DatabaseManager.getInstance().getUserStateForCommandsBot(user.getId())) {
        return;
    }

    String userName = chat.getUserName();
    if (userName == null || userName.isEmpty()) {
        userName = user.getFirstName() + " " + user.getLastName();
    }

    StringBuilder messageTextBuilder = new StringBuilder("Hello ").append(userName);
    if (arguments != null && arguments.length > 0) {
        messageTextBuilder.append("\n");
        messageTextBuilder.append("Thank you so much for your kind words:\n");
        messageTextBuilder.append(String.join(" ", arguments));
    }

    SendMessage answer = new SendMessage();
    answer.setChatId(chat.getId().toString());
    answer.setText(messageTextBuilder.toString());

    try {
        absSender.execute(answer);
    } catch (TelegramApiException e) {
        BotLogger.error(LOGTAG, e);
    }
}
 
示例11
@Override
public void registerDefaultAction(BiConsumer<AbsSender, Message> defaultConsumer) {
    this.defaultConsumer = defaultConsumer;
}
 
示例12
@Override
public final void execute(AbsSender absSender, User user, Chat chat, String[] arguments) {
}
 
示例13
@Override
public void registerDefaultAction(BiConsumer<AbsSender, Message> defaultConsumer) {
    commandRegistry.registerDefaultAction(defaultConsumer);
}
 
示例14
/**
 * Register a default action when there is no command register that match the message sent
 * @param defaultConsumer Consumer to evaluate the message
 *
 * @note Use this method if you want your bot to execute a default action when the user
 * sends a command that is not registered.
 */
void registerDefaultAction(BiConsumer<AbsSender, Message> defaultConsumer);
 
示例15
/**
 * Process the message and execute the command
 *
 * @param absSender absSender to send messages over
 * @param message   the message to process
 */
void processMessage(AbsSender absSender, Message message, String[] arguments);
 
示例16
/**
 * Process the message and execute the command
 *
 * @param absSender absSender to send messages over
 * @param message   the message to process
 * @param arguments passed arguments
 */
@Override
public void processMessage(AbsSender absSender, Message message, String[] arguments) {
    execute(absSender, message.getFrom(), message.getChat(), message.getMessageId(), arguments);
}
 
示例17
/**
 * Execute the command
 *
 * @param absSender absSender to send messages over
 * @param user      the user who sent the command
 * @param chat      the chat, to be able to send replies
 * @param messageId message id for interaction
 * @param arguments passed arguments
 */
public abstract void execute(AbsSender absSender, User user, Chat chat, Integer messageId, String[] arguments);
 
示例18
/**
 * Process the message and execute the command
 *
 * @param absSender absSender to send messages over
 * @param message   the message to process
 * @param arguments passed arguments
 */
public void processMessage(AbsSender absSender, Message message, String[] arguments) {
    execute(absSender, message.getFrom(), message.getChat(), arguments);
}
 
示例19
/**
 * Execute the command
 *
 * @param absSender absSender to send messages over
 * @param user      the user who sent the command
 * @param chat      the chat, to be able to send replies
 * @param arguments passed arguments
 */
public abstract void execute(AbsSender absSender, User user, Chat chat, String[] arguments);