Example usage for twitter4j QueryResult getTweets

List of usage examples for twitter4j QueryResult getTweets

Introduction

In this page you can find the example usage for twitter4j QueryResult getTweets.

Prototype

List<Status> getTweets();

Source Link

Usage

From source file:twittynumnum.BackwardGrinder.java

public void grind(String queryString) {

    try {/*  w w  w.j  ava2 s .c  o m*/
        Query query = new Query(queryString);
        QueryResult result;
        do {
            result = twitter.search(query);
            List<Status> tweets = result.getTweets();
            for (Status tweet : tweets) {
                System.out.println("@" + tweet.getUser().getScreenName() + " - " + tweet.getText() + " - "
                        + tweet.getCreatedAt());
            }
        } while ((query = result.nextQuery()) != null);
        System.exit(0);
    } catch (TwitterException te) {
        te.printStackTrace();
        System.out.println("Failed to search tweets: " + te.getMessage());
        System.exit(-1);
    }
}

From source file:uk.ac.essex.wonderland.modules.twitter.client.TwitterCell.java

License:Open Source License

private void updateQueryResult(QueryResult queryResult) {
    ui.setQueryString(queryResult.getQuery());
    @SuppressWarnings("unchecked")
    List<Tweet> tweetList = queryResult.getTweets();
    for (Tweet tweet : tweetList) {
        try {//from  w  ww  .j  a  v  a2s .  c  om
            tweetQueue.put(tweet);
        } catch (InterruptedException ex) {
            Logger.getLogger(TwitterCell.class.getName()).log(Level.SEVERE, "Failed to put tweet", ex);
        }
    }
}

From source file:uk.ac.essex.wonderland.modules.twitter.client.TwitterCell.java

License:Open Source License

@SuppressWarnings("unchecked")
List<Tweet> getTweetList() {
    QueryResult result = clientState.getQueryResult();
    if (result != null) {
        return result.getTweets();
    } else {/*  ww  w  . j  a v  a 2s.  co  m*/
        return null;
    }
}

From source file:uk.ac.essex.wonderland.modules.twitter.client.TwitterPanel.java

License:Open Source License

private void searchButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_searchButtonActionPerformed

    if (DEBUG) {/*from   w  ww.j a  v  a  2s  . c o  m*/
        String queryString = queryField.getText().trim();
        if (queryString.isEmpty()) {
            return;
        }
        Query query = new Query(queryString);
        query.setLang("en");

        Twitter twitter = new TwitterFactory().getInstance();
        try {
            QueryResult result = twitter.search(query);
            String warning = result.getWarning();
            if (warning != null) {
                System.err.println(warning);
            }
            @SuppressWarnings("unchecked")
            List<Tweet> tweets = result.getTweets();
            for (Tweet tweet : tweets) {
                addTweet(tweet);
            }
        } catch (TwitterException ex) {
            Logger.getLogger(TwitterPanel.class.getName()).log(Level.SEVERE, null, ex);
        }
    } else {
        String query = queryField.getText().trim();
        if (!query.isEmpty()) {
            cell.performQuery(query);
        }
    }

}

From source file:uk.ac.susx.tag.method51.twitter.pipeline.TweetSearch.java

License:Apache License

@Override
protected void doWork() throws Exception {
    try {/*from   w w w .  ja va2  s  . co  m*/

        final QueryResult result = twitter.search(query);

        final List<Status> statuses = result.getTweets();
        final List<Tweet> tweets = new ArrayList<>();

        for (final Status status : statuses) {

            getStats().update(status);

            final Tweet tweet = new Tweet(status);

            //strip out descs and urls
            if (!incProfileDescriptionUrl) {
                tweet.setDescription(null);
                tweet.setUrl(null);
            }

            tweets.add(tweet);

        }

        LOG.info("got {} tweets", tweets.size());
        long minId = getStats().getMinId();
        LOG.info("min id {}", new DateTime(Util.getInfoFromId(minId)[0]).toString("yyyy-MM-dd HH:mm:ss"));

        getStats().incrementTotal(tweets.size());

        LOG.info("{} / {} = {} tps", getStats().getTotal(), getStats().getDuration(TimeUnit.SECONDS),
                getStats().getTweetsPer(TimeUnit.SECONDS));

        produce(tweets);

        if (false && !result.hasNext()) {
            throw new ProducerUnderflowException("No more search result available.");
        } else if (tweets.size() == 0) {
            throw new ProducerUnderflowException("No more search result available.");
        } else if (searchRequested >= 0 && getStats().getTotal() >= searchRequested) {
            throw new ProducerUnderflowException("Reached requested size.");
        } else {
            query.setMaxId(getStats().getMinId() - 1);
            //query = result.nextQuery();
        }

    } catch (final TwitterException e) {

        switch (e.getStatusCode()) {

        case 130: {
            //over-capacity
            LOG.warn(e.getMessage());
            query.setMaxId(getStats().getMinId());

            int retryAfter = 60;

            LOG.info("rate limited - sleeping for {} seconds", retryAfter);
            Thread.sleep(1000 * (retryAfter + 1));
            break;
        }
        case 403:
            query.setMaxId(getStats().getMinId());
            LOG.info("ID reached: {}", getStats().getMinId());
            LOG.warn(e.getMessage());
            throw e;
            //break;

        case 420:
            LOG.info("rate limited - sleeping for 60 seconds", e);
            Thread.sleep(60000);
            break;

        case 429:
            LOG.error("", e);

            Map<String, RateLimitStatus> rateLimitStatus = twitter.getRateLimitStatus();
            int retryAfter = rateLimitStatus.get("/search/tweets").getSecondsUntilReset();

            LOG.info("rate limited - sleeping for {} seconds", retryAfter);
            Thread.sleep(1000 * (retryAfter + 1));

            break;
        default:
            throw e;
        }
    } catch (Method51Exception e) {
        setStateFailure(e);
    }
}

From source file:uniandes.cupi2.tweetSpy.mundo.TweeSpy.java

License:Academic Free License

/**
 * Retorna la lista de Usuarios que se encuantran en cierto indice.
 * @param indice/*  w ww  .  ja v  a 2  s.  co  m*/
 * @return
 */
public ListaDoblementeEncadenada<Usuario> darUsuariosEnIndice(String indice) {

    ListaDoblementeEncadenada<Usuario> listaIndice = new ListaDoblementeEncadenada<Usuario>();
    try {

        //Para buscaar por indices

        Query query = new Query(indice);
        QueryResult result;

        result = user.search(query);

        List<Status> tweets = result.getTweets();
        for (int i = 0; i < tweets.size(); i++) {
            Status tweet = (Status) tweets.get(i);
            String nombre = tweet.getUser().getName();
            Usuario nuevoAmigo = new Usuario(nombre, "", "");
            listaIndice.agregarFinal(nuevoAmigo);
        }

        // contenedor?

    } catch (Exception e) {
    }
    return listaIndice;
}

From source file:uniandes.edu.twitterreader.TwitterApp.java

/**
 * Reads all twetts accoding to TWITTER_QUERIES with JSON format and inserts
 * in MongoDB collection/*from  w  ww  . j  a v a 2 s .c o  m*/
 *
 * @param writesFile writes an additional file in TWEETS_PATH if true
 */
public void readColombiaTopics(boolean writesFile) {

    PrintWriter writer = null;

    try {
        if (writesFile) {
            writer = new PrintWriter(TWEETS_PATH, "UTF-8");
        }

        for (String queryString : TWITTER_QUERIES) {
            Query query = new Query(queryString);
            query.setSince(QUERY_SINCE_DATE);
            query.setUntil(QUERY_LAST_DATE);
            QueryResult result;
            do {
                result = twitter.search(query);
                List<Status> tweets = result.getTweets();
                for (Status tweet : tweets) {
                    String jsonTweet = TwitterObjectFactory.getRawJSON(tweet);
                    if (writesFile && writer != null) {
                        writer.println(jsonTweet);
                    }
                    mongoCollection.insertOne(Document.parse(jsonTweet));
                }
            } while ((query = result.nextQuery()) != null);
        }

    } catch (FileNotFoundException | UnsupportedEncodingException | TwitterException ex) {
        Logger.getLogger(TwitterApp.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        if (writesFile && writer != null) {
            writer.close();
        }
    }

}

From source file:uta.ak.CollectTweets.java

public void collectTweetsByFileList(String sinceDate, String untilDate, String tag) {
    try {//from   w  w  w  . ja v  a  2  s  . c  o m
        // The factory instance is re-useable and thread safe.
        System.out.println("Start to collect tweets from :");
        Set<String> mediaList = new HashSet<String>();
        Resource res = new ClassPathResource("new-social-meida-list.txt");
        //                File stopwords=res.getFile();
        //      File stopwords=new File("/Users/zhangcong/dev/corpus/StopWordTable2.txt");
        InputStreamReader isr = new InputStreamReader(res.getInputStream());
        //            File medias=new File(path);
        //            BufferedReader mdsreader = new BufferedReader(new FileReader(medias));
        BufferedReader mdsreader = new BufferedReader(isr);
        String tempString = mdsreader.readLine();
        while ((tempString = mdsreader.readLine()) != null) {
            System.out.println(tempString.toLowerCase());
            mediaList.add(tempString.toLowerCase());
        }

        ConfigurationBuilder cb = new ConfigurationBuilder();
        cb.setDebugEnabled(true).setOAuthConsumerKey("LuhVZOucqdHX6x0lcVgJO6QK3")
                .setOAuthConsumerSecret("6S7zbGLvHMXDMgRXq7jRIA6QmMpdI8i5IJNpnjlB55vpHpFMpj")
                .setOAuthAccessToken("861637891-kLunD37VRY8ipAK3TVOA0YKOKxeidliTqMtNb7wf")
                .setOAuthAccessTokenSecret("vcKDxs6qHnEE8fhIJr5ktDcTbPGql5o3cNtZuztZwPYl4");
        TwitterFactory tf = new TwitterFactory(cb.build());
        Twitter twitter = tf.getInstance();

        /*
        Connection con = null; //MYSQL
        Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL
        con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/USTTMP", "root", "root.123"); //MYSQL
        System.out.println("connection yes");
                
        String insertSQL="INSERT INTO c_rawtext(mme_lastupdate, mme_updater, title, text, tag, text_createdate) "
                        + "VALUES (NOW(), \"AK\", ?, ?, ?, ?)";
        PreparedStatement insertPS = con.prepareStatement(insertSQL);
        */

        //?usttmp??
        String restUrl = "http://192.168.0.103:8991/usttmp_textreceiver/rest/addText";

        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, 1);
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        for (String mediastr : mediaList) {
            Query query = new Query("from:" + mediastr);
            query.setSince(sinceDate);
            query.setUntil(untilDate);
            query.setCount(100);
            query.setLang("en");

            QueryResult result = twitter.search(query);
            for (Status status : result.getTweets()) {
                System.out.println("@" + status.getUser().getScreenName() + " | "
                        + status.getCreatedAt().toString() + ":" + status.getText());
                System.out.println("Inserting the record into the table...");

                String formattedDate = format1.format(status.getCreatedAt());
                /*
                insertPS.setString (1, status.getUser().getScreenName());
                insertPS.setString (2, status.getText());
                insertPS.setString (3, tag);
                insertPS.setString (4, formattedDate);
                insertPS.addBatch();*/

                //                    if(null!=status.getText()){
                //                        break;
                //                    }

                String interfaceMsg = "<message> " + "    <title> "
                        + ((null != status.getUser().getScreenName()) ? status.getUser().getScreenName()
                                : "NO TITLE")
                        + "    </title> " + "    <text> " + StringEscapeUtils.escapeXml10(status.getText())
                        + "    </text> " + "    <textCreatetime> " + formattedDate + "    </textCreatetime> "
                        + "    <tag> " + tag + "    </tag> " + "</message>";

                //                    String restUrl="http://127.0.0.1:8991/usttmp_textreceiver/rest/addText";

                RestTemplate restTemplate = new RestTemplate();

                HttpHeaders headers = new HttpHeaders();
                headers.setContentType(MediaType.TEXT_XML);
                headers.setAccept(Arrays.asList(MediaType.TEXT_XML));
                //            headers.setContentLength();
                HttpEntity<String> entity = new HttpEntity<String>(interfaceMsg, headers);

                ResponseEntity<String> resresult = restTemplate.exchange(restUrl, HttpMethod.POST, entity,
                        String.class);

                System.out.println(resresult.getBody());
                if (resresult.getBody().contains("<result>failed</result>")) {
                    throw new RuntimeException("response message error");
                }

            }
        }

        //            System.out.println("Start to insert records...");
        //            insertPS.clearParameters();
        //            int[] results = insertPS.executeBatch();

    } catch (Exception te) {
        te.printStackTrace();
        System.out.println("Failed: " + te.getMessage());
        System.exit(-1);
    }
}

From source file:uta.ak.CollectTweets.java

public void collectTweetsByKeyWords(String keyWords, String sinceDate, String untilDate, String tag) {
    try {/*from ww w.j  a va  2 s  . c  o m*/

        ConfigurationBuilder cb = new ConfigurationBuilder();
        cb.setDebugEnabled(true).setOAuthConsumerKey("LuhVZOucqdHX6x0lcVgJO6QK3")
                .setOAuthConsumerSecret("6S7zbGLvHMXDMgRXq7jRIA6QmMpdI8i5IJNpnjlB55vpHpFMpj")
                .setOAuthAccessToken("861637891-kLunD37VRY8ipAK3TVOA0YKOKxeidliTqMtNb7wf")
                .setOAuthAccessTokenSecret("vcKDxs6qHnEE8fhIJr5ktDcTbPGql5o3cNtZuztZwPYl4");
        TwitterFactory tf = new TwitterFactory(cb.build());
        Twitter twitter = tf.getInstance();

        Connection con = null; //MYSQL
        Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL
        con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/USTTMP", "root", "root.123"); //MYSQL
        System.out.println("connection yes");

        String insertSQL = "INSERT INTO c_rawtext(mme_lastupdate, mme_updater, title, text, tag, text_createdate) VALUES (NOW(), \"AK\", ?, ?, ?, ?)";
        PreparedStatement insertPS = con.prepareStatement(insertSQL);

        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, 1);
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");

        Query query = new Query(keyWords);
        query.setSince(sinceDate);
        query.setUntil(untilDate);
        query.setCount(100);
        query.setLang("en");

        QueryResult result = twitter.search(query);
        for (Status status : result.getTweets()) {
            //                    System.out.println("@" + status.getUser().getScreenName() +
            //                                       " | " + status.getCreatedAt().toString() +
            //                                       ":" + status.getText());
            //                    System.out.println("Inserting the record into the table...");

            String formattedDate = format1.format(status.getCreatedAt());

            insertPS.setString(1, status.getUser().getScreenName());
            insertPS.setString(2, status.getText());
            insertPS.setString(3, tag);
            insertPS.setString(4, formattedDate);
            insertPS.addBatch();
        }

        System.out.println("Start to insert records...");
        insertPS.clearParameters();
        int[] results = insertPS.executeBatch();

    } catch (Exception te) {
        te.printStackTrace();
        System.out.println("Failed: " + te.getMessage());
        System.exit(-1);
    }
}

From source file:wap.twitter.model.TwitterUtility.java

public List<Tweet> getTweets(String news) {
    TwitterFactory tf = config();//from   w w  w  .j av  a 2 s .c o  m
    Twitter twitter = tf.getInstance();
    try {
        List<Tweet> tws = new ArrayList<Tweet>();
        int i = 0;
        Query query = new Query("#" + news);
        QueryResult result;
        do {
            result = twitter.search(query);
            List<Status> tweets = result.getTweets();
            for (Status tweet : tweets) {
                Tweet tw = new Tweet();
                if (i == 8) {
                    break;
                } else {
                    tw.setTitle(news);
                    tw.setUser(tweet.getUser().getScreenName());
                    tw.setUrl(tweet.getSource());
                    tw.setImage(tweet.getUser().getProfileImageURL());
                    tw.setBody(tweet.getText());
                    tw.setSource(tweet.getSource());
                    tw.setId(tweet.getId() + "");
                    i++;
                }
                System.out.println("******************* " + tweet.getGeoLocation());
                tws.add(tw);
            }
        } while ((query = result.nextQuery()) != null);
        return tws;
    } catch (TwitterException te) {
        te.printStackTrace();
        System.out.println("Failed to search tweets: " + te.getMessage());
        System.exit(-1);
    }
    return null;
}