Difference between revisions of "Display Names to Key"
m (<lsl> tag to <source> - page was (accidentally?) mostly blanked in the past, using last complete-looking revision) |
|||
Line 1: | Line 1: | ||
{{LSL Header}}__NOTOC__ | {{LSL Header}}__NOTOC__ | ||
== Library == | |||
<source lang="lsl2"> | |||
string NAME; | |||
string URL = "http://cyber.caworks-sl.de/name2key/n2k.php"; | |||
string URL2 = "http://www.aga-sl.de/projekte/name2key/n2k.php"; // just in case the URL above should not be working | |||
key reqid; | |||
/// chat: /101 <displayname> | |||
default | |||
{ | |||
state_entry() | |||
{ | |||
llListen(101,"","",""); | |||
} | |||
listen(integer c, string n, key id, string message) | |||
{ | |||
if(c == 101) | |||
{ | |||
NAME = message; | |||
reqid = llHTTPRequest( URL + "?name=" + llEscapeURL(NAME), [], "" ); | |||
} | |||
} | |||
http_response(key id, integer status, list meta, string body) | |||
{ | |||
body = llDeleteSubString(body, 0 , llSubStringIndex(body, "<br>") + 3); | |||
if ( id != reqid ) | |||
{ | |||
return; | |||
} | |||
if ( status == 499 ) | |||
{ | |||
llOwnerSay("timed out"); | |||
} | |||
else if ( status != 200 ) | |||
{ | |||
llOwnerSay("Server Offline"); | |||
} | |||
else | |||
{ | |||
llOwnerSay(NAME + "'s key is: " + body ); | |||
} | |||
} | |||
} | |||
</source> | |||
<div id="box"> | |||
and here the PHP for use on your Server. Name it n2k.php. It also integrates to websites. So you can use it to search from you page. | |||
<source lang="php"> | |||
<div align="center"><font size="-1"><font color="#FFFFF0"> | |||
<?php | |||
$username = $_GET["name"]; | |||
if($username == "") | |||
{ | |||
echo '<div align="center"><font size="-1"> | |||
<form action="n2k.php" method="GET"> | |||
<input type="text" size="18" maxlength="40" value="SL Name" name="name"> | |||
<br><input type="submit" value="lookup"> | |||
</form>'; | |||
} | |||
else | |||
{ | |||
$uuid = name2Key($username); | |||
echo "<br>$uuid"; | |||
} | |||
function getPage($web) | |||
{ | |||
$html = ""; | |||
$ch = curl_init($web); | |||
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.12) Gecko/20070508 Firefox/1.5.0.12"); | |||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); | |||
curl_setopt($ch, CURLOPT_HEADER, 0); | |||
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); | |||
curl_setopt($ch, CURLOPT_AUTOREFERER, 1); | |||
curl_setopt($ch, CURLOPT_TIMEOUT, 5); | |||
$html = curl_exec($ch); | |||
if(curl_errno($ch)) | |||
{ | |||
$html = ""; | |||
} | |||
curl_close ($ch); | |||
return $html; | |||
} | |||
function getBetween($content,$start,$end) | |||
{ | |||
$a1 = strpos($content,$start); | |||
$content = substr($content,$a1 + strlen($start)); | |||
while($a2 = strrpos($content,$end)) | |||
{ | |||
$content = substr($content,0,$a2); | |||
} | |||
return $content; | |||
} | |||
function name2Key($name) | |||
{ | |||
$SL_SEARCH = 'http://search.secondlife.com/client_search.php?s=People&t=N&q='; | |||
$sName = split(' ',$name); | |||
$data = getPage($SL_SEARCH.$sName[0].'%20'.$sName[1]); | |||
$uuid = getBetween($data,'http://world.secondlife.com/resident/','"'); | |||
if(!preg_match("/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/",$uuid)) $uuid = '00000000-0000-0000-0000-000000000000'; | |||
return $uuid; | |||
} | |||
?> | |||
</php></div> | |||
{{LSLC|Library}}{{LSLC|Examples|DisplayName2Key}} |
Revision as of 19:02, 24 January 2015
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Library
string NAME;
string URL = "http://cyber.caworks-sl.de/name2key/n2k.php";
string URL2 = "http://www.aga-sl.de/projekte/name2key/n2k.php"; // just in case the URL above should not be working
key reqid;
/// chat: /101 <displayname>
default
{
state_entry()
{
llListen(101,"","","");
}
listen(integer c, string n, key id, string message)
{
if(c == 101)
{
NAME = message;
reqid = llHTTPRequest( URL + "?name=" + llEscapeURL(NAME), [], "" );
}
}
http_response(key id, integer status, list meta, string body)
{
body = llDeleteSubString(body, 0 , llSubStringIndex(body, "<br>") + 3);
if ( id != reqid )
{
return;
}
if ( status == 499 )
{
llOwnerSay("timed out");
}
else if ( status != 200 )
{
llOwnerSay("Server Offline");
}
else
{
llOwnerSay(NAME + "'s key is: " + body );
}
}
}
and here the PHP for use on your Server. Name it n2k.php. It also integrates to websites. So you can use it to search from you page.
<source lang="php">
<?php $username = $_GET["name"]; if($username == "") {
echo '<form action="n2k.php" method="GET">
<input type="text" size="18" maxlength="40" value="SL Name" name="name">
<input type="submit" value="lookup">
</form>';
}
else
{
$uuid = name2Key($username);
echo "
$uuid";
}
function getPage($web)
{ $html = ""; $ch = curl_init($web); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.12) Gecko/20070508 Firefox/1.5.0.12"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 5); $html = curl_exec($ch); if(curl_errno($ch)) { $html = ""; } curl_close ($ch); return $html; }
function getBetween($content,$start,$end)
{ $a1 = strpos($content,$start); $content = substr($content,$a1 + strlen($start)); while($a2 = strrpos($content,$end)) { $content = substr($content,0,$a2); } return $content; }
function name2Key($name)
{ $SL_SEARCH = 'http://search.secondlife.com/client_search.php?s=People&t=N&q='; $sName = split(' ',$name); $data = getPage($SL_SEARCH.$sName[0].'%20'.$sName[1]); $uuid = getBetween($data,'http://world.secondlife.com/resident/','"');
if(!preg_match("/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/",$uuid)) $uuid = '00000000-0000-0000-0000-000000000000';
return $uuid; } ?>
</php>