package org.societies.platform.socialdata.converters;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import org.apache.shindig.social.core.model.ActivityEntryImpl;
import org.apache.shindig.social.core.model.ActivityObjectImpl;
import org.apache.shindig.social.opensocial.model.ActivityEntry;
import org.apache.shindig.social.opensocial.model.ActivityObject;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class ActivityConverterFromTwitter implements ActivityConverter {
@Override
public List<ActivityEntry> load(String data) {
ArrayList<ActivityEntry> activities = new ArrayList<ActivityEntry>();
JSONArray elements;
ActivityObject providerObj = new ActivityObjectImpl();
providerObj.setContent("twitter");
providerObj.setUrl("www.twitter.com");
providerObj.setId("twitter");
providerObj.setDisplayName("Twitter");
System.out.println();
try {
elements = new JSONArray(data);
} catch (JSONException e1) {
return activities;
}
try{
for (int i=0; i<elements.length(); i++){
JSONObject elm = elements.getJSONObject(i);
ActivityEntry entry = new ActivityEntryImpl();
entry.setId("twitter:"+elm.getString("id"));
if (elm.has("text"))
entry.setContent(elm.getString("text"));
if (elm.has("user")) {
JSONObject user = new JSONObject(elm.getString("user"));
// System.out.println(user.toString());
if (user.has("name")) {
ActivityObject aobj = new ActivityObjectImpl();
aobj.setDisplayName(user.getString("name"));
entry.setActor(aobj);
}
}
if (elm.has("created_at")) {
// System.out.println(elm.getString("created_at"));
SimpleDateFormat date = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy",Locale.ENGLISH);
SimpleDateFormat publishedDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
Date datetemp = null;
try {
datetemp = date.parse(elm.getString("created_at"));
entry.setPublished(publishedDate.format(datetemp));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
entry.setVerb("post");
entry.setProvider(providerObj);
ActivityObject type = new ActivityObjectImpl();
type.setObjectType("note");
entry.setObject(type);
activities.add(entry);
}
}
catch (JSONException e) {
e.printStackTrace();
}
return activities;
}
}