public static void main(String[] args) throws TwitterException { FilterQuery query = new FilterQuery(); // wfrank 7897072 // ponja 38299186 String[] tracks = {"diegoram", "cfkargentina"}; // query.track(tracks); long[] ids = {7897072L, 38299186L, 17760769L}; query.follow(ids); TwitterStream twitterStream = new TwitterStreamFactory().getInstance(); StatusListener listener = new StatusListener() { @Override public void onStatus(Status status) { System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText()); } @Override public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) { System.out.println( "Got a status deletion notice id:" + statusDeletionNotice.getStatusId()); } @Override public void onTrackLimitationNotice(int numberOfLimitedStatuses) { System.out.println("Got track limitation notice:" + numberOfLimitedStatuses); } @Override public void onScrubGeo(long userId, long upToStatusId) { System.out.println( "Got scrub_geo event userId:" + userId + " upToStatusId:" + upToStatusId); } // @Override // public void onStallWarning(StallWarning warning) { // System.out.println("Got stall warning:" + warning); // } @Override public void onException(Exception ex) { ex.printStackTrace(); } }; twitterStream.addListener(listener); twitterStream.filter(query); }
@Override public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) { statuses = new LinkedBlockingQueue<Status>(1000); this.spoutOutputCollector = collector; ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); configurationBuilder .setOAuthConsumerKey(consumerKey) .setOAuthConsumerSecret(consumerSecret) .setOAuthAccessToken(accessToken) .setOAuthAccessTokenSecret(accessTokenSecret); OAuthAuthorization authAuthorization = new OAuthAuthorization(configurationBuilder.build()); twitterStream = new TwitterStreamFactory().getInstance(authAuthorization); twitterStream.addListener( new StatusListener() { @Override public void onStatus(Status status) { statuses.offer(status); } @Override public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {} @Override public void onTrackLimitationNotice(int numberOfLimitedStatuses) {} @Override public void onScrubGeo(long userId, long upToStatusId) {} @Override public void onStallWarning(StallWarning warning) {} @Override public void onException(Exception ex) {} }); twitter = new TwitterFactory().getInstance(authAuthorization); filterQuery = new FilterQuery(); if (filterQuery == null) { twitterStream.sample(); ; } else { twitterStream.filter(filterQuery.track(filterWords)); twitterStream.filter(filterQuery.language(filterLanguages)); } }
/** * Applies this filter. This filter is applied over the <tt>MetaContactListService</tt>. * * @param filterQuery the query which keeps track of the filtering results */ public void applyFilter(FilterQuery filterQuery) { // Create the query that will track filtering. MetaContactQuery query = new MetaContactQuery(); // Add this query to the filterQuery. filterQuery.addContactQuery(query); for (int cssType : contactSourcePreferences.keySet()) { Iterator<UIContactSource> filterSources = GuiActivator.getContactList().getContactSources(cssType).iterator(); while (filterSources.hasNext()) { UIContactSource filterSource = filterSources.next(); Integer prefValue = contactSourcePreferences.get(cssType); // We are setting the index from contactSourcePreferences map to // the contact source. This index is set to reorder the sources // in the contact list. if (prefValue != null) filterSource.setContactSourceIndex(prefValue); ContactSourceService sourceService = filterSource.getContactSourceService(); ContactQuery contactQuery = sourceService.createContactQuery(null); // Add this query to the filterQuery. filterQuery.addContactQuery(contactQuery); contactQuery.addContactQueryListener(GuiActivator.getContactList()); contactQuery.start(); } } // Closes this filter to indicate that we finished adding queries to it. filterQuery.close(); query.addContactQueryListener(GuiActivator.getContactList()); int resultCount = 0; addMatching(GuiActivator.getContactListService().getRoot(), query, resultCount); query.fireQueryEvent( query.isCanceled() ? MetaContactQueryStatusEvent.QUERY_CANCELED : MetaContactQueryStatusEvent.QUERY_COMPLETED); }
/** {@inheritDoc} */ public StatusStream getFilterStream(FilterQuery query) throws TwitterException { ensureAuthorizationEnabled(); try { return new StatusStreamImpl( getDispatcher(), http.post( conf.getStreamBaseURL() + "statuses/filter.json", query.asHttpParameterArray(), auth), conf); } catch (IOException e) { throw new TwitterException(e); } }
/** * This is where the automagic happens We are listening on tweets through the streaming api, * whenever we get a tweet "fireStatusEvent" is called */ @PostConstruct public void startTweetStream() { TwitterStream twitterStream = new TwitterStreamFactory(TwitterConfigBuilder.getConfig()).getInstance(); StatusListener statusListener = new StatusListener() { @Override public void onStatus(Status status) { logger.info("Received a status from " + status.getUser().getScreenName()); Tweet tweet = new Tweet(status); fireStatusEvent(tweet); } @Override public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {} @Override public void onTrackLimitationNotice(int i) {} @Override public void onScrubGeo(long l, long l1) {} @Override public void onStallWarning(StallWarning stallWarning) {} @Override public void onException(Exception e) { e.printStackTrace(); } }; FilterQuery filter = new FilterQuery(); String[] keywords = {"#testtestWOW"}; filter.track(keywords); twitterStream.addListener(statusListener); twitterStream.filter(filter); logger.warn("Started to listen for " + keywords[0]); }
@Filter(name = "orderByCount") public void orderByCountCourses( HashMap<String, Object> data, FilterQuery<GroupBooks> query, FilterCountQuery<GroupCourses> countQuery) { Join join = query.getRoot().join("courses", JoinType.LEFT); query.getCriteriaQuery().groupBy(query.getRoot().get("id")); boolean desc = (boolean) data.get("desc"); if (desc) { query .getCriteriaQuery() .orderBy(query.getCriteriaBuilder().desc(query.getCriteriaBuilder().count(join))); } else { query .getCriteriaQuery() .orderBy(query.getCriteriaBuilder().asc(query.getCriteriaBuilder().count(join))); } }
public static void streamTweets(String keywords, String location, Boolean hideRetweets) throws URLs.ConnectionException, URLs.HTTPQueryException, GeolocationSearch.NoKeyException, GeolocationSearch.SearchLocationException, MalformedURLException { twitter4j.TwitterStream twitterStream = new TwitterStreamFactory().getInstance(); twitterStream.addListener( new StatusAdapter() { public void onStatus(Status status) { if (!(status.isRetweet() && hideRetweets)) { printTweet(status, true); } } }); Double[] coordinates = getCoordinatesByQuery(location); double[][] doubleCoordinates = { {coordinates[1] - RADIUS, coordinates[0] - RADIUS}, {coordinates[1] + RADIUS, coordinates[0] + RADIUS} }; String[] arrayKeywords = {keywords}; FilterQuery fq = new FilterQuery(); fq.locations(doubleCoordinates); fq.track(arrayKeywords); twitterStream.filter(fq); }
public void loadMenu() throws InterruptedException { System.out.print("Please choose a name for your stream:\t"); Scanner input = new Scanner(System.in); String keyword = input.nextLine(); connectdb(keyword); cb = new ConfigurationBuilder(); cb.setDebugEnabled(true); cb.setOAuthConsumerKey("XXX"); cb.setOAuthConsumerSecret("XXX"); cb.setOAuthAccessToken("XXX"); cb.setOAuthAccessTokenSecret("XXX"); TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance(); StatusListener listener = new StatusListener() { public void onStatus(Status status) { System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText()); BasicDBObject basicObj = new BasicDBObject(); basicObj.put("user_name", status.getUser().getScreenName()); basicObj.put("retweet_count", status.getRetweetCount()); basicObj.put("tweet_followers_count", status.getUser().getFollowersCount()); basicObj.put("source", status.getSource()); // basicObj.put("coordinates",tweet.getGeoLocation()); UserMentionEntity[] mentioned = status.getUserMentionEntities(); basicObj.put("tweet_mentioned_count", mentioned.length); basicObj.put("tweet_ID", status.getId()); basicObj.put("tweet_text", status.getText()); try { items.insert(basicObj); } catch (Exception e) { System.out.println("MongoDB Connection Error : " + e.getMessage()); } } public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) { System.out.println( "Got a status deletion notice id:" + statusDeletionNotice.getStatusId()); } public void onTrackLimitationNotice(int numberOfLimitedStatuses) { System.out.println("Got track limitation notice:" + numberOfLimitedStatuses); } public void onScrubGeo(long userId, long upToStatusId) { System.out.println( "Got scrub_geo event userId:" + userId + " upToStatusId:" + upToStatusId); } @Override public void onStallWarning(StallWarning stallWarning) { // To change body of implemented methods use File | Settings | File Templates. } public void onException(Exception ex) { ex.printStackTrace(); } }; FilterQuery fq = new FilterQuery(); String keywords[] = {"Germany"}; fq.track(keywords); twitterStream.addListener(listener); twitterStream.filter(fq); }