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];
     }
 
 }