OSocial Network

From OpenSocial Directory

Jump to: navigation, search
Application Details
Description Be registered into the OSocial.net Meta Social Network.
Publisher OSocial.net
Author Victor Coustenoble
Code http://www.osocial.net/network/app/osocialnetwork.xml
Genre SocialNetworking
Supports OpenSocial

Image:Example.jpg==Reviews== Add a Review
Template:OSocial Network Reviews

[edit] Comments

Leave a comment

Your Name:
Heading:
Comment:


[edit] Code

View Code

<?xml version="1.0" encoding="UTF-8"?>
<Module>

 
    <ModulePrefs title="OSocial Network" description="Be registered into the OSocial.net Meta Social Network."
              author="Victor Coustenoble" author_email="victor@osocial.net" author_location="Paris, France"
              screenshot=""
              thumbnail=""> 
      <Require feature="dynamic-height" />
      <Require feature="opensocial-0.5" />
  </ModulePrefs>
  
  
 <Content type="html">
 	<![CDATA[


  <style>
    @import url(http://www.osocial.net/network/css/osocialnetworkapp.css);
  </style>
   
   	<script type='text/javascript' src='http://www.osocial.net/network/app/osocialnetwork.js'></script>      
    <div id="content"></div>
  
		 	]]>
  </Content>

</Module>

http://www.osocial.net/network/app/osocialnetwork.js


var nsid;
var osocialurl;
var dom_button;
var dom_div_haut;
var dom_div_bas;
var dom_content;
var htmlbas;
var htmlhaut;
var viewer;
var owner;    
var viewername;
var ownername;
var ownerid;
var viewerid;
var viewerprofile;
var viewerthumbnail;
var regExpBeginning = /^\s+/;
var regExpEnd       = /\s+$/;


_IG_RegisterOnloadHandler(Init);
//_IG_Analytics("UA-86663-5", "/feeds_tabs");

function trim(aString) {
    return aString.replace(regExpBeginning, "").replace(regExpEnd, "");
}
 
function Init() {
    
        osocialurl='http://www.osocial.net/network/';
        osocialurldb='http://www.osocial.net/network/db/';
        
        dom_button = document.createElement("button");        
        dom_div_haut = document.createElement("div");
        dom_div_bas = document.createElement("div");
        dom_content = document.getElementById("content");
    
        var s = new String(window.location);
        if (s.search(/ning.com/) != -1)
        {
          nsid=1;
        }          
        else if (s.search(/orkut.com/) != -1)
        {  
          nsid=3;
        }
        else if (s.search(/hi5.com/) != -1)
        {  
          nsid=2;
        }
        else if (s.search(/facebook.com/) != -1)
        {  
          nsid=4;
        }      
        else if (s.search(/opensocket.org/) != -1)
        {  
          nsid=4;
        }                            
        else
        {
          nsid=1;
        }
  
    document.getElementById('content').innerHTML = 'In progress...';
    
    var req = opensocial.newDataRequest();
    req.add(req.newFetchPersonRequest('OWNER'), 'owner');
    req.add(req.newFetchPersonRequest('VIEWER'), 'viewer');
    req.send(onLoadViewer);
};
  
function onLoadViewer(dataResponse) {           

    document.getElementById('content').innerHTML='';
            
     viewer = dataResponse.get('viewer').getData();
     owner = dataResponse.get('owner').getData();
     viewername=viewer.getDisplayName();
     ownername=owner.getDisplayName();
     ownerid=owner.getField(opensocial.Person.Field.ID);
     viewerid=viewer.getField(opensocial.Person.Field.ID);
     
     if (nsid==1)
     {
         viewerprofile=encodeURIComponent("http://"+viewerid+".ning.com");
         viewerthumbnail=encodeURIComponent(viewer.pictureUrl);
     }
     else
     {
         viewerprofile=encodeURIComponent(viewer.getField(opensocial.Person.Field.PROFILE_URL));
         viewerthumbnail=encodeURIComponent(viewer.getField(opensocial.Person.Field.THUMBNAIL_URL));
      }
        
    if ( (viewername=="Anonymous") && (nsid==1) )
    {        
        dom_div_haut.innerHTML = "Discover the <a target='_blank' href='"+osocialurl+"'>the OSocial network </a>.<br><br>";
        dom_content.appendChild(dom_div_haut);            
    
        htmlbas = "<p class='note'>To free your social graph (with microformats and FOAF profile) and spread the Giant Global Graph, run this application into your profile.";
        htmlbas += "<br>Application URL :<br> <a href='"+osocialurl+"app/osocialnetwork.xml'>"+osocialurl+"app/osocialnetwork.xml</a>";
        
        dom_div_bas.innerHTML = htmlbas;    
        dom_content.appendChild(dom_div_bas);        
    }
    else
    {
        htmlhaut="";
        htmlbas = "<p class='note'> Free your public social graph (with microformats and FOAF profile) and spread the Giant Global Graph.<br>";
                
        if (ownername!=viewername)
        {
          _IG_FetchContent(osocialurldb+'exists.php?uid='+ownerid+'&nsid='+nsid, function (responseText) {         
    
              var osocialid = trim(responseText);                      
              
              if( osocialid!=0 )
              {
                htmlhaut += "See <a target='_blank' href='"+osocialurl+"id.php?id="+osocialid+"'>"+ownername+" OSocial page</a>.<br><br>";
              }
                          
            if (nsid==2)
            {
                handleRequestOSocialKey(null);
            }
            else
            {
                var req = opensocial.newDataRequest();
                var fields = ["osocialkey"];
                req.add(req.newFetchPersonAppDataRequest("VIEWER", fields), "viewer_data");
                req.send(handleRequestOSocialKey);     
            }
            
          });       
          htmlbas += "<br>To be in this network run this application in your profile.";
        }
        else
        {
            if (nsid==2)
            {
                handleRequestOSocialKey(null);      
            }
            else
            {   
                var req = opensocial.newDataRequest();
                var fields = ["osocialkey"];
                req.add(req.newFetchPersonAppDataRequest("VIEWER", fields), "viewer_data");
                req.send(handleRequestOSocialKey);
            }
            
        }
        htmlbas += "OpenSocial application URL :<br> <a href='"+osocialurl+"app/osocialnetwork.xml'>"+osocialurl+"app/osocialnetwork.xml</a></p>";
            
        htmlhaut = htmlhaut + "Hi "+viewername+",<br>";     
    
    }       
}

function handleRequestOSocialKey(data) {           

try {
    var viewer_data = data.get("viewer_data").getData();
    var osocialkey = viewer_data[viewerid]["osocialkey"];
}
 catch (e) {
    var osocialkey = "";
}
               
/*  if (data.get("viewer_data").data != undefined)
  {  
      var viewer_data = data.get("viewer_data").getData();      
      var osocialkey = viewer_data[viewerid]["osocialkey"];
  }
  else
  {
      var osocialkey = "";
  }*/
  
  _IG_FetchContent(osocialurldb+'exists.php?uid='+viewerid+'&nsid='+nsid, function (responseText) {

      var osocialid = trim(responseText); 
       
      if( osocialid!=0 )
      {    
          if ( (osocialkey!="") || (nsid==2) )
          {     
              dom_div_haut.innerHTML = htmlhaut + "You are already in OSocial network, see <a target='_blank' href='"+osocialurl+"id.php?id="+osocialid+"'>your page here</a>.<br>";
              dom_content.appendChild(dom_div_haut);        
              
              //Button to click to register
              dom_button.innerHTML = "Update your public page with your friends list";
              dom_button.onclick = PostData(encodeURIComponent(viewername),viewerid,viewerprofile,viewerthumbnail,osocialid,osocialkey);
              dom_content.appendChild(dom_button);    
          }
          else
          {
              dom_div_haut.innerHTML = htmlhaut + "You have already a page in OSocial network, see <a target='_blank' href='"+osocialurl+"id.php?id="+osocialid+"'>your page here</a>.<br>";
              dom_content.appendChild(dom_div_haut);        
              
              //Button to click to register
              dom_button.innerHTML = "Update your public page with your friends list";
              dom_button.onclick = PostData(encodeURIComponent(viewername),viewerid,viewerprofile,viewerthumbnail,osocialid,osocialkey);
              dom_content.appendChild(dom_button);              
          }
      }
      else
      {      
          dom_div_haut.innerHTML = htmlhaut + "Not yet in <a target='_blank' href='"+osocialurl+"'>OSocial network</a>.<br>";
          dom_content.appendChild(dom_div_haut);        
              
          dom_button.innerHTML = "Create your public page with your friends list";
          dom_button.onclick = PostData(encodeURIComponent(viewername),viewerid,viewerprofile,viewerthumbnail,0,osocialkey);       
          dom_content.appendChild(dom_button);        
      }       
     
    dom_div_bas.innerHTML = htmlbas;
    
    dom_content.appendChild(dom_div_bas);
        
    }, { refreshInterval: 0 });
    	        
};

function PostData(iusername,iuserid,iprofile,ithumbnail,iid,ikey){
        return function() {

      dom_content.removeChild(dom_button);

      if (iid==0)
      {  
          // REGISTERED KEY/ID AND UPDATE FRIENDS
          //----------------------------
      
            _IG_FetchContent(osocialurldb+'insertuser.php?uname='+iusername+'&uprofile='+iprofile+'&uthumbnail='+ithumbnail+'&uid='+iuserid+'&nsid='+nsid, function (responseText) {
            
            var textresults = responseText.split(",");
            
            if (textresults[0]==0) 
            {
              dom_div_haut.innerHTML = htmlhaut + "<p class='progress'><br>Sorry, you can not be in OSocial.</p><br>";                                                   
            }
            else
            {
              var osocialid = trim(textresults[0]);
              var osocialkey = trim(textresults[1]); 
                            
              UpdateOSocialKey(osocialkey);            

              friendsPost(osocialid,osocialkey);
              
              dom_div_bas.innerHTML = "<p class='progress'>Friends update in progress ...</p>"+htmlbas;
              dom_div_haut.innerHTML = htmlhaut + "Congratulation, you are now in OSocial network, see <a target='_blank' href='"+osocialurl+"id.php?id="+osocialid+"'>your page here</a>.<br>";                           
            }                      
      
          }, { refreshInterval: 0 });   
      }
      else
      {
          if (ikey=="")
          {
            // GET KEY AND UPDATE FRIENDS
            //----------------------------
            
              _IG_FetchContent(osocialurldb+'updateuser.php?uid='+iid+'&userid='+iuserid, function (responseText) {
              
              var osocialkey = trim(responseText);
                            
              if (osocialkey!="noupdate")
              {
                  UpdateOSocialKey(osocialkey);              
                  friendsPost(iid,osocialkey);              
                  dom_div_bas.innerHTML = "<p class='progress'> Friends update in progress ...</p>"+htmlbas;
                  dom_div_haut.innerHTML = htmlhaut + "Congratulation, you are now in OSocial network, see <a target='_blank' href='"+osocialurl+"id.php?id="+iid+"'>your page here</a>.<br>";
              }
              else
              {
                  dom_div_bas.innerHTML = "<p class='progress'> Error<br></p>"+htmlbas;
                  dom_div_haut.innerHTML = htmlhaut+"<br>";
              }                                 
      
          }, { refreshInterval: 0 });   
          }
          else
          {
              // UPDATE FRIENDS
              //----------------------------
                
              friendsPost(iid,ikey);
              
              dom_div_bas.innerHTML = "<p class='progress'> Friends update in progress ...</p>"+htmlbas;

          }      
      } 
      
            
  };      
};

function UpdateOSocialKey(iosocialkey){

if (nsid!=1)
{
  var req = opensocial.newDataRequest();
  req.add(req.newUpdatePersonAppDataRequest("VIEWER", "osocialkey", iosocialkey));//, "status");
  req.send(ResponseUpdateOSocialKey);
}             
}

function ResponseUpdateOSocialKey(data) {
/*alert("toto");
  var error = data.get("status").hadError();
  if (error) {
    alert("Error data was successful");
  } else {
    alert("Writing data was successful");
  }*/
} 


function friendsPost(iosocialid,isocialkey){

var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest('VIEWER'), 'viewer');
req.add(req.newFetchPeopleRequest ('VIEWER_FRIENDS'), 'viewerFriends');

req.send(function(dataResponse) {

var viewer_friends = dataResponse.get('viewerFriends').getData();    

var ifriend=0;
var fnameinit;

if (nsid!=1)
  var lnbfriends=viewer_friends.getTotalSize();
else
  var lnbfriends=viewer_friends.length;

    viewer_friends.each(function(person) { 
    
        fnameinit = person.getDisplayName();
        var fname = encodeURIComponent(person.getDisplayName());
        var fuid = person.getField(opensocial.Person.Field.ID);
        
        if (nsid==1)
        {
          var fprofile=encodeURIComponent("http://"+fuid+".ning.com");
          var fthumbnail=encodeURIComponent(person.pictureUrl);
        }
        else
        {
          var fprofile = encodeURIComponent(person.getField(opensocial.Person.Field.PROFILE_URL));
          var fthumbnail = encodeURIComponent(person.getField(opensocial.Person.Field.THUMBNAIL_URL));
        }      
        
        _IG_FetchContent(osocialurldb+'addfriend.php?key='+isocialkey+'&id='+iosocialid+'&nsid='+nsid+'&fname='+fname+'&fprofile='+fprofile+'&fthumbnail='+fthumbnail+'&fuid='+fuid, function (responseText) {
                      
        ifriend+=1;
        dom_div_bas.innerHTML = "<p class='progress'> Friend "+fnameinit+" updated ("+ifriend+" / "+lnbfriends+" ).</p>";
        
        if (ifriend==lnbfriends)
        {
            dom_div_bas.innerHTML = "<p class='progress'> All "+lnbfriends+" friends updated.</p>"+htmlbas;      
        }
                        
       }, { refreshInterval: 0 });                       
    });    
});

}

Page Rating

Rating: 3.2/5 (6 votes cast)

Personal tools
communication