A simple Second Life HUD for FriendFeed
by Opensource Obscure
keep it free
put these script in 2 prims
link them
wear the linked object as an HUD
send messages on /8 chat channel
######################### script for the root prim (i think)
// FriendFeed username and key are here: https://friendfeed.com/account/api
string user=""; // your FriendFeed username
string ffkey=""; // your FriendFeed key
string baseurl="@friendfeed.com/api/share";
string testo="";
default
{
state_entry()
{
llListen(8, "", llGetOwner(), "");
}
listen(integer channel, string name, key id, string message)
{
llMessageLinked(2, 1, "", NULL_KEY);
testo = message;
}
link_message(integer sender_num, integer num, string str, key id)
{
string imageurl = "http://secondlife.com/app/image/" + (string)id + "/2";
vector detectedPos = llGetRootPosition();
string simname = llDumpList2String(llParseString2List(llGetRegionName(),[" "],[]),"+");
string sx = (string)llRound(detectedPos.x);
string sy = (string)llRound(detectedPos.y);
string sz = (string)llRound(detectedPos.z);
string url = "http://slurl.com/secondlife/";
url += simname;
url += "/" + sx + "/" + sy + "/" + sz ;
testo = llDumpList2String(llParseString2List(testo,[" "],[]),"+");
string post = "http://" + user + ":" + ffkey + baseurl + "?title=" + simname + "&link=" + llEscapeURL(url) + "&comment=" + testo + "&image0_url=" + llEscapeURL(imageurl);
llHTTPRequest(post, [HTTP_METHOD,"POST"], "");
}
http_response(key request_id, integer status, list metadata, string body)
{
{
llOwnerSay("Message sent to http://friendfeed.com/" + user);
}
}
}
######################### script for the child prim
string ownerurl = "http://world.secondlife.com/resident/";
string groupurl = "http://world.secondlife.com/group/";
string code1 = "
";
string code3 = "
";
default
{
state_entry()
{
llSetTexture("bb839549-6011-6040-c809-34af2bb6bea2", ALL_SIDES);
}
link_message(integer sender_num, integer num, string str, key id)
{
list lstParcel=llGetParcelDetails(llGetPos(),[PARCEL_DETAILS_GROUP]);
if((string)lstParcel == "00000000-0000-0000-0000-000000000000")
{
list lstParcelOwner=llGetParcelDetails(llGetPos(),[PARCEL_DETAILS_OWNER]);
string uuid = (string)lstParcelOwner;
llHTTPRequest( ownerurl + uuid,[HTTP_METHOD,"GET"],"");
}
else
{
list lstParcelGroup=llGetParcelDetails(llGetPos(),[PARCEL_DETAILS_GROUP]);
string uuid = (string)lstParcelGroup;
llHTTPRequest( groupurl + uuid,[HTTP_METHOD,"GET"],"");
}
}
http_response(key req,integer stat, list met, string body)
{
key texture = (key)llGetSubString(body,llSubStringIndex(body, code1)+llStringLength(code1),llSubStringIndex(body,code2)-3);
llSetTexture(texture, ALL_SIDES);
llMessageLinked(1, 2, "", texture);
}
}