summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2016-11-04 14:35:19 +0100
committerPeter Wu <peter@lekensteyn.nl>2016-11-04 14:35:19 +0100
commitfb05754af5941734236d9a62978888fad93bf261 (patch)
treee407d09b0b17daffea8d1665611120963089a724
parent427ebf5ef67251406fcd69347ed79df29b43682a (diff)
downloadDatafiller-ir-2016h1.tar.gz
Gracefully handle mentions without user IDir-2016h1
Encountered a retweet where the ID is null, but the screen_name is at least given and matches the user: "user_mentions": [{ "screen_name": "(username)", "name": null, "id": null, "id_str": null, "indices": [3, 16]
-rw-r--r--src/data/Tweet.java4
-rw-r--r--src/main/DataFiller.java14
2 files changed, 15 insertions, 3 deletions
diff --git a/src/data/Tweet.java b/src/data/Tweet.java
index 6ee89f4..bd5d352 100644
--- a/src/data/Tweet.java
+++ b/src/data/Tweet.java
@@ -59,7 +59,7 @@ public class Tweet {
public Hashtag[] hashtags;
//@ValidatingJsonDeserializer.Validator
public Url[] urls;
- @ValidatingJsonDeserializer.Validator
+ //@ValidatingJsonDeserializer.Validator
public Mention[] user_mentions;
}
@@ -79,6 +79,6 @@ public class Tweet {
public long id; // user ID
//public String name; // display name
- //public String screen_name; // Screen name (at-name)
+ public String screen_name; // Screen name (at-name)
}
}
diff --git a/src/main/DataFiller.java b/src/main/DataFiller.java
index 2a06026..3a19f37 100644
--- a/src/main/DataFiller.java
+++ b/src/main/DataFiller.java
@@ -122,7 +122,19 @@ public class DataFiller {
}
for (Tweet.Mention mention : tweet.entities.user_mentions) {
m_insertMentions.setLong("tweetid", tweet.id);
- m_insertMentions.setLong("userid", mention.id);
+ if (mention.id == 0) {
+ Tweet rt = tweet.retweeted_status;
+ if (rt != null && rt.user.screen_name != null &&
+ rt.user.screen_name.equals(mention.screen_name)) {
+ m_insertMentions.setLong("userid", rt.user.id);
+ } else {
+ System.err.println("Unknown mention in tweet, skipping metadata!");
+ System.err.println(tweet);
+ continue;
+ }
+ } else {
+ m_insertMentions.setLong("userid", mention.id);
+ }
m_insertMentions.executeUpdate();
}