package com.QA.connections.twitter; import com.QA.QAOperator; import org.jblooming.operator.Operator; import org.jblooming.persistence.exceptions.StoreException; import org.jblooming.utilities.JSP; import org.jblooming.waf.settings.ApplicationState; import twitter4j.DirectMessage; import twitter4j.TwitterException; public class TwitterUtilities { public static String getApiKey() { if (ApplicationState.platformConfiguration.development) { return ApplicationState.getApplicationSetting("TW_API_KEY_DEV"); } else { return ApplicationState.getApplicationSetting("TW_API_KEY"); } } public static String getApiKeySecret() { if (ApplicationState.platformConfiguration.development) { return ApplicationState.getApplicationSetting("TW_API_KEY_SECRET_DEV"); } else { return ApplicationState.getApplicationSetting("TW_API_KEY_SECRET"); } } /*public static boolean testAccessToken(MpOperator logged) { boolean hasValidAcces = true; String settings = ""; //logged.getTwitterSettings(); Twitter twitter = new TwitterFactory().getInstance(); twitter.setOAuthConsumer(getApiKey(), getApiKeySecret()); if (JSP.ex(settings)) { String[] settingsArray = settings.split("_"); String aceessToken = settingsArray[1]; String accessTokenSecret = settingsArray[2]; try { twitter.setOAuthAccessToken(new AccessToken(aceessToken, accessTokenSecret)); twitter.verifyCredentials(); } catch (TwitterException e) { if (e.getStatusCode() != 420) ; hasValidAcces = false; } } else { hasValidAcces = false; } return hasValidAcces; } */ /*if the user has a twitter username still unverified this method gives back the code*/ public static String getTwitterTemporaryCode(Operator op) { String code = ""; String twitterName = op.getOption("TWITTER_NAME"); if (JSP.ex(twitterName)) { String[] params = twitterName.split("---"); if (params.length > 1) { code = params[1]; } } return code; } /* this method gives you the twitter username of the operator it does not check if it is verified or not*/ public static String getTwitterUserName(Operator op) { String name = ""; String twitterName = op.getOption("TWITTER_NAME"); if (JSP.ex(twitterName)) { String[] params = twitterName.split("---"); name = params[0]; } return name; } /*this method return if a user has or not the twitter verified username*/ public static boolean hasVerifiedTwitterUsername(Operator op) { boolean isValid = true; String twitterName = op.getOption("TWITTER_NAME"); if (JSP.ex(twitterName)) { String[] params = twitterName.split("---"); if (params.length > 1) { isValid = false; } } else { isValid = false; } return isValid; } public static void setTwitterUserNameAsVerified(Operator op) throws StoreException, TwitterException { String name = ""; String twitterName = op.getOption("TWITTER_NAME"); if (JSP.ex(twitterName)) { String[] params = twitterName.split("---"); name = params[0]; } op.getOptions().put("TWITTER_NAME", name); op.store(); } public static boolean checkDMCode(DirectMessage message, QAOperator op) throws StoreException, TwitterException { String opName = TwitterUtilities.getTwitterUserName(op); String opCode = TwitterUtilities.getTwitterTemporaryCode(op); String sender = message.getSender().getScreenName(); String code = message.getText(); boolean result = false; if (sender.equals(opName)) { if (JSP.ex(opCode) && code.contains(opCode)) { TwitterUtilities.setTwitterUserNameAsVerified(op); result = true; } } return result; } }