STREAMS-105 | Ensured that the user_mentions entries are correctly structured and that the activity object has the correct ID and content
Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/c35c2ef7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/c35c2ef7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/c35c2ef7 Branch: refs/heads/STREAMS-46 Commit: c35c2ef74df06779d50bdf80a79823ade57ac1c4 Parents: d71b159 Author: Robert Douglas <[email protected]> Authored: Fri Jun 27 16:46:07 2014 -0500 Committer: Robert Douglas <[email protected]> Committed: Fri Jun 27 16:46:07 2014 -0500 ---------------------------------------------------------------------- .../DatasiftDefaultActivitySerializer.java | 7 +++-- .../DatasiftTweetActivitySerializer.java | 30 ++++++++++++-------- 2 files changed, 23 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/c35c2ef7/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftDefaultActivitySerializer.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftDefaultActivitySerializer.java b/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftDefaultActivitySerializer.java index b8c87e5..09126dc 100644 --- a/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftDefaultActivitySerializer.java +++ b/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftDefaultActivitySerializer.java @@ -22,8 +22,8 @@ import java.util.Map; import static org.apache.streams.data.util.ActivityUtil.ensureExtensions; /** -* -*/ + * + */ public class DatasiftDefaultActivitySerializer implements ActivitySerializer<Datasift>, Serializable { private static final Logger LOGGER = LoggerFactory.getLogger(DatasiftDefaultActivitySerializer.class); @@ -174,6 +174,9 @@ public class DatasiftDefaultActivitySerializer implements ActivitySerializer<Dat ActivityObject actObj = new ActivityObject(); actObj.setObjectType(interaction.getContenttype()); actObj.setUrl(interaction.getLink()); + actObj.setId(interaction.getId()); + actObj.setContent(interaction.getContent()); + return actObj; } http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/c35c2ef7/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTweetActivitySerializer.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTweetActivitySerializer.java b/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTweetActivitySerializer.java index 3406eb4..465196f 100644 --- a/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTweetActivitySerializer.java +++ b/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTweetActivitySerializer.java @@ -31,10 +31,12 @@ import org.apache.streams.datasift.twitter.Twitter; import org.apache.streams.pojo.json.Activity; import org.apache.streams.pojo.json.Actor; import org.apache.streams.pojo.json.Image; +import org.apache.streams.twitter.pojo.UserMentions; import org.apache.streams.twitter.serializer.util.TwitterActivityUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -204,8 +206,8 @@ public class DatasiftTweetActivitySerializer extends DatasiftDefaultActivitySeri } } } - extensions.put("hashtags", hashTags); + extensions.put("hashtags", hashTags); if(retweet != null) { Map<String, Object> rebroadcasts = Maps.newHashMap(); @@ -215,18 +217,22 @@ public class DatasiftTweetActivitySerializer extends DatasiftDefaultActivitySeri } if(interaction.getAdditionalProperties() != null) { - Object mentionsObject = interaction.getAdditionalProperties().get("mentions"); - if(mentionsObject != null ) { - if(mentionsObject instanceof List) { - List mentions = (List) mentionsObject; - List<Map<String, Object>> userMentions = Lists.newLinkedList(); - for(Object mention : mentions) { - Map<String, Object> actor = Maps.newHashMap(); - actor.put("displayName", mention); - userMentions.add(actor); - } - extensions.put("user_mentions", userMentions); + ArrayList<String> mentions = (ArrayList<String>) interaction.getAdditionalProperties().get("mentions"); + ArrayList<Long> mentionIds = (ArrayList<Long>) interaction.getAdditionalProperties().get("mention_ids"); + ArrayList<UserMentions> userMentions = new ArrayList<UserMentions>(); + + if(mentions != null && mentionIds != null && (mentionIds.size() == mentions.size()) && !mentions.isEmpty() && !mentionIds.isEmpty()) { + for(int x = 0; x < mentions.size(); x ++) { + UserMentions mention = new UserMentions(); + + mention.setIdStr("id:twitter:" + mentionIds.get(x)); + mention.setId(mentionIds.get(x)); + mention.setName(mentions.get(x)); + mention.setScreenName(mentions.get(x)); + + userMentions.add(mention); } + extensions.put("user_mentions", userMentions); } } extensions.put("keywords", interaction.getContent());
