List of usage examples for twitter4j Status getUserMentionEntities
UserMentionEntity[] getUserMentionEntities();
From source file:au.net.moon.tUtils.twitterFields.java
License:Open Source License
/** * Get a <CODE>HashMap</CODE> of tweet fields by parsing a twitter4j Status * //from w w w .j a v a 2 s. c o m * @param status * the twitter4j Status object * @return the tweet fields as name, value pairs in a <CODE>HashMap</CODE>. */ public static HashMap<String, String> parseStatusObj(Status status) { HashMap<String, String> splitFields = new HashMap<String, String>(); splitFields.put("createdAt", status.getCreatedAt().toString()); splitFields.put("id", Long.toString(status.getId())); splitFields.put("text", status.getText()); splitFields.put("source", status.getSource()); splitFields.put("isTruncated", status.isTruncated() ? "1" : "0"); splitFields.put("inReplyToStatusId", Long.toString(status.getInReplyToStatusId())); splitFields.put("inReplyToUserId", Long.toString(status.getInReplyToUserId())); splitFields.put("isFavorited", status.isFavorited() ? "1" : "0"); splitFields.put("inReplyToScreenName", status.getInReplyToScreenName()); if (status.getGeoLocation() != null) { splitFields.put("geoLocation", status.getGeoLocation().toString()); } else { splitFields.put("geoLocation", ""); } if (status.getPlace() != null) { splitFields.put("place", status.getPlace().toString()); } else { splitFields.put("place", ""); } splitFields.put("retweetCount", Long.toString(status.getRetweetCount())); splitFields.put("wasRetweetedByMe", status.isRetweetedByMe() ? "1" : "0"); String contributors = ""; if (status.getContributors() != null) { long[] tempContributors = status.getContributors(); for (int i = 0; i < tempContributors.length; i++) { contributors += Long.toString(tempContributors[i]); if (i != tempContributors.length - 1) { contributors += ", "; } } } splitFields.put("contributors", contributors); splitFields.put("annotations", ""); if (status.getRetweetedStatus() != null) { splitFields.put("retweetedStatus", "1"); } else { splitFields.put("retweetedStatus", "0"); } splitFields.put("userMentionEntities", status.getUserMentionEntities().toString()); splitFields.put("urlEntities", status.getURLEntities().toString()); splitFields.put("hashtagEntities", status.getHashtagEntities().toString()); splitFields.put("user", status.getUser().toString()); return splitFields; }
From source file:br.com.porcelli.hornetq.integration.twitter.support.TweetMessageConverterSupport.java
License:Apache License
public static ServerMessage buildMessage(final String queueName, final Status status) { final ServerMessage msg = new ServerMessageImpl(status.getId(), InternalTwitterConstants.INITIAL_MESSAGE_BUFFER_SIZE); msg.setAddress(new SimpleString(queueName)); msg.setDurable(true);/*from w ww. j ava 2 s.co m*/ msg.putStringProperty(TwitterConstants.KEY_MSG_TYPE, MessageType.TWEET.toString()); msg.putStringProperty(TwitterConstants.KEY_CREATED_AT, read(status.getCreatedAt())); msg.putStringProperty(TwitterConstants.KEY_ID, read(status.getId())); msg.putStringProperty(TwitterConstants.KEY_TEXT, read(status.getText())); msg.putStringProperty(TwitterConstants.KEY_SOURCE, read(status.getSource())); msg.putStringProperty(TwitterConstants.KEY_TRUNCATED, read(status.isTruncated())); msg.putStringProperty(TwitterConstants.KEY_IN_REPLY_TO_STATUS_ID, read(status.getInReplyToStatusId())); msg.putStringProperty(TwitterConstants.KEY_IN_REPLY_TO_USER_ID, read(status.getInReplyToUserId())); msg.putStringProperty(TwitterConstants.KEY_IN_REPLY_TO_SCREEN_NAME, read(status.getInReplyToScreenName())); msg.putStringProperty(TwitterConstants.KEY_RETWEET, read(status.isRetweet())); msg.putStringProperty(TwitterConstants.KEY_FAVORITED, read(status.isFavorited())); msg.putStringProperty(TwitterConstants.KEY_ENTITIES_URLS_JSON, read(status.getURLEntities())); msg.putStringProperty(TwitterConstants.KEY_ENTITIES_HASHTAGS_JSON, read(status.getHashtagEntities())); msg.putStringProperty(TwitterConstants.KEY_ENTITIES_MENTIONS_JSON, read(status.getUserMentionEntities())); msg.putStringProperty(TwitterConstants.KEY_CONTRIBUTORS_JSON, read(status.getContributors())); if (status.getUser() != null) { buildUserData("", status.getUser(), msg); } GeoLocation gl; if ((gl = status.getGeoLocation()) != null) { msg.putStringProperty(TwitterConstants.KEY_GEO_LATITUDE, read(gl.getLatitude())); msg.putStringProperty(TwitterConstants.KEY_GEO_LONGITUDE, read(gl.getLongitude())); } Place place; if ((place = status.getPlace()) != null) { msg.putStringProperty(TwitterConstants.KEY_PLACE_ID, read(place.getId())); msg.putStringProperty(TwitterConstants.KEY_PLACE_URL, read(place.getURL())); msg.putStringProperty(TwitterConstants.KEY_PLACE_NAME, read(place.getName())); msg.putStringProperty(TwitterConstants.KEY_PLACE_FULL_NAME, read(place.getFullName())); msg.putStringProperty(TwitterConstants.KEY_PLACE_COUNTRY_CODE, read(place.getCountryCode())); msg.putStringProperty(TwitterConstants.KEY_PLACE_COUNTRY, read(place.getCountry())); msg.putStringProperty(TwitterConstants.KEY_PLACE_STREET_ADDRESS, read(place.getStreetAddress())); msg.putStringProperty(TwitterConstants.KEY_PLACE_TYPE, read(place.getPlaceType())); msg.putStringProperty(TwitterConstants.KEY_PLACE_GEO_TYPE, read(place.getGeometryType())); msg.putStringProperty(TwitterConstants.KEY_PLACE_BOUNDING_BOX_TYPE, read(place.getBoundingBoxType())); msg.putStringProperty(TwitterConstants.KEY_PLACE_BOUNDING_BOX_COORDINATES_JSON, read(place.getBoundingBoxCoordinates().toString())); msg.putStringProperty(TwitterConstants.KEY_PLACE_BOUNDING_BOX_GEOMETRY_COORDINATES_JSON, read(place.getGeometryCoordinates().toString())); } msg.putStringProperty(TwitterConstants.KEY_RAW_JSON, status.toString()); return msg; }
From source file:Collector.TweetCollector.java
public static void storeTweet(Status tweet) { BasicDBObject basicOBJ = new BasicDBObject(); basicOBJ.put("user_name", tweet.getUser().getScreenName()); basicOBJ.put("retweet_count", tweet.getRetweetCount()); basicOBJ.put("tweet_followers_count", tweet.getUser().getFollowersCount()); UserMentionEntity[] mentioned = tweet.getUserMentionEntities(); basicOBJ.put("tweet_mentioned_count", mentioned.length); basicOBJ.put("tweet_ID", tweet.getId()); basicOBJ.put("tweet_text", tweet.getText()); basicOBJ.put("created_at", tweet.getCreatedAt()); try {//w w w . ja v a2 s . com items.insert(basicOBJ); } catch (Exception e) { System.out.println("Could not store Tweet please try again" + e.getMessage()); } }
From source file:com.daemon.database.Transactor.java
License:Open Source License
/** * Adds the user mentions for a given tweet to the SQL Batch saved * to the DB by saveAllTweetsTransactionSave. * /*from ww w.j a v a 2s . c om*/ * @param tweet The tweet which contains mentions of users * @throws SQLException */ private void saveUserMentions(Status tweet) throws SQLException { // Save tweet id in prepared statements prepStatementMentions.setLong(1, tweet.getId()); // 1. Get User Mentions in given tweet UserMentionEntity[] userMentionEntities = tweet.getUserMentionEntities(); // 2. Create for each user Mention an db entry, if necessary for (UserMentionEntity userMentionEntity : userMentionEntities) { prepStatementMentions.setLong(2, userMentionEntity.getId()); prepStatementMentions.addBatch(); } }
From source file:com.daiv.android.twitter.utils.TweetLinkUtils.java
License:Apache License
public static String[] getLinksInStatus(Status status) { UserMentionEntity[] users = status.getUserMentionEntities(); String mUsers = ""; for (UserMentionEntity name : users) { String n = name.getScreenName(); if (n.length() > 1) { mUsers += n + " "; }//ww w. j av a2 s. c om } HashtagEntity[] hashtags = status.getHashtagEntities(); String mHashtags = ""; for (HashtagEntity hashtagEntity : hashtags) { String text = hashtagEntity.getText(); if (text.length() > 1) { mHashtags += text + " "; } } URLEntity[] urls = status.getURLEntities(); String expandedUrls = ""; String compressedUrls = ""; for (URLEntity entity : urls) { String url = entity.getExpandedURL(); if (url.length() > 1) { expandedUrls += url + " "; compressedUrls += entity.getURL() + " "; } } MediaEntity[] medias = status.getMediaEntities(); String mediaExp = ""; String mediaComp = ""; String mediaDisplay = ""; for (MediaEntity e : medias) { String url = e.getURL(); if (url.length() > 1) { mediaComp += url + " "; mediaExp += e.getExpandedURL() + " "; mediaDisplay += e.getDisplayURL() + " "; } } String[] sExpandedUrls; String[] sCompressedUrls; String[] sMediaExp; String[] sMediaComp; String[] sMediaDisplay; try { sCompressedUrls = compressedUrls.split(" "); } catch (Exception e) { sCompressedUrls = new String[0]; } try { sExpandedUrls = expandedUrls.split(" "); } catch (Exception e) { sExpandedUrls = new String[0]; } try { sMediaComp = mediaComp.split(" "); } catch (Exception e) { sMediaComp = new String[0]; } try { sMediaExp = mediaExp.split(" "); } catch (Exception e) { sMediaExp = new String[0]; } try { sMediaDisplay = mediaDisplay.split(" "); } catch (Exception e) { sMediaDisplay = new String[0]; } String tweetTexts = status.getText(); String imageUrl = ""; String otherUrl = ""; for (int i = 0; i < sCompressedUrls.length; i++) { String comp = sCompressedUrls[i]; String exp = sExpandedUrls[i]; if (comp.length() > 1 && exp.length() > 1) { String str = exp.toLowerCase(); try { String replacement = exp.replace("http://", "").replace("https://", "").replace("www.", ""); boolean hasCom = replacement.contains(".com"); replacement = replacement.substring(0, 30) + "..."; if (hasCom && !replacement.contains(".com")) { // the link was too long... replacement = exp.replace("http://", "").replace("https://", "").replace("www.", ""); replacement = replacement.substring(0, replacement.indexOf(".com") + 6) + "..."; } tweetTexts = tweetTexts.replace(comp, replacement); } catch (Exception e) { tweetTexts = tweetTexts.replace(comp, exp.replace("http://", "").replace("https://", "").replace("www.", "")); } if (str.contains("instag") && !str.contains("blog.insta")) { imageUrl = exp + "media/?size=l"; otherUrl += exp + " "; } else if (exp.toLowerCase().contains("youtub") && !(str.contains("channel") || str.contains("user"))) { // first get the youtube video code int start = exp.indexOf("v=") + 2; int end = exp.length(); if (exp.substring(start).contains("&")) { end = exp.indexOf("&"); } else if (exp.substring(start).contains("?")) { end = exp.indexOf("?"); } try { imageUrl = "http://img.youtube.com/vi/" + exp.substring(start, end) + "/hqdefault.jpg"; } catch (Exception e) { imageUrl = "http://img.youtube.com/vi/" + exp.substring(start, exp.length() - 1) + "/hqdefault.jpg"; } otherUrl += exp + " "; } else if (str.contains("youtu.be")) { // first get the youtube video code int start = exp.indexOf(".be/") + 4; int end = exp.length(); if (exp.substring(start).contains("&")) { end = exp.indexOf("&"); } else if (exp.substring(start).contains("?")) { end = exp.indexOf("?"); } try { imageUrl = "http://img.youtube.com/vi/" + exp.substring(start, end) + "/hqdefault.jpg"; } catch (Exception e) { imageUrl = "http://img.youtube.com/vi/" + exp.substring(start, exp.length() - 1) + "/hqdefault.jpg"; } otherUrl += exp + " "; } else if (str.contains("twitpic")) { int start = exp.indexOf(".com/") + 5; imageUrl = "http://twitpic.com/show/full/" + exp.substring(start).replace("/", ""); otherUrl += exp + " "; } else if (str.contains("i.imgur") && !str.contains("/a/")) { int start = exp.indexOf(".com/") + 5; imageUrl = "http://i.imgur.com/" + exp.replace("http://i.imgur.com/", "").replace(".jpg", "") + "l.jpg"; imageUrl = imageUrl.replace("gallery/", ""); otherUrl += exp + " "; } else if (str.contains("imgur") && !str.contains("/a/")) { int start = exp.indexOf(".com/") + 6; imageUrl = "http://i.imgur.com/" + exp.replace("http://imgur.com/", "").replace(".jpg", "") + "l.jpg"; imageUrl = imageUrl.replace("gallery/", "").replace("a/", ""); otherUrl += exp + " "; } else if (str.contains("pbs.twimg.com")) { imageUrl = exp; otherUrl += exp + " "; } else if (str.contains("ow.ly/i/")) { imageUrl = "http://static.ow.ly/photos/original/" + exp.substring(exp.lastIndexOf("/")).replaceAll("/", "") + ".jpg"; otherUrl += exp + " "; } else if (str.contains("p.twipple.jp")) { imageUrl = "http://p.twipple.jp/show/large/" + exp.replace("p.twipple.jp/", "") .replace("http://", "").replace("https://", "").replace("www.", ""); otherUrl += exp + " "; } else if (str.contains(".jpg") || str.contains(".png")) { imageUrl = exp; otherUrl += exp + " "; } else if (str.contains("img.ly")) { imageUrl = exp.replace("https", "http").replace("http://img.ly/", "http://img.ly/show/large/"); otherUrl += exp + " "; } else { otherUrl += exp + " "; } } } for (int i = 0; i < sMediaComp.length; i++) { String comp = sMediaComp[i]; String exp = sMediaExp[i]; if (comp.length() > 1 && exp.length() > 1) { try { String replacement = sMediaDisplay[i].replace("http://", "").replace("https://", "") .replace("www.", ""); boolean hasCom = replacement.contains(".com"); replacement = replacement.substring(0, 22) + "..."; if (hasCom && !replacement.contains(".com")) { // the link was too long... replacement = sMediaDisplay[i].replace("http://", "").replace("https://", "") .replace("www.", ""); replacement = replacement.substring(0, replacement.indexOf(".com") + 6) + "..."; } tweetTexts = tweetTexts.replace(comp, replacement); } catch (Exception e) { tweetTexts = tweetTexts.replace(comp, sMediaDisplay[i].replace("http://", "").replace("https://", "").replace("www.", "")); } imageUrl = status.getMediaEntities()[0].getMediaURL(); for (MediaEntity m : status.getExtendedMediaEntities()) { if (m.getType().equals("photo")) { if (!imageUrl.contains(m.getMediaURL())) { imageUrl += " " + m.getMediaURL(); } } } otherUrl += sMediaDisplay[i]; } } return new String[] { tweetTexts, imageUrl, otherUrl, mHashtags, mUsers }; }
From source file:com.freshdigitable.udonroad.module.realm.StatusCacheRealm.java
License:Apache License
private UserMentionEntity[] splitUserMentionEntity(Collection<Status> updates) { final Map<Long, UserMentionEntity> res = new LinkedHashMap<>(); for (Status s : updates) { for (UserMentionEntity ume : s.getUserMentionEntities()) { res.put(ume.getId(), ume);// w w w . j a v a2s.c om } } final Collection<UserMentionEntity> values = res.values(); return values.toArray(new UserMentionEntity[values.size()]); }
From source file:com.freshdigitable.udonroad.module.realm.StatusRealm.java
License:Apache License
StatusRealm(Status status) { this.id = status.getId(); this.createdAt = status.getCreatedAt(); this.retweetedStatus = status.getRetweetedStatus(); this.retweet = status.isRetweet(); if (status.isRetweet()) { this.retweetedStatusId = this.retweetedStatus.getId(); }/*from w w w . j av a 2 s . co m*/ this.text = status.getText(); this.source = status.getSource(); this.retweetCount = status.getRetweetCount(); this.favoriteCount = status.getFavoriteCount(); this.reaction = new StatusReactionImpl(status); this.user = status.getUser(); this.userId = user.getId(); this.urlEntities = URLEntityRealm.createList(status.getURLEntities()); this.mediaEntities = new RealmList<>(); final ExtendedMediaEntity[] me = status.getExtendedMediaEntities(); for (ExtendedMediaEntity m : me) { mediaEntities.add(new ExtendedMediaEntityRealm(m)); } final UserMentionEntity[] userMentionEntities = status.getUserMentionEntities(); this.userMentionEntities = new RealmList<>(); for (UserMentionEntity u : userMentionEntities) { this.userMentionEntities.add(new UserMentionEntityRealm(u)); } this.quotedStatus = status.getQuotedStatus(); this.quotedStatusId = status.getQuotedStatusId(); }
From source file:com.freshdigitable.udonroad.SpannableStringUtil.java
License:Apache License
private static List<SpanningInfo> createUserSpanningInfo(Status bindingStatus) { final String text = bindingStatus.getText(); final UserMentionEntity[] userMentionEntities = bindingStatus.getUserMentionEntities(); final List<SpanningInfo> info = new ArrayList<>(); for (UserMentionEntity u : userMentionEntities) { final int start = text.indexOf("@" + u.getScreenName()); final int end = start + u.getScreenName().length() + 1; if (isInvalidRange(text, start, end)) { continue; }/*from w w w . j ava2 s . c o m*/ final long id = u.getId(); info.add(new SpanningInfo(new ClickableSpan() { @Override public void onClick(View view) { UserInfoActivity.start(view.getContext(), id); } }, start, end, null)); } return info; }
From source file:com.freshdigitable.udonroad.util.TwitterResponseMock.java
License:Apache License
public static Status createStatus(long id, User user) { final Status status = mock(Status.class); when(status.getId()).thenReturn(id); when(status.getCreatedAt()).thenReturn(new Date()); when(status.getText()).thenReturn(createText(id)); when(status.isRetweet()).thenReturn(false); when(status.getSource()).thenReturn("<a href=\"https://twitter.com/akihito104\">Udonroad</a>"); when(status.getURLEntities()).thenReturn(new URLEntity[0]); when(status.getExtendedMediaEntities()).thenReturn(new ExtendedMediaEntity[0]); when(status.getUserMentionEntities()).thenReturn(new UserMentionEntity[0]); when(status.getUser()).thenReturn(user); return status; }
From source file:com.github.daytron.twaattin.ui.tabledecorator.TweetColumnDecorator.java
License:Open Source License
@Override @SuppressWarnings("unchecked") public Object generateCell(Table source, Object itemId, Object columnId) { fragments = new ArrayList<>(); Item item = source.getItem(itemId);/*from w w w . j a v a2 s . c o m*/ @SuppressWarnings("rawtypes") BeanItem<Status> beanItem = (BeanItem) item; Status status = beanItem.getBean(); createFragmentsWithUrl(status.getURLEntities()); createFragmentsWithTag(status.getHashtagEntities()); createFragmentsWithMention(status.getUserMentionEntities()); Collections.sort(fragments); StringBuilder builder = new StringBuilder(status.getText()); int offset = 0; for (TweetFragment fragment : fragments) { builder.replace(fragment.getStart() + offset, fragment.getEnd() + offset, fragment.getReplacement()); offset += fragment.getOffset(); } return new Label(builder.toString(), HTML); }