PrintUserStream.java Source code

Java tutorial

Introduction

Here is the source code for PrintUserStream.java

Source

/*
 * Copyright 2007 Yusuke Yamamoto
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

//package app.nitin.jaiman;

import com.mysql.jdbc.Connection;
import java.util.ArrayList;
import java.util.HashSet;
import twitter4j.*;

/**
 * <p>
 * This is a code example of Twitter4J Streaming API - user stream.<br>
 * Usage: java twitter4j.examples.PrintUserStream. Needs a valid twitter4j.properties file with Basic Auth _and_ OAuth properties set<br>
 * </p>
 *
 * @author Yusuke Yamamoto - yusuke at mac.com
 * @author Rmy Rakic - remy dot rakic at gmail.com
 */
public class PrintUserStream {
    static int nooftweet;
    static String param[] = new String[50];
    static String uname = null;
    static TwitterStream twitterStream;

    public PrintUserStream() {
        twitterStream = new TwitterStreamFactory().getInstance();

    }

    public void Trigger(String[] param, int nooftweets, String username) throws TwitterException {

        nooftweet = nooftweets;
        System.out.println(username);
        uname = username;
        this.param = param;
        twitterStream.addListener(listener);
        // user() method internally creates a thread which manipulates TwitterStream and calls these adequate listener methods continuously.
        twitterStream.user(param);

    }

    private static final UserStreamListener listener = new UserStreamListener() {
        int count = 0;
        HashSet<String> userlist = new HashSet<String>();

        public void dump(HashSet<String> userlist) {
            Insert in = new Insert();
            String passer[] = new String[50];
            //passer= GeoGui.param1.getText().split(",");
            String a = param[0].replaceAll(" ", "");
            String b = a.replaceAll("@", "");
            String c = b.replaceAll("#", "");
            System.out.println(" -> " + uname);
            in.inserUserDatabase(userlist, c, uname);

        }

        @Override
        public void onStatus(Status status) {
            count++;
            if (count <= nooftweet) {
                System.out
                        .println("onStatus @" + status.getUser().getScreenName() + " - " + status.getGeoLocation());
                MainActivity.display1.append("Tweet Number:" + count + " \n onStatus @"
                        + status.getUser().getScreenName() + " - " + status.getText() + "  - "
                        + status.getUser().getLocation() + "\n ________________________________ \n");
                userlist.add(status.getUser().getScreenName());

                if (userlist.size() >= 15) {
                    dump(userlist);
                    userlist.clear();

                }

            } else {
                twitterStream.shutdown();
            }
        }

        @Override
        public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {
            System.out.println("Got a status deletion notice id:" + statusDeletionNotice.getStatusId());
        }

        @Override
        public void onDeletionNotice(long directMessageId, long userId) {
            System.out.println("Got a direct message deletion notice id:" + directMessageId);
        }

        @Override
        public void onTrackLimitationNotice(int numberOfLimitedStatuses) {
            System.out.println("Got a 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 onFriendList(long[] friendIds) {
            System.out.print("onFriendList");
            for (long friendId : friendIds) {
                System.out.print(" " + friendId);
            }
            System.out.println();
        }

        @Override
        public void onFavorite(User source, User target, Status favoritedStatus) {
            System.out.println("onFavorite source:@" + source.getScreenName() + " target:@" + target.getScreenName()
                    + " @" + favoritedStatus.getUser().getScreenName() + " - " + favoritedStatus.getText());
        }

        @Override
        public void onUnfavorite(User source, User target, Status unfavoritedStatus) {
            System.out.println(
                    "onUnFavorite source:@" + source.getScreenName() + " target:@" + target.getScreenName() + " @"
                            + unfavoritedStatus.getUser().getScreenName() + " - " + unfavoritedStatus.getText());
        }

        @Override
        public void onFollow(User source, User followedUser) {
            System.out.println(
                    "onFollow source:@" + source.getScreenName() + " target:@" + followedUser.getScreenName());
        }

        @Override
        public void onUnfollow(User source, User followedUser) {
            System.out.println(
                    "onFollow source:@" + source.getScreenName() + " target:@" + followedUser.getScreenName());
        }

        @Override
        public void onDirectMessage(DirectMessage directMessage) {
            System.out.println("onDirectMessage text:" + directMessage.getText());
        }

        @Override
        public void onUserListMemberAddition(User addedMember, User listOwner, UserList list) {
            System.out.println("onUserListMemberAddition added member:@" + addedMember.getScreenName()
                    + " listOwner:@" + listOwner.getScreenName() + " list:" + list.getName());
        }

        @Override
        public void onUserListMemberDeletion(User deletedMember, User listOwner, UserList list) {
            System.out.println("onUserListMemberDeleted deleted member:@" + deletedMember.getScreenName()
                    + " listOwner:@" + listOwner.getScreenName() + " list:" + list.getName());
        }

        @Override
        public void onUserListSubscription(User subscriber, User listOwner, UserList list) {
            System.out.println("onUserListSubscribed subscriber:@" + subscriber.getScreenName() + " listOwner:@"
                    + listOwner.getScreenName() + " list:" + list.getName());
        }

        @Override
        public void onUserListUnsubscription(User subscriber, User listOwner, UserList list) {
            System.out.println("onUserListUnsubscribed subscriber:@" + subscriber.getScreenName() + " listOwner:@"
                    + listOwner.getScreenName() + " list:" + list.getName());
        }

        @Override
        public void onUserListCreation(User listOwner, UserList list) {
            System.out.println(
                    "onUserListCreated  listOwner:@" + listOwner.getScreenName() + " list:" + list.getName());
        }

        @Override
        public void onUserListUpdate(User listOwner, UserList list) {
            System.out.println(
                    "onUserListUpdated  listOwner:@" + listOwner.getScreenName() + " list:" + list.getName());
        }

        @Override
        public void onUserListDeletion(User listOwner, UserList list) {
            System.out.println(
                    "onUserListDestroyed  listOwner:@" + listOwner.getScreenName() + " list:" + list.getName());
        }

        @Override
        public void onUserProfileUpdate(User updatedUser) {
            System.out.println("onUserProfileUpdated user:@" + updatedUser.getScreenName());
        }

        @Override
        public void onBlock(User source, User blockedUser) {
            System.out.println(
                    "onBlock source:@" + source.getScreenName() + " target:@" + blockedUser.getScreenName());
        }

        @Override
        public void onUnblock(User source, User unblockedUser) {
            System.out.println(
                    "onUnblock source:@" + source.getScreenName() + " target:@" + unblockedUser.getScreenName());
        }

        @Override
        public void onException(Exception ex) {
            ex.printStackTrace();
            System.out.println("onException:" + ex.getMessage());
        }

        @Override
        public void onUserSuspension(long l) {
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void onUserDeletion(long l) {
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }
    };
}