public static Tweet fromStatus(Status status) { Tweet tweet = new Tweet(); tweet.setUser(fromUser(status.getUser())); if (status.getPlace() != null) { tweet.setLocation(fromPlace(status.getPlace())); } tweet.setTimeOfTweet(status.getCreatedAt().toString()); tweet.setRetweetCount(status.getRetweetCount()); ArrayList<User> lusers = new ArrayList<User>(); String statusText = status.getText(); for (UserMentionEntity entity : status.getUserMentionEntities()) { lusers.add(fromUserMentionEntity(entity)); statusText = stripMentionedUserFromStatus(statusText, entity); } tweet.setMessage(statusText); tweet.setMentioned(lusers.toArray(new User[] {})); return tweet; }
/** * Transforms a twitter4j.Status object into a JSONObject * * @param pStatus a twitter4j.Status object * @return JSONObject */ @SuppressWarnings("unchecked") public static JSONObject getJson(Status pStatus) { JSONObject jsonObj = null; if (pStatus != null) { jsonObj = new JSONObject(); jsonObj.put("createdAt", pStatus.getCreatedAt()); jsonObj.put("id", pStatus.getId()); jsonObj.put("text", pStatus.getText()); jsonObj.put("source", pStatus.getSource()); jsonObj.put("isTruncated", pStatus.isTruncated()); jsonObj.put("inReplyToStatusId", pStatus.getInReplyToStatusId()); jsonObj.put("inReplyToUserId", pStatus.getInReplyToUserId()); jsonObj.put("isFavorited", pStatus.isFavorited()); jsonObj.put("isRetweeted", pStatus.isRetweeted()); jsonObj.put("favoriteCount", pStatus.getFavoriteCount()); jsonObj.put("inReplyToScreenName", pStatus.getInReplyToScreenName()); jsonObj.put("geoLocation", pStatus.getGeoLocation()); jsonObj.put("place", pStatus.getPlace()); jsonObj.put("retweetCount", pStatus.getRetweetCount()); jsonObj.put("isPossiblySensitive", pStatus.isPossiblySensitive()); jsonObj.put("isoLanguageCode", pStatus.getIsoLanguageCode()); jsonObj.put("contributorsIDs", pStatus.getContributors()); jsonObj.put("retweetedStatus", pStatus.getRetweetedStatus()); jsonObj.put("userMentionEntities", pStatus.getUserMentionEntities()); jsonObj.put("urlEntities", pStatus.getURLEntities()); jsonObj.put("hashtagEntities", pStatus.getHashtagEntities()); jsonObj.put("mediaEntities", pStatus.getMediaEntities()); jsonObj.put("currentUserRetweetId", pStatus.getCurrentUserRetweetId()); jsonObj.put("user", pStatus.getUser()); } return jsonObj; }
public static Record buildTweet(Schema schema, Status status) { GenericRecordBuilder builderTweet = new GenericRecordBuilder(schema); builderTweet.set("created_at", status.getCreatedAt().getTime()); builderTweet.set("favorite_count", status.getFavoriteCount()); builderTweet.set("favorited", status.isFavorited()); builderTweet.set("id", status.getId()); builderTweet.set("in_reply_to_screen_name", status.getInReplyToScreenName()); if (status.getInReplyToStatusId() != -1) builderTweet.set("in_reply_to_status_id", status.getInReplyToStatusId()); if (status.getInReplyToUserId() != -1) builderTweet.set("in_reply_to_user_id", status.getInReplyToUserId()); builderTweet.set("lang", status.getLang()); builderTweet.set("possibly_sensitive", status.isPossiblySensitive()); builderTweet.set("retweet_count", status.getRetweetCount()); builderTweet.set("retweeted", status.isRetweeted()); builderTweet.set("source", status.getSource()); builderTweet.set("text", status.getText()); builderTweet.set("truncated", status.isTruncated()); if (status.getWithheldInCountries() != null) builderTweet.set("withheld_in_countries", Arrays.asList(status.getWithheldInCountries())); if (status.getGeoLocation() != null) builderTweet.set( "coordinates", Arrays.asList( status.getGeoLocation().getLatitude(), status.getGeoLocation().getLongitude())); builderTweet.set("entities", buildEntities(schema.getField("entities").schema(), status)); if (status.getPlace() != null) builderTweet.set( "place", buildPlace(schema.getField("place").schema().getTypes().get(1), status.getPlace())); User user = status.getUser(); if (user != null && schema.getField("user") != null) { Schema schemaUser = schema.getField("user").schema(); GenericRecordBuilder builderUser = new GenericRecordBuilder(schemaUser); builderUser.set("contributors_enabled", user.isContributorsEnabled()); builderUser.set("created_at", user.getCreatedAt().getTime()); builderUser.set("default_profile", user.isDefaultProfile()); builderUser.set("default_profile_image", user.isDefaultProfileImage()); builderUser.set("description", user.getDescription()); builderUser.set( "entities", buildURLEntity(schemaUser.getField("entities").schema(), user.getURLEntity())); builderUser.set("favourites_count", user.getFavouritesCount()); builderUser.set("followers_count", user.getFollowersCount()); builderUser.set("friends_count", user.getFriendsCount()); builderUser.set("geo_enabled", user.isGeoEnabled()); builderUser.set("id", user.getId()); builderUser.set("is_translator", user.isTranslator()); builderUser.set("lang", user.getLang()); builderUser.set("listed_count", user.getListedCount()); builderUser.set("location", user.getLocation()); builderUser.set("name", user.getName()); builderUser.set("screen_name", user.getScreenName()); builderUser.set("profile_background_color", user.getProfileBackgroundColor()); builderUser.set("profile_background_image_url", user.getProfileBackgroundImageURL()); builderUser.set( "profile_background_image_url_https", user.getProfileBackgroundImageUrlHttps()); builderUser.set("profile_background_tile", user.isProfileBackgroundTiled()); builderUser.set("profile_banner_url", user.getProfileBannerURL()); builderUser.set("profile_image_url", user.getProfileImageURL()); builderUser.set("profile_image_url_https", user.getProfileBackgroundImageUrlHttps()); builderUser.set("profile_link_color", user.getProfileLinkColor()); builderUser.set("profile_sidebar_border_color", user.getProfileSidebarBorderColor()); builderUser.set("profile_sidebar_fill_color", user.getProfileSidebarFillColor()); builderUser.set("profile_text_color", user.getProfileTextColor()); builderUser.set("profile_use_background_image", user.isProfileUseBackgroundImage()); builderUser.set("protected", user.isProtected()); builderUser.set("show_all_inline_media", user.isShowAllInlineMedia()); builderUser.set("statuses_count", user.getStatusesCount()); builderUser.set("time_zone", user.getTimeZone()); builderUser.set("url", user.getURL()); builderUser.set("utc_offset", user.getUtcOffset()); builderUser.set("verified", user.isVerified()); if (user.getStatus() != null && schemaUser.getField("status") != null) builderUser.set( "status", buildTweet(schemaUser.getField("status").schema().getTypes().get(1), user.getStatus())); if (user.getWithheldInCountries() != null) builderUser.set("withheld_in_countries", Arrays.asList(user.getWithheldInCountries())); builderTweet.set("user", builderUser.build()); } if (status.getQuotedStatus() != null && schema.getField("quoted_status") != null) builderTweet.set( "quoted_status", buildTweet( schema.getField("quoted_status").schema().getTypes().get(1), status.getQuotedStatus())); if (status.getRetweetedStatus() != null && schema.getField("retweeted_status") != null) builderTweet.set( "retweeted_status", buildTweet( schema.getField("retweeted_status").schema().getTypes().get(1), status.getRetweetedStatus())); return builderTweet.build(); }