<commit_before>package controller;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import model.domain.BotTelegram;
import org.telegram.telegrambots.TelegramBotsApi;
import org.telegram.telegrambots.api.methods.send.SendMessage;
import org.telegram.telegrambots.api.objects.Message;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.exceptions.TelegramApiException;
import org.telegram.telegrambots.logging.BotLogger;
import view.Programa;

/**
 * @version 1.0
 * @author <NAME>
 */
public class ChatBot extends TelegramLongPollingBot {

    private static final Logger LOG = Logger.getLogger(ChatBot.class.getName());
    private static final Programa MYFRAME = new Programa();
    private static BotTelegram bot;

    public static void main(String[] args) {
        PropertiesController properties = new PropertiesController();
        try {
            bot = properties.retornaConfiguracao();
        } catch (IOException ex) {
          LOG.log(Level.SEVERE, "Não foi possível retornar as configurações do BOT");
        }
        TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
        MYFRAME.setVisible(true);
        MYFRAME.setStatus("Inicializando...");
        try {
            telegramBotsApi.registerBot(new ChatBot());
        } catch (TelegramApiException e) {
            BotLogger.error(bot.getLogtag(), e);
        } finally {
            MYFRAME.setStatus("Online");
        }

    }

    @Override
    public String getBotToken() {
        return ChatBot.bot.getToken();
    }

    /**
     * Trata Notificação recebida pela API
     *
     * @param update
     */
    @Override
    public void onUpdateReceived(Update update) {
        if (update.hasMessage()) {
            Message message = update.getMessage();

            //Checa se a mensagem recebida é do tipo text
            if (message.hasText()) {
                String mensagem = message.getText();
                String nome = message.getChat().getFirstName();
                SendMessage sendMessageRequest = new SendMessage();
                sendMessageRequest.setChatId(message.getChatId().toString());
                                //checarPergunta(mensagem)
                MYFRAME.setMensagem(nome+":"+mensagem + "\n");
                List<String> iniciar = Arrays.asList("bom dia", "boa tarde", "boa noite", "oi", "ola", "olá", "hi", "hello");
                //Inicio comandos
                if (mensagem.equals("/info")) {
                    comandoInfo(sendMessageRequest, message);
                }
                else if (mensagem.equals("/start")) {
                    comandoStart(sendMessageRequest, message);
                }//Fim comandos
                //Mensagem inicial
                else if (iniciar.contains(mensagem.toLowerCase())||(mensagem.equals("/start"))) {
                    sendMessageRequest.setText("Olá, "+nome+" qual é sua duvida?");
                    enviarMensagem(sendMessageRequest);
                } else {
                    //Resposta padrão
                    sendMessageRequest.setText("Não sei responder isso: " + mensagem);
                    enviarMensagem(sendMessageRequest);
                }

            }
        }
    }
    public void comandoInfo(SendMessage sendMessageRequest, Message message){
        sendMessageRequest.setText("Nome: " + message.getChat().getFirstName()
                            + "\nSobrenome: " + message.getChat().getLastName()
                            + "\nTitulo: " + message.getChat().getTitle()
                            + "\nUser: " + message.getChat().getUserName()
                            + "\nHashCode: " + message.getChat().hashCode()
                            + "\nIdTelegram: " + message.getChat().getId());
        enviarMensagem(sendMessageRequest);
    }
    public void comandoStart(SendMessage sendMessageRequest, Message message){
        sendMessageRequest.setText("Olá " + message.getChat().getFirstName()
                            + ", é uma prazer falar como você, diga sua dúvida ou digite"
                            + " '/' para ver os comandos disponíveis");
        enviarMensagem(sendMessageRequest);
    }
    
    public void enviarMensagem(SendMessage sendMessageRequest) {
        try {
            sendMessage(sendMessageRequest);
        } catch (TelegramApiException e) {
            //

        }
    }

    @Override
    public String getBotUsername() {
        return ChatBot.bot.getUser();
    }
}<commit_msg>Alterações: - Melhorado o esquema de comandos do bot na classe principal - Finalizado mapeamento das classes Pergunta e Resposta - Ajustado o PerguntaDAO - Criado RespostaDAO - Criado metodo na classe Brain que consulta pergunta, registra se não 	existir e retorna a resposta se existir<commit_after>package controller;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import model.domain.BotTelegram;
import org.telegram.telegrambots.TelegramBotsApi;
import org.telegram.telegrambots.api.methods.send.SendMessage;
import org.telegram.telegrambots.api.objects.Message;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboard;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.exceptions.TelegramApiException;
import org.telegram.telegrambots.logging.BotLogger;
import view.Programa;

/**
 * @version 1.0
 * @author <NAME>
 */
public class ChatBot extends TelegramLongPollingBot {

    private static final Logger LOG = Logger.getLogger(ChatBot.class.getName());
    private static final Programa MYFRAME = new Programa();
    private static BotTelegram bot;
    
    public static void main(String[] args) {
        PropertiesController properties = new PropertiesController();
        try {
            bot = properties.retornaConfiguracao();
        } catch (IOException ex) {
          LOG.log(Level.SEVERE, "Não foi possível retornar as configurações do BOT");
        }
        TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
        MYFRAME.setVisible(true);
        MYFRAME.setStatus("Inicializando...");
        try {
            telegramBotsApi.registerBot(new ChatBot());
        } catch (TelegramApiException e) {
            BotLogger.error(bot.getLogtag(), e);
        } finally {
            MYFRAME.setStatus("Online");
        }

    }

    @Override
    public String getBotToken() {
        return ChatBot.bot.getToken();
    }

    /**
     * Trata Notificação recebida pela API
     *
     * @param update
     */
    @Override
    public void onUpdateReceived(Update update) {
        if (update.hasMessage()) {
            Message message = update.getMessage();

            //Checa se a mensagem recebida é do tipo text
            if (message.hasText()) {
                String mensagem = message.getText();
                String nome = message.getChat().getFirstName();
                SendMessage sendMessageRequest = new SendMessage();
                sendMessageRequest.setChatId(message.getChatId().toString());
                //checarPergunta(mensagem)
                MYFRAME.setMensagem(">> "+nome+":"+mensagem + "\n");
                List<String> iniciar = Arrays.asList("bom dia", "boa tarde", "boa noite", "oi", "ola", "olá", "hi", "hello");
                //Inicio comandos
                if (mensagem.equals("/info")) {
                    comandoInfo(sendMessageRequest, message);
                }
                else if (mensagem.equals("/start")) {
                    comandoStart(sendMessageRequest, message);
                }//Fim comandos
                //Mensagem inicial
                else if (iniciar.contains(mensagem.toLowerCase())) {
                    sendMessageRequest.setText("Olá, "+nome+" qual é sua duvida?");
                    enviarMensagem(sendMessageRequest);
                } else {
                    //Resposta padrão
                    sendMessageRequest.setText("Não sei responder isso :("/* + mensagem*/);
                    enviarMensagem(sendMessageRequest);
                }

            }
        }
    }
    public void comandoInfo(SendMessage sendMessageRequest, Message message){
        sendMessageRequest.setText("Nome: " + message.getChat().getFirstName()
                            + "\nSobrenome: " + message.getChat().getLastName()
                            + "\nTitulo: " + message.getChat().getTitle()
                            + "\nUser: " + message.getChat().getUserName()
                            + "\nHashCode: " + message.getChat().hashCode()
                            + "\nIdTelegram: " + message.getChat().getId());
        enviarMensagem(sendMessageRequest);
    }
    public void comandoStart(SendMessage sendMessageRequest, Message message){
        sendMessageRequest.setText("Olá " + message.getChat().getFirstName()
                            + ",\né um prazer falar com você, diga sua dúvida ou digite"
                            + " ''/'' para ver os comandos disponíveis");
        
        
        enviarMensagem(sendMessageRequest);
    }
    
    public void enviarMensagem(SendMessage sendMessageRequest) {
        try {
            sendMessage(sendMessageRequest);
        } catch (TelegramApiException e) {
            //

        }
    }

    @Override
    public String getBotUsername() {
        return ChatBot.bot.getUser();
    }
}
{'fraction_non_alphanumeric': 0.10711323102447118, 'fraction_numerical': 0.00041476565740356696, 'mean_word_length': 2.14476687316596, 'pattern_counts': {'":': 2, '<': 7, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3853512', 'n_tokens_mistral': 2711, 'n_tokens_neox': 2656, 'n_words': 543}