public static void removePost(Post post, String type) { String postId = post.getId(); IdNameEntity idNameEntity = post.getFrom(); String userId = idNameEntity.getId(); String userName = idNameEntity.getName(); String columnFamily = COLUMN_FAMILY_FACEBOOK_POST; String rowKey = type; String superColumn = postId + "-" + userId + "-" + userName; cassandra.removeSuperColumn(columnFamily, rowKey, superColumn); }
public static void insertPost(Post post, String type) { try { String postId = post.getId(); IdNameEntity idNameEntity = post.getFrom(); String userId = idNameEntity.getId(); String userName = idNameEntity.getName(); String commentsCount = post.getComments() == null ? "0" : post.getComments().size() + ""; String likeCount = post.getLikes() == null ? "0" : post.getLikes().size() + ""; String columnFamily = COLUMN_FAMILY_FACEBOOK_POST; String rowKey = type; String superColumn = postId + "-" + userId + "-" + userName; Clock clock = new Clock(System.nanoTime()); Column column = new Column(); String columnName = commentsCount + "-" + likeCount; column.setName(columnName.getBytes(UTF8)); String columnValue = post.getMessage(); if (!StringUtils.isBlank(columnValue)) { column.setValue(columnValue.getBytes(UTF8)); } else { column.setValue("".getBytes(UTF8)); } column.setTimestamp(clock.timestamp); cassandra.insertSuperColumn(columnFamily, rowKey, superColumn, column); } catch (UnsupportedEncodingException e) { logger.error("[Info: encoding invalid] - [Error: {}]", e.toString()); } }
public static void insertPostPopular(Post post, String type, Integer position) { try { String postId = post.getId(); IdNameEntity idNameEntity = post.getFrom(); String userId = idNameEntity.getId(); String userName = idNameEntity.getName(); String columnFamily = COLUMN_FAMILY_FACEBOOK_POST_POPULAR; String rowKey = (type + "-" + position); Clock clock = new Clock(System.nanoTime()); Column column = new Column(); String columnName = (postId + "-" + userId + "-" + userName); column.setName(columnName.getBytes(UTF8)); String columnValue = post.getMessage(); column.setValue(columnValue.getBytes(UTF8)); column.setTimestamp(clock.timestamp); cassandra.insertColumn(columnFamily, rowKey, column); } catch (UnsupportedEncodingException e) { logger.error("[Info: encoding invalid] - [Error: {}]", e.toString()); } }
public static String searchPosts(List<String> keywords) { int max_posts = 10000; Facebook facebook = FacebookUtil.getFacebookInstance(); for (String key : keywords) { boolean fileSave = false; String home = System.getProperty("user.home"); try { // write data into local file File file = new File(home + File.separator + "f_" + key.toLowerCase() + ".txt"); if (file.exists()) { log.info( "File " + home + File.separator + "f_" + key.toLowerCase() + ".txt" + " already exists"); file.delete(); log.info( "File " + home + File.separator + "f_" + key.toLowerCase() + ".txt" + " deleted"); } if (!file.exists()) { file.createNewFile(); log.info( "File " + home + File.separator + "f_" + key.toLowerCase() + ".txt" + " created"); } BufferedWriter writer = new BufferedWriter(new FileWriter(file)); ResponseList<Post> results = facebook.getFeed(key, new Reading().limit(max_posts)); for (Post post : results) { writer.write(post.getMessage() + "\n"); } writer.flush(); writer.close(); fileSave = true; Thread.sleep(65000); } catch (FacebookException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (fileSave) log.info(home + File.separator + key + " .txt saved sucessfully"); else log.error("Failed to save " + home + File.separator + key + ".txt"); } } FileSystem hdfs = null; org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration(); String home = System.getProperty("user.home"); try { hdfs = FileSystem.get(new URI(filesPath.HDFS_URL), conf); for (String key : keywords) { Path localFilePath = new Path(home + File.separator + "f_" + key + ".txt"); Path modelPath = new Path("/user/dev11" + File.separator + "f_" + key + ".txt"); if (hdfs.exists(modelPath)) { hdfs.delete(new Path("/user/dev11" + File.separator + "f_" + key + ".txt"), true); } hdfs.copyFromLocalFile(localFilePath, modelPath); } } catch (IOException e) { e.printStackTrace(); } catch (URISyntaxException e) { e.printStackTrace(); } return ""; }
public static String getUserTimeline(List<String> ids) { Facebook facebook = FacebookUtil.getFacebookInstance(); int max_posts = 10; for (String key : ids) { boolean fileSave = false; String home = System.getProperty("user.home"); try { // write data into local file File file = new File(home + File.separator + "f_" + key.toLowerCase() + ".txt"); if (file.exists()) { log.info( "File " + home + File.separator + "f_" + key.toLowerCase() + ".txt" + " already exists"); file.delete(); log.info( "File " + home + File.separator + "f_" + key.toLowerCase() + ".txt" + " deleted"); } if (!file.exists()) { file.createNewFile(); log.info( "File " + home + File.separator + "f_" + key.toLowerCase() + ".txt" + " created"); } BufferedWriter writer = new BufferedWriter(new FileWriter(file)); User user = facebook.getUser(key, new Reading().fields("email")); System.out.println(" user " + user.getUsername()); ResponseList<Post> feeds = facebook.getPosts(key, new Reading().limit(max_posts)); // For all 25 feeds... for (int i = 0; i < feeds.size(); i++) { // Get post. Post post = feeds.get(i); // Get (string) message. String message = post.getMessage(); // Print out the message. System.out.println(message); // Get more stuff... PagableList<Comment> comments = post.getComments(); String date = post.getCreatedTime().toString(); String name = post.getFrom().getName(); String id = post.getId(); } } catch (FacebookException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (fileSave) log.info(home + File.separator + key + " .txt saved sucessfully"); else log.error("Failed to save " + home + File.separator + key + ".txt"); } } return "hello"; }
public static XContentBuilder toJson( Post post, String riverName, Map<String, List<EntityReference>> entities, Map<String, List<String>> mauiTopics, List<Map<String, String>> bayesianAnalyzedText) throws IOException { XContentBuilder out = XContentFactory.jsonBuilder().startObject(); out.field("PostId", post.getId()); out.field("PostLink", post.getLink() != null ? post.getLink().toString() : null); out.field("PostCreatedTime", post.getCreatedTime()); IdNameEntity idName = null; if ((idName = post.getFrom()) != null) { out.field("PostFromId", idName.getId()); out.field("PostFromName", idName.getName()); } if (post.getStatusType() != null) { out.field("PostStatusType", post.getStatusType()); } out.field("Post", post.getMessage()); if (entities != null) { if (entities.isEmpty()) { out.field("entities", "{}"); } else { out.startArray("entities"); for (Map.Entry<String, List<EntityReference>> entityEntry : entities.entrySet()) { out.startObject(); out.startArray(entityEntry.getKey()); for (EntityReference er : entityEntry.getValue()) { out.startObject(); out.field("entity-label", er.getEntityLabel()); out.field("entity-reference", er.getEntityReference()); out.field("entity-confidence", er.getConfidence()); out.startArray("entity-type"); for (String s : er.getEntityTypeList()) { out.startObject(); out.field("type", s); out.endObject(); } out.endArray(); out.endObject(); } out.endArray(); out.endObject(); } out.endArray(); } } if (mauiTopics != null) { if (mauiTopics.isEmpty()) { out.field("topics", "{}"); } else { out.startArray("topics"); out.startObject(); for (Map.Entry<String, List<String>> e : mauiTopics.entrySet()) { out.startArray(e.getKey()); for (String s : e.getValue()) { out.startObject(); out.field("text", s); out.endObject(); } out.endArray(); } out.endObject(); out.endArray(); } } if (bayesianAnalyzedText != null) { if (bayesianAnalyzedText.isEmpty()) { out.field("BayesianAnalysers", "{}"); } else { out.startArray("BayesianAnalysers"); out.startObject(); for (Map<String, String> m : bayesianAnalyzedText) { if (m == null || m.isEmpty()) { continue; } for (Map.Entry<String, String> e : m.entrySet()) { out.startArray(e.getKey()); out.startObject(); out.field("text", e.getValue()); out.endObject(); out.endArray(); } } out.endObject(); out.endArray(); } } if (riverName != null) { out.field("RiverName", riverName); } return out.endObject(); }