package org.mcupdater.ravenbot.features;
import org.mcupdater.ravenbot.AbstractListener;
import org.mcupdater.ravenbot.Settings;
import org.mcupdater.ravenbot.SettingsManager;
import org.pircbotx.PircBotX;
import org.pircbotx.hooks.events.MessageEvent;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterFactory;
import twitter4j.conf.ConfigurationBuilder;
public class TwitterHandler extends AbstractListener
{
private final Twitter twitter;
public TwitterHandler() {
ConfigurationBuilder cb = new ConfigurationBuilder();
Settings current = SettingsManager.getInstance().getSettings();
cb.setDebugEnabled(true)
.setOAuthConsumerKey(current.getTwitCKey())
.setOAuthConsumerSecret(current.getTwitCSecret())
.setOAuthAccessToken(current.getTwitToken())
.setOAuthAccessTokenSecret(current.getTwitTSecret());
TwitterFactory tf = new TwitterFactory(cb.build());
twitter = tf.getInstance();
try {
System.out.println("Twitter User ID: " + twitter.getId());
System.out.println("Twitter Screen Name: " + twitter.getScreenName());
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void initCommands() {}
@Override
public void handleCommand(String sender, MessageEvent event, String command, String[] args) {}
@Override
public void onMessage(final MessageEvent event) {
PircBotX bot = event.getBot();
String[] splitMessage = event.getMessage().split(" ");
for (String aSplitMessage : splitMessage) {
if (aSplitMessage.contains("twitter.com") && aSplitMessage.contains("/status/")) {
int index = aSplitMessage.lastIndexOf("/") + 1;
long status = Long.parseLong(aSplitMessage.substring(index));
try {
Status lookup = twitter.showStatus(status);
bot.sendIRC().message(event.getChannel().getName(), lookup.getCreatedAt() + " @" + lookup.getUser().getScreenName() + ": " + lookup.getText());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}