You are viewing a plain text version of this content. The canonical link for it is here.
Posted to photark-commits@incubator.apache.org by su...@apache.org on 2011/06/26 06:39:51 UTC
svn commit: r1139719 - in
/incubator/photark/trunk/photark-face-recognition/src/main/java/org/apache/photark/face/services/applications/facebook:
FacebookFriendFinder.java FacebookFriendFinderImpl.java
Author: subash
Date: Sun Jun 26 06:39:51 2011
New Revision: 1139719
URL: http://svn.apache.org/viewvc?rev=1139719&view=rev
Log:
Finished the TODOs of FacebookFriendFinder impl and refactored few previous codes
Modified:
incubator/photark/trunk/photark-face-recognition/src/main/java/org/apache/photark/face/services/applications/facebook/FacebookFriendFinder.java
incubator/photark/trunk/photark-face-recognition/src/main/java/org/apache/photark/face/services/applications/facebook/FacebookFriendFinderImpl.java
Modified: incubator/photark/trunk/photark-face-recognition/src/main/java/org/apache/photark/face/services/applications/facebook/FacebookFriendFinder.java
URL: http://svn.apache.org/viewvc/incubator/photark/trunk/photark-face-recognition/src/main/java/org/apache/photark/face/services/applications/facebook/FacebookFriendFinder.java?rev=1139719&r1=1139718&r2=1139719&view=diff
==============================================================================
--- incubator/photark/trunk/photark-face-recognition/src/main/java/org/apache/photark/face/services/applications/facebook/FacebookFriendFinder.java (original)
+++ incubator/photark/trunk/photark-face-recognition/src/main/java/org/apache/photark/face/services/applications/facebook/FacebookFriendFinder.java Sun Jun 26 06:39:51 2011
@@ -1,5 +1,6 @@
package org.apache.photark.face.services.applications.facebook;
+import org.apache.tuscany.sca.data.collection.Entry;
import org.oasisopen.sca.annotation.Remotable;
/**
@@ -12,7 +13,7 @@ import org.oasisopen.sca.annotation.Remo
@Remotable
public interface FacebookFriendFinder {
- public String[] getAllMyFBFriendsInThisPicture(String pathToFile);
+ public Entry<String, String>[] getAllMyFBFriendsInThisPicture(String pathToFile);
public void setFacebookAuth(String facebookId, String fbAccessToken);
Modified: incubator/photark/trunk/photark-face-recognition/src/main/java/org/apache/photark/face/services/applications/facebook/FacebookFriendFinderImpl.java
URL: http://svn.apache.org/viewvc/incubator/photark/trunk/photark-face-recognition/src/main/java/org/apache/photark/face/services/applications/facebook/FacebookFriendFinderImpl.java?rev=1139719&r1=1139718&r2=1139719&view=diff
==============================================================================
--- incubator/photark/trunk/photark-face-recognition/src/main/java/org/apache/photark/face/services/applications/facebook/FacebookFriendFinderImpl.java (original)
+++ incubator/photark/trunk/photark-face-recognition/src/main/java/org/apache/photark/face/services/applications/facebook/FacebookFriendFinderImpl.java Sun Jun 26 06:39:51 2011
@@ -5,10 +5,13 @@ import com.github.mhendred.face4j.except
import com.github.mhendred.face4j.model.Face;
import com.github.mhendred.face4j.model.Photo;
import org.apache.photark.face.services.FaceRecognitionService;
+import org.apache.tuscany.sca.data.collection.Entry;
import org.oasisopen.sca.annotation.Reference;
import org.oasisopen.sca.annotation.Scope;
import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
@Scope("COMPOSITE")
public class FacebookFriendFinderImpl implements FacebookFriendFinder {
@@ -17,38 +20,52 @@ public class FacebookFriendFinderImpl im
@Reference(name = "faceRecognitionService")
protected void setFaceRecognitionService(FaceRecognitionService faceRecognitionService) {
- this.faceRecognitionService = faceRecognitionService;
+ this.faceRecognitionService = faceRecognitionService;
}
-
- public String[] getAllMyFBFriendsInThisPicture(String pathToFile) {
- return new String[0];
+ public Entry<String, String>[] getAllMyFBFriendsInThisPicture(String pathToFile) {
+ return processFBFriends(pathToFile);
}
public void setFacebookAuth(String facebookId, String fbAccessToken) {
- faceRecognitionService.setFacebookOauth2(facebookId,fbAccessToken);
+ faceRecognitionService.setFacebookOauth2(facebookId, fbAccessToken);
}
- private String[] processFBFriends(String filePath) {
-
+ private Entry<String, String>[] processFBFriends(String filePath) {
+ List<Entry<String, String>> detectedFriends = new ArrayList<Entry<String, String>>();
try {
- Photo p = faceRecognitionService.recognizeFromFile(new File(filePath),"friends@facebook.com");
+ Photo p = faceRecognitionService.recognizeFromFile(new File(filePath), "friends@facebook.com");
- for(Face face : p.getFaces()) {
- if(face.getGuess() != null) {
- System.out.println("***Identified*** "+face.getGuess().toString());
- } else {
- System.out.println("??? Unidentified ..");
+ for (Face face : p.getFaces()) {
+ String uid = "";
+ String confidence = "";
+ if (face.getGuess() != null) {
+ System.out.println("***Identified*** " + face.getGuess().toString());
+ uid = getFBUID(face.getGuess().toString());
+ confidence = getFaceConfidence(face.getGuess().toString());
+ detectedFriends.add(new Entry<String, String>(uid, confidence));
+ } else {
+ System.out.println("??? Unidentified ..");
+ }
}
- }
} catch (FaceClientException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} catch (FaceServerException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
- return null; //TODO return Facebook IDs of recognized friends
+ Entry<String, String>[] imageArray = new Entry[detectedFriends.size()];
+
+ return detectedFriends.toArray(imageArray);
+ }
+
+ private String getFBUID(String s) {
+ return s.substring(1, s.length() - 1).split(",")[1].trim().split("=")[1].split("@")[0];
+ }
+
+ private String getFaceConfidence(String s) {
+ return s.substring(1, s.length() - 1).split(",")[0].trim().split("=")[1];
}
}