OSocial Network
From OpenSocial Directory
|
|
| ||||||||||||||||
Image:Example.jpg==Reviews==
Add a Review
Template:OSocial Network Reviews
[edit] Comments
| Leave a comment |
|---|
[edit] 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 });
});
});
}
BlogMarks
del.icio.us
digg
Furl
Newsvine
reddit
Simpy
Slashdot