Sametime meets Watson

Share

Bots is a high topic these days and i revisited this kind of application last week.

I created a Translation Bot based on this article from IBM.

This Sametime Bot get the text, send to IBM Watson Translation Service and return the translated text to the user.

public void textReceived(ImEvent e) {           
        String q = e.getText();       
        //here we connect to watson and get the translation
        LanguageTranslation service = new LanguageTranslation();
        service.setUsernameAndPassword("<username>","<password>");
        service.setEndPoint("https://gateway.watsonplatform.net/language-translator/api");
        List<IdentifiedLanguage> identifiedLanguages = service.identify(e.getText()).execute();
        String lang = identifiedLanguages.get(0).getLanguage();
        String idiomaPt = "pt";
        String idiomaEn = "en";
        String idiomait = "it";
        if (lang.equals(idiomaPt) | lang.equals(idiomait)) {
            TranslationResult result = service.translate(e.getText(),Language.PORTUGUESE,Language.ENGLISH).execute();
             e.getIm().sendText(true, result.getFirstTranslation()+".");
            
        } else if (lang.equals(idiomaEn)) {
            TranslationResult result = service.translate(e.getText(),Language.ENGLISH,Language.PORTUGUESE).execute();
             e.getIm().sendText(true, result.getFirstTranslation()+".");
            
        } else {
            e.getIm().sendText(true,"Não consigo traduzir.");
        }
    
        System.err.println("Message received from " + e.getIm().getPartner().getName());

    }

 

To run the bot i export the project as an executable JAR and run it on my linux server using the script bellow:

#!/bin/sh
SERVICE_NAME=STBot
PATH_TO_JAR=/etc/init.d/STBotV02.jar
PID_PATH_NAME=/etc/init.d/Stbot-pid
case $1 in
    start)
        echo "Starting $SERVICE_NAME ..."
        if [ ! -f $PID_PATH_NAME ]; then
            nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &
                        echo $! > $PID_PATH_NAME
            echo "$SERVICE_NAME started ..."
        else
            echo "$SERVICE_NAME is already running ..."
        fi
    ;;
    stop)
        if [ -f $PID_PATH_NAME ]; then
            PID=$(cat $PID_PATH_NAME);
            echo "$SERVICE_NAME stoping ..."
            kill $PID;
            echo "$SERVICE_NAME stopped ..."
            rm $PID_PATH_NAME
        else
            echo "$SERVICE_NAME is not running ..."
        fi
    ;;
    restart)
        if [ -f $PID_PATH_NAME ]; then
            PID=$(cat $PID_PATH_NAME);
            echo "$SERVICE_NAME stopping ...";
            kill $PID;
            echo "$SERVICE_NAME stopped ...";
            rm $PID_PATH_NAME
            echo "$SERVICE_NAME starting ..."
            nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &
                        echo $! > $PID_PATH_NAME
            echo "$SERVICE_NAME started ..."
        else
            echo "$SERVICE_NAME is not running ..."
        fi
    ;;
esac