我可以排除转发和特定用户的回复吗?

时间:2018-05-30 09:08:30

标签: java twitter4j

我使用Twitter4J连接twitter。在这里,我使用getUserTimeLine()获取推文,但也出现了转发和回复。如何使用getUserTimeLine()排除转推和回复,因为我想从特定用户检索?

Scanner input = new Scanner(System.in);
Twitter twitter1 = tf.getInstance();
List<Status> tweet;

System.out.print("Username : ");
String user = input.nextLine();

tweet = twitter1.getUserTimeline(user);
System.out.println("Show Timeline @" + user);
for (Status status : tweet) {
   System.out.println("Tweet : " + status.getText());
}

2 个答案:

答案 0 :(得分:0)

查看twitter docs,有可能 使用exclude_repliesinclude_rts可选选项排除RT和回复。 但这些选项似乎不存在于Twitter4J中。 (grepped代码,但没有找到它们)

答案 1 :(得分:0)

您可以尝试使用isRetweet()方法,如果此状态为转推,则会返回true。如果此状态是对其他某些推文的响应,则getInReplyToStatusId()方法将返回值&gt; 0。 在Java 8流中,您可以简单地过滤

tweet = tweet.stream().filter(status -> !status.isRetweet() && status.getInReplyToStatusId()==0).collect(Collectors.toList());