Difference between revisions of "LibraryDisplayLandScreenshot"

From Second Life Wiki
Jump to navigation Jump to search
Line 1: Line 1:
This is nothing special, but it gets the job done. :)
This is nothing special, but it gets the job done. :)
--[[User:Jon Desmoulins|Jon Desmoulins]] 17:49, 16 February 2010 (UTC)
--[[User:Jon Desmoulins|Jon Desmoulins]] 17:49, 16 February 2010 (UTC)
NOTE: Your location has to be in the search for this to work.  Also, it may take some time for your location to appear in search if you just checked the "Show in Search" button in your land settings.  (I forget the cache time)
Edits:
2/19/2010 - Erased my own land's key from the code, forgot to omit this on submission.


<lsl>
<lsl>

Revision as of 13:56, 19 February 2010

This is nothing special, but it gets the job done. :) --Jon Desmoulins 17:49, 16 February 2010 (UTC)

NOTE: Your location has to be in the search for this to work. Also, it may take some time for your location to appear in search if you just checked the "Show in Search" button in your land settings. (I forget the cache time)

Edits: 2/19/2010 - Erased my own land's key from the code, forgot to omit this on submission.

<lsl> // Credit goes to Jana Kamachi/Solar Alter // for discovering this concept first // and taking it beyond just displaying the profile picture // see http://forums.secondlife.com/showthread.php?t=225460 // and https://wiki.secondlife.com/wiki/User:Jana_Kamachi/Profile // for further information

/*

   Modified by Jon Desmoulins to use the new PARCEL_DETAILS_ID
   to fetch the image that displays on the world.secondlife.com pages
   It's a little hacky, but it works.
  • /

string LAND_URL = "http://world.secondlife.com/place/"; //Base URL for world search key WHITE_DEFAULT_TEXTURE = "5748decc-f629-461c-9a36-a35a221fe21f"; //Use this texture key by default

default {

   state_entry()
   {
       llSetText("", <1,0,0>, 1.0); // Erase hover text
       llSetTexture(WHITE_DEFAULT_TEXTURE, ALL_SIDES); // Set to default texture
   }
   
   touch_start(integer num_detected)
   {        
       llOwnerSay(LAND_URL + (string)llList2Key(llGetParcelDetails(llGetPos(),[5]),0));  
       llHTTPRequest(LAND_URL + (string)llList2Key(llGetParcelDetails(llGetPos(),[5]) ,[],"");        
   }
   on_rez(integer start_param)
   {
       llSetText("", <1,0,0>, 1.0); // Erase hover text
       llSetTexture(WHITE_DEFAULT_TEXTURE, ALL_SIDES); // Set to default texture
   }
   
   http_response(key request_id,integer status, list metadata, string body)
   {
       // If the profile has no picture the image name will be
       // http://world.secondlife.com/images/blank.jpg 
       if (llSubStringIndex(body, "blank.jpg") == -1) // If a profile picture exists
       {
           // Find starting point of the land picture UUID
           integer start_of_UUID = llSubStringIndex(body,"<meta name=\"imageid\" content=\"") + llStringLength("<meta name=\"imageid\" content=\"");
           // Find ending point of land picture UUID
           integer end_of_UUID = llSubStringIndex(body,"/");
           // Parse out land UUID from the body
           string profile_pic = llGetSubString(body, start_of_UUID, end_of_UUID);
           // Set the sides of the prim to the picture
           
           //Parse some more, we need to dig deeper to get the key.
           integer start = llSubStringIndex(profile_pic,"<!DOCTYPE html PUBLIC \"-/") + llStringLength("<!DOCTYPE html PUBLIC \"-/");
           integer end = llSubStringIndex(profile_pic,"\" />");            
           string landpic = llGetSubString(profile_pic, start,end - 1);
           
           //Voila!
           llSetTexture((key)landpic, ALL_SIDES);            
       }
       else
       {
           llWhisper(0, "You have no land picture"); // Tell the avatar they have no picture
           llSetTexture(WHITE_DEFAULT_TEXTURE, ALL_SIDES); // Set to default texture
       }
   }

} </lsl>