/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package qa.qcri.aidr.collector.utils; /** * * @author Kushal */ import java.util.Date; import redis.clients.jedis.JedisPubSub; import com.google.gson.JsonObject; import com.google.gson.JsonParser; public class CollectorSubscriber extends JedisPubSub { private static Long tweetCount=0L; private Date tweetTimestamp=null; private String tweetText = ""; private boolean quiet; public Long getTweetCount() { return tweetCount; } public CollectorSubscriber(Boolean toQuiet){ this.quiet = toQuiet; } @Override public void onMessage(String channel, String message) { tweetCount++; if(!quiet){ getTweet(message); System.out.println("[" + tweetTimestamp.getTime()+ "]" + tweetText.substring(0, Math.min(40, tweetText.length()))); } } @Override public void onPMessage(String pattern, String channel, String message) { // TODO Auto-generated method stub } @Override public void onSubscribe(String channel, int subscribedChannels) { // TODO Auto-generated method stub } @Override public void onUnsubscribe(String channel, int subscribedChannels) { // TODO Auto-generated method stub } @Override public void onPUnsubscribe(String pattern, int subscribedChannels) { // TODO Auto-generated method stub } @Override public void onPSubscribe(String pattern, int subscribedChannels) { // TODO Auto-generated method stub } private void getTweet(String line) { JsonParser parser = new JsonParser(); JsonObject jsonObj = (JsonObject) parser.parse(line); if (jsonObj.get("timestamp_ms") != null) { tweetTimestamp = new Date(jsonObj.get("timestamp_ms").getAsLong()); } if (jsonObj.get("text") != null) { tweetText= jsonObj.get("text").getAsString(); } } }