package org.societies.platform.socialdata.converters; import java.util.ArrayList; import java.util.List; import org.apache.shindig.social.core.model.AccountImpl; import org.apache.shindig.social.core.model.NameImpl; import org.apache.shindig.social.core.model.PersonImpl; import org.apache.shindig.social.opensocial.model.Account; import org.apache.shindig.social.opensocial.model.Person; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; public class FriendsConverterFromTwitter implements FriendsConverter{ public List<Person> load(String data){ List <Person> friends = new ArrayList<Person>(); Account tw = new AccountImpl(); tw.setDomain("twitter.com"); List<Account> accounts = new ArrayList<Account>(); accounts.add(tw); try{ JSONObject jdata = new JSONObject(data); if (jdata.has("error")){ return new ArrayList<Person>(); } JSONArray jfriends = null; if (jdata.has("friends")){ PersonConverterFromTwitter converter = new PersonConverterFromTwitter(); jfriends = jdata.getJSONArray("friends"); for (int i=0; i<jfriends.length();i++){ JSONObject jfriend = jfriends.getJSONObject(i); Person p = converter.load(jfriend.toString()); // // Person p = new PersonImpl(); // p.setId("twitter:"+jfriend.getString("id")); // p.setRelationshipStatus("friend"); // p.setName(new NameImpl(jfriend.getString("name"))); // p.setAccounts(accounts); //System.out.println(">>> new Friends"+p.getName().getFormatted()); friends.add(p); } } else if (jdata.has("ids")){ jfriends = jdata.getJSONArray("ids"); for (int i=0; i<jfriends.length();i++){ Person p = new PersonImpl(); p.setId("twitter:"+jfriends.getString(i)); p.setRelationshipStatus("friend"); p.setAccounts(accounts); //System.out.println(">>> new Friends"+p.getName().getFormatted()); friends.add(p); } }else { jfriends = new JSONArray(data); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return friends; } }