/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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 org.apache.camel.component.twitter.consumer.streaming; import org.apache.camel.Exchange; import org.apache.camel.component.twitter.TwitterConstants; import org.apache.camel.component.twitter.TwitterEndpoint; import org.apache.camel.component.twitter.TwitterHelper; import org.apache.camel.component.twitter.consumer.TwitterEventType; import twitter4j.DirectMessage; import twitter4j.StallWarning; import twitter4j.Status; import twitter4j.User; import twitter4j.UserList; import twitter4j.UserStreamListener; public class UserStreamingConsumer extends AbstractStreamingConsumer implements UserStreamListener { public UserStreamingConsumer(TwitterEndpoint endpoint) { super(endpoint); } @Override public void start() { getTwitterStream().user(); } @Override public void onDeletionNotice(long directMessageId, long userId) { // noop } @Override public void onFriendList(long[] friendIds) { // noop } @Override public void onFavorite(User source, User target, Status favoritedStatus) { Exchange exchange = TwitterEventType.FAVORITE.createExchange(endpoint, favoritedStatus); TwitterHelper.setUserHeader(exchange, 1, source, "source"); TwitterHelper.setUserHeader(exchange, 2, target, "target"); onEvent(exchange); } @Override public void onUnfavorite(User source, User target, Status unfavoritedStatus) { Exchange exchange = TwitterEventType.UNFAVORITE.createExchange(endpoint, unfavoritedStatus); TwitterHelper.setUserHeader(exchange, 1, source, "source"); TwitterHelper.setUserHeader(exchange, 2, target, "target"); onEvent(exchange); } @Override public void onFollow(User source, User followedUser) { Exchange exchange = TwitterEventType.FOLLOW.createExchange(endpoint); TwitterHelper.setUserHeader(exchange, 1, source, "source"); TwitterHelper.setUserHeader(exchange, 2, followedUser, "followed"); onEvent(exchange); } @Override public void onUnfollow(User source, User unfollowedUser) { Exchange exchange = TwitterEventType.UNFOLLOW.createExchange(endpoint); TwitterHelper.setUserHeader(exchange, 1, source, "source"); TwitterHelper.setUserHeader(exchange, 2, unfollowedUser, "unfollowed"); onEvent(exchange); } @Override public void onDirectMessage(DirectMessage directMessage) { onEvent(TwitterEventType.DIRECT_MESSAGE.createExchange(endpoint, directMessage)); } @Override public void onUserListMemberAddition(User addedMember, User listOwner, UserList list) { Exchange exchange = TwitterEventType.USERLIST_MEMBER_ADDITION.createExchange(endpoint, list); TwitterHelper.setUserHeader(exchange, 1, addedMember, "addedMember"); TwitterHelper.setUserHeader(exchange, 2, listOwner, "listOwner"); onEvent(exchange); } @Override public void onUserListMemberDeletion(User deletedMember, User listOwner, UserList list) { Exchange exchange = TwitterEventType.USERLIST_MEMBER_DELETION.createExchange(endpoint, list); TwitterHelper.setUserHeader(exchange, 1, deletedMember, "deletedMember"); TwitterHelper.setUserHeader(exchange, 2, listOwner, "listOwner"); onEvent(exchange); } @Override public void onUserListSubscription(User subscriber, User listOwner, UserList list) { Exchange exchange = TwitterEventType.USERLIST_SUBSCRIPTION.createExchange(endpoint, list); TwitterHelper.setUserHeader(exchange, 1, subscriber, "subscriber"); TwitterHelper.setUserHeader(exchange, 2, listOwner, "listOwner"); onEvent(exchange); } @Override public void onUserListUnsubscription(User subscriber, User listOwner, UserList list) { Exchange exchange = TwitterEventType.USERLIST_UNSUBSCRIPTION.createExchange(endpoint, list); TwitterHelper.setUserHeader(exchange, 1, subscriber, "subscriber"); TwitterHelper.setUserHeader(exchange, 2, listOwner, "listOwner"); onEvent(exchange); } @Override public void onUserListCreation(User user, UserList userList) { Exchange exchange = TwitterEventType.USERLIST_CREATION.createExchange(endpoint, userList); TwitterHelper.setUserHeader(exchange, user); onEvent(exchange); } @Override public void onUserListUpdate(User user, UserList userList) { Exchange exchange = TwitterEventType.USERLIST_UPDATE.createExchange(endpoint, userList); TwitterHelper.setUserHeader(exchange, user); onEvent(exchange); } @Override public void onUserListDeletion(User user, UserList userList) { Exchange exchange = TwitterEventType.USERLIST_DELETETION.createExchange(endpoint, userList); TwitterHelper.setUserHeader(exchange, user); onEvent(exchange); } @Override public void onUserProfileUpdate(User user) { Exchange exchange = TwitterEventType.USER_PROFILE_UPDATE.createExchange(endpoint); TwitterHelper.setUserHeader(exchange, user); onEvent(exchange); } @Override public void onUserSuspension(long suspendedUser) { Exchange exchange = TwitterEventType.USER_SUSPENSION.createExchange(endpoint); exchange.getIn().setHeader(TwitterConstants.TWITTER_USER, suspendedUser); onEvent(exchange); } @Override public void onUserDeletion(long deletedUser) { Exchange exchange = TwitterEventType.USER_DELETION.createExchange(endpoint); exchange.getIn().setHeader(TwitterConstants.TWITTER_USER, deletedUser); onEvent(exchange); } @Override public void onBlock(User source, User blockedUser) { Exchange exchange = TwitterEventType.BLOCK.createExchange(endpoint); TwitterHelper.setUserHeader(exchange, 1, source, "source"); TwitterHelper.setUserHeader(exchange, 2, blockedUser, "blocked"); onEvent(exchange); } @Override public void onUnblock(User source, User unblockedUser) { Exchange exchange = TwitterEventType.UNBLOCK.createExchange(endpoint); TwitterHelper.setUserHeader(exchange, 1, source, "source"); TwitterHelper.setUserHeader(exchange, 2, unblockedUser, "unblocked"); onEvent(exchange); } @Override public void onStallWarning(StallWarning stallWarning) { // noop } @Override public void onRetweetedRetweet(User source, User target, Status retweetedStatus) { Exchange exchange = TwitterEventType.RETWEETED_RETWEET.createExchange(endpoint, retweetedStatus); TwitterHelper.setUserHeader(exchange, 1, source, "source"); TwitterHelper.setUserHeader(exchange, 2, target, "target"); onEvent(exchange); } @Override public void onFavoritedRetweet(User source, User target, Status favoritedRetweeet) { Exchange exchange = TwitterEventType.FAVORITED_RETWEET.createExchange(endpoint, favoritedRetweeet); TwitterHelper.setUserHeader(exchange, 1, source, "source"); TwitterHelper.setUserHeader(exchange, 2, target, "target"); onEvent(exchange); } @Override public void onQuotedTweet(User source, User target, Status quotingTweet) { Exchange exchange = TwitterEventType.QUOTED_TWEET.createExchange(endpoint, quotingTweet); TwitterHelper.setUserHeader(exchange, 1, source, "source"); TwitterHelper.setUserHeader(exchange, 2, target, "target"); onEvent(exchange); } }