Advertisement
Guest User

Untitled

a guest
Oct 2nd, 2014
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. key user_key = "";
  2. key blank = TEXTURE_BLANK;
  3. key toucher;
  4. list user_able;
  5. list group_able;
  6. string url = "http://world.secondlife.com/resident/";
  7. string name;
  8. string status;
  9. integer lis_handle;
  10. integer dia_handle;
  11. integer own_handle;
  12. integer g_handle = -81524;
  13. integer u_handle = -81525;
  14. integer facechange;
  15.  
  16. string profile_key_prefix = "<meta name=\"imageid\" content=\"";
  17. string profile_img_prefix = "<img alt=\"profile image\" src=\"http://secondlife.com/app/image/";
  18. integer profile_key_prefix_length; // calculated from profile_key_prefix in state_entry()
  19. integer profile_img_prefix_length; // calculated from profile_img_prefix in state_entry()
  20.  
  21. default
  22. {
  23.     state_entry()
  24.     {
  25.         lis_handle = 0;
  26.         own_handle = -924304;
  27.         dia_handle = -924303;
  28.         profile_key_prefix_length = llStringLength(profile_key_prefix);
  29.         profile_img_prefix_length = llStringLength(profile_img_prefix);
  30.         llSetTexture(blank, ALL_SIDES);
  31.     }
  32.    
  33.     touch_start(integer num_detected)
  34.     {
  35.         lis_handle = 0;
  36.         toucher = llDetectedKey(0);
  37.         facechange = llDetectedTouchFace(0);
  38.         //llWhisper(0, llDumpList2String(database, ", "));
  39.         if(toucher == llGetOwner())
  40.         {
  41.                 llDialog(toucher,"What will you do?",["Add","Remove"],own_handle);
  42.                 own_handle = -92430;
  43.                 llListen(own_handle, "", NULL_KEY, "");
  44.         }
  45.     }
  46.    
  47.     listen(integer channel, string name, key id, string message)
  48.     {
  49.         if(id == llGetOwner())
  50.         {
  51.             if(channel == own_handle)
  52.             {
  53.                 if(message == "Add")
  54.                 {
  55.                     llWhisper(0,"Please paste the resident key into chat.");
  56.                     llListen(lis_handle, "", NULL_KEY, "");
  57.                     own_handle = -92430;
  58.                     llListenRemove(own_handle);
  59.                 }
  60.                 if(message == "Remove")
  61.                 {
  62.                     llSetTexture(blank, facechange);
  63.                     list temp = [NULL_KEY];
  64.                     own_handle = -92430;
  65.                     llListenRemove(own_handle);
  66.                 }
  67.             }                            
  68.             if(channel == lis_handle)
  69.             {
  70.                 user_key = message;
  71.                 list temp = [message];
  72.                 //database = llListReplaceList(database, temp, facechange, facechange);
  73.                 llHTTPRequest(url + (string)user_key,[HTTP_METHOD,"GET"],"");
  74.                 lis_handle = -92431;
  75.                 llListenRemove(lis_handle);
  76.             }
  77.         }
  78.     }
  79.    
  80.     on_rez(integer start_param)
  81.     {
  82.         llSetTexture(blank, ALL_SIDES);
  83.     }
  84.    
  85.     http_response(key request_id,integer status, list metadata, string body)
  86.     {
  87.         string profile_pic;
  88.         integer s1 = llSubStringIndex(body, profile_key_prefix);
  89.         integer s1l = profile_key_prefix_length;
  90.         if(s1 == -1)
  91.         { // second try
  92.             s1 = llSubStringIndex(body, profile_img_prefix);
  93.             s1l = profile_img_prefix_length;
  94.         }
  95.         if (s1 == -1)
  96.         { // still no match?
  97.             list temp = [NULL_KEY];
  98.             //database = llListReplaceList(database, temp, facechange, facechange);
  99.             profile_pic = blank;
  100.             llWhisper(0,"Key is invalid.");
  101.             lis_handle = -92431;
  102.             llListenRemove(lis_handle);
  103.         }
  104.         else
  105.         {
  106.             profile_pic = llGetSubString(body,s1 + s1l, s1 + s1l + 35);
  107.             if (profile_pic == (string)NULL_KEY)
  108.             {
  109.                 profile_pic = blank;
  110.                 llWhisper(0,"This resident has no profile image.");
  111.             }
  112.         }
  113.         llSetTexture(profile_pic, facechange);
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement