1
0
Fork 0

move to oop and add lsl register

This commit is contained in:
christopher 2021-11-27 18:46:24 +01:00
parent 7143488770
commit cf9ed63f48
15 changed files with 428 additions and 221 deletions

View File

@ -1,28 +1,18 @@
<?php
$data = json_decode(file_get_contents('php://input'), true);
//file_put_contents("debug.txt", print_r($data, true));
//Add User to DB if not exist
$QueueStatement = $RUNTIME['PDO']->prepare("INSERT IGNORE INTO users VALUES (?, ?, ?)");
$QueueStatement->execute(array(@$data['RegionOwnerID'], @$data['RegionOwnerName'], @$data['RegionOwnerMail']));
//Add Grid to DB if not exist
if(count($data['RegionOwnerURL']) != 0)
{
if(isset($data['RegionOwnerURL']['HomeURI']))
{
$rawGridInfo = getDataFromHTTP(@$data['RegionOwnerURL']['HomeURI']."get_grid_info");
$gridInfo = new SimpleXMLElement($rawGridInfo);
//file_put_contents("debug.txt", file_get_contents('php://input'));
//print_r($data);
$QueueStatement = $RUNTIME['PDO']->prepare("INSERT IGNORE INTO grids VALUES (?, ?, ?, ?)");
$QueueStatement->execute(array($gridInfo->gridname, @$data['RegionOwnerURL']['HomeURI'], @$data['RegionOwnerURL']['AssetServerURI'], @$data['RegionOwnerURL']['IMServerURI']));
}
}
//Add Grid
if(isset($data['RegionOwnerURL']['HomeURI']))
$GridData = new OSGrid(@$data['GridName'], @$data['RegionOwnerURL']['HomeURI'], @$data['RegionOwnerURL']['AssetServerURI'], @$data['RegionOwnerURL']['IMServerURI']);
//Add Region to DB if not exist
$QueueStatement = $RUNTIME['PDO']->prepare("INSERT INTO queue VALUES (?, ?, ?)");
$QueueStatement->execute(array(guidv4(), "addRegion", json_encode($data)));
if(!isset($GridData))
die("Unknown Error: Grid data not in db.");
//Set LastSeen online time from Region.
RegionManager::setOnlineTime($data['UUID']);
//Add Region
$RegionData = $GridData->addRegion(@$data['RegionName'], @$data['UUID'], @$data['RegionOwnerID'], @$data['UUID'], @$data['Hostname'], @$data['Port']);
//Add User
$UserData = $GridData->addUser(@$data['RegionOwnerID'], @$data['RegionOwnerName'], @$data['RegionOwnerMail']);
?>

34
api/register_lsl.php Normal file
View File

@ -0,0 +1,34 @@
<?php
$gridInfo = getGridInfo($_POST['region_grid_home_url']);
$serviceURLS = getUserServiceURL($_POST['region_grid_home_url'], $_POST['object_owner']);
$userInfo = getUserInfo(@$serviceURLS['SRV_HomeURI'], $_POST['object_owner']);
$regionInfo = getRegionInfo($serviceURLS['SRV_HomeURI'], $_POST['region_name']);
$regionData = getRegionData($serviceURLS['SRV_HomeURI'], $regionInfo['uuid']);
if(!isset($gridInfo) || count($gridInfo) == 0)
die("getGridInfo request error");
if(!isset($serviceURLS) || count($serviceURLS) == 0)
die("serviceURLS request error");
if(!isset($regionInfo['result']) || $regionInfo['result'] == "false")
die("regionInfo request error");
if(!isset($regionData['result']) || $regionData['result'] == "false")
die("regionData request error");
if(!isset($userInfo['result']) || $userInfo['result'] == "false")
die("userInfo request error");
//Add Grid
$GridData = new OSGrid(@$gridInfo['gridname'], @$serviceURLS['SRV_HomeURI'], @$serviceURLS['SRV_AssetServerURI'], @$serviceURLS['SRV_IMServerURI']);
if(!isset($GridData))
die("Unknown Error: Grid data not in db.");
//Add Region
$RegionData = $GridData->addRegion(@$regionData['region_name'], @$regionInfo['uuid'], @$_POST['object_owner'], @$_POST['region_image_asset'], @$regionData['hostname'], @$regionData['http_port']);
//Add User
$UserData = $GridData->addUser(@$_POST['object_owner'], $userInfo['user_firstname']." ".$userInfo['user_lastname'], "");
?>

View File

@ -0,0 +1,6 @@
<?php
class OSAssetConecctor
{
}
?>

View File

@ -0,0 +1,98 @@
<?php
class OSGrid
{
private $GridID = 0;
private $GridName = "";
private $GridHomeURL = "";
private $GridAssetServer = "";
private $GridIMServer = "";
function __construct($gridName, $gridHomeURL, $gridAssetServer, $gridIMServer, $gridID = 0)
{
global $RUNTIME;
$this->GridID = $gridID;
$this->GridName = $gridName;
$this->GridHomeURL = $gridHomeURL;
$this->GridAssetServer = $gridAssetServer;
$this->GridIMServer = $gridIMServer;
if($gridID == 0)
{
$addRegionStatement = $RUNTIME['PDO']->prepare("INSERT IGNORE INTO grids (GridName, GridHomeURL, GridAssetServer, GridIMServer) VALUES (:GridName, :GridHomeURL, :GridAssetServer, :GridIMServer)");
$addRegionStatement->execute(array("GridName" => $gridName, "GridHomeURL" => $gridHomeURL, "GridAssetServer" => $gridAssetServer, "GridIMServer" => $gridIMServer));
$this->GridID = $RUNTIME['PDO']->lastInsertId();
if($this->GridID == 0)
{
$getRegionStatement = $RUNTIME['PDO']->prepare("SELECT * FROM grids WHERE GridName = :GridName");
$getRegionStatement->execute(array("GridName" => $gridName));
if($row = $getRegionStatement->fetch())
$this->GridID = $row['GridID'];
}
}
}
//Static functions
public static function getGridByName($gridName)
{
global $RUNTIME;
$getRegionStatement = $RUNTIME['PDO']->prepare("SELECT * FROM grids WHERE GridName = :GridName");
$getRegionStatement->execute(array("GridName" => $gridName));
if($row = $getRegionStatement->fetch())
return new OSGrid($row['GridName'], $row['GridHomeURL'], $row['GridAssetServer'], $row['GridIMServer'], $row['GridID']);
return null;
}
public static function getGridByID($gridID)
{
global $RUNTIME;
$getRegionStatement = $RUNTIME['PDO']->prepare("SELECT * FROM grids WHERE GridID = :GridID");
$getRegionStatement->execute(array("GridID" => $gridID));
if($row = $getRegionStatement->fetch())
return new OSGrid($row['GridID'], $row['GridName'], $row['GridHomeURL'], $row['GridAssetServer'], $row['GridIMServer']);
return null;
}
public function getAssetConnector(){
return new OSAssetConecctor($this->GridAssetServer);
}
public function getGridID(){
return $this->GridID;
}
public function getRegions(){
global $RUNTIME;
$allRegionsFromThisGrid = array();
$getRegionStatement = $RUNTIME['PDO']->prepare("SELECT * FROM regions WHERE GridID = :GridID");
$getRegionStatement->execute(array("GridID" => $this->GridID));
while($row = $getRegionStatement->fetch())
{
$regionData = new OSRegion($row['RegionImage'], $row['RegionHostname'], $row['RegionPort'], $row['RegionVersion'], $row['RegionID'], $row['GridID']);
array_push($allRegionsFromThisGrid, $regionData);
}
return $allRegionsFromThisGrid;
}
public function addRegion($regionName, $regionUUID, $userUUID, $regionImage, $regionHostname, $regionPort){
return new OSRegion($regionName, $regionUUID, $userUUID, $regionImage, $regionHostname, $regionPort, $this);
}
public function addUser($userUUID, $userName, $userMail){
return new OSUser($userUUID, $userName, $userMail, $this);
}
}
?>

View File

@ -0,0 +1,6 @@
<?php
class OSItem
{
}
?>

View File

@ -0,0 +1,6 @@
<?php
class OSObject
{
}
?>

View File

@ -0,0 +1,6 @@
<?php
class OSParcel
{
}
?>

View File

@ -0,0 +1,44 @@
<?php
class OSRegion
{
private $RegionID = 0;
private $RegionPort = 0;
private $RegionName = "";
private $RegionUUID = "";
private $UserUUID = "";
private $RegionImage = "";
private $RegionHostname = "";
private $Grid = null;
function __construct($regionName, $regionImage, $regionUUID, $userUUID, $regionHostname, $regionPort, $grid, $regionID = 0)
{
global $RUNTIME;
$this->Grid = $grid;
$this->RegionName = $regionName;
$this->RegionImage = $regionImage;
$this->RegionUUID = $regionUUID;
$this->UserUUID = $userUUID;
$this->RegionHostname = $regionHostname;
$this->RegionPort = $regionPort;
if($regionID == 0)
{
$addRegionStatement = $RUNTIME['PDO']->prepare("INSERT IGNORE INTO regions (GridID, RegionName, RegionUUID, UserUUID, RegionImage, RegionHostname, RegionPort) VALUES (:GridID, :RegionName, :RegionUUID, :UserUUID, :RegionImage, :RegionHostname, :RegionPort)");
$addRegionStatement->execute(array("GridID" => $this->Grid->getGridID(), "RegionName" => $regionName, "RegionUUID" => $regionUUID, "UserUUID" => $userUUID, "RegionImage" => $regionImage, "RegionHostname" => $regionHostname, "RegionPort" => $regionPort));
$this->RegionID = $RUNTIME['PDO']->lastInsertId();
if($this->RegionID == 0)
{
$getRegionStatement = $RUNTIME['PDO']->prepare("SELECT * FROM regions WHERE RegionName = :RegionName AND GridID = :GridID");
$getRegionStatement->execute(array("RegionName" => $regionName, "GridID" => $this->Grid->getGridID()));
if($row = $getRegionStatement->fetch())
$this->RegionID = $row['RegionID'];
}
}
}
}
?>

View File

@ -0,0 +1,6 @@
<?php
class OSTexture
{
}
?>

View File

@ -0,0 +1,38 @@
<?php
class OSUser
{
private $UserID = 0;
private $UserUUID = "";
private $UserName = "";
private $UserMail = "";
private $Grid = null;
function __construct($userUUID, $userName, $userMail, $grid, $userid = 0)
{
global $RUNTIME;
$this->Grid = $grid;
$this->UserUUID = $userUUID;
$this->UserName = $userName;
$this->UserMail = $userMail;
if($userid == 0)
{
$addRegionStatement = $RUNTIME['PDO']->prepare("INSERT IGNORE INTO users (GridID, UserUUID, UserName, UserMail) VALUES (:GridID, :UserUUID, :UserName, :UserMail)");
$addRegionStatement->execute(array("GridID" => $this->Grid->getGridID(), "UserUUID" => $userUUID, "UserName" => $userName, "UserMail" => $userMail));
$this->UserID = $RUNTIME['PDO']->lastInsertId();
}
if($this->UserID == 0)
{
$getRegionStatement = $RUNTIME['PDO']->prepare("SELECT * FROM users WHERE UserUUID = :UserUUID AND GridID = :GridID");
$getRegionStatement->execute(array("UserUUID" => $userUUID, "GridID" => $this->Grid->getGridID()));
if($row = $getRegionStatement->fetch())
$this->RegionID = $row['UserID'];
}
}
}
?>

View File

@ -66,50 +66,6 @@ function sendInworldIM($fromUUID, $toUUID, $fromName, $targetURL, $text)
getDataFromHTTP($targetURL, $rawXML, "text/xml");
}
function getAssetServerURI($homeURL, $userID)
{
$xml = '<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>get_server_urls</methodName><params><param><value><struct><member><name>userID</name><value><string>'.$userID.'</string></value></member></struct></value></param></params></methodCall>';
$optionen = stream_context_create(array('http' => array('timeout' => 1, 'method' => 'POST', 'header' => 'Content-Type: application/xml', 'content' => $xml)));
$result = file_get_contents($homeURL, false, $optionen);
$servers = new SimpleXMLElement($result);
foreach ($servers->params->param->value->struct[0] as $serverEntry)
{
if($serverEntry->name == 'SRV_AssetServerURI')
return $serverEntry->value->string->__toString();
}
}
function getAssetImage($assetServer, $assetUUID)
{
global $DATA;
chdir("/var/www/html");
if(!is_file('./data/RegionImages/'.$assetUUID.'.jpg'))
{
$DATA['WGETCMD'] = '/usr/bin/wget '.$assetServer.'assets/'.$assetUUID.'/data -O /tmp/'.$assetUUID;
$DATA['MPEGCMD'] = '/usr/bin/ffmpeg -i /tmp/'.$assetUUID.' ./data/RegionImages/'.$assetUUID.'.jpg';
$DATA['WGET'] = shell_exec($DATA['WGETCMD']);
$DATA['FFMPEG'] = shell_exec($DATA['MPEGCMD']);
}
return $assetUUID.'.png';
}
function getRegionStats($regionHostName)
{
$optionen = stream_context_create(array('http' => array('timeout' => 1)));
$result = file_get_contents("http://".$regionHostName."/jsonSimStats", false, $optionen);
if($result != "")
{
return json_decode($result);
}
return false;
}
function getTopRegionHTML($row)
{
@ -137,4 +93,151 @@ function getRegionHTML($row)
return '<article><a href="index.php?page=regionInfo&id='.$row['UUID'].'" class="image"><img style="min-height: 250px; max-height: 250px;" src="./data/RegionImages/'.$row['Image'].'.jpg" alt="Region Image '.substr($row['Name'], 0, 50).'" /></a>
<h3>'.substr($row['Name'], 0, 50).'</h3><p>Online: '.$row['OnlineCount'].'</p><p>'.substr($row['Description'], 0, 300).'</p><ul class="actions"><li><a href="region_'.$row['UUID'].'.html" class="button html5lightbox">Menr Infos</a></li></ul></article>';
}
function getGridInfo($homeURL)
{
$optionen = stream_context_create(array('http' => array('timeout' => 2, 'method' => 'GET')));
$result = file_get_contents($homeURL."/get_grid_info", false, $optionen);
$returnData = array();
$servers = new SimpleXMLElement($result);
$returnData['platform'] = $servers['platform'];
$returnData['gridname'] = $servers['gridname'];
return $returnData;
}
function getUserServiceURL($homeURL, $userID)
{
$xml = '<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>get_server_urls</methodName><params><param><value><struct><member><name>userID</name><value><string>'.$userID.'</string></value></member></struct></value></param></params></methodCall>';
$optionen = stream_context_create(array('http' => array('timeout' => 2, 'method' => 'POST', 'header' => 'Content-Type: application/xml', 'content' => $xml)));
$result = file_get_contents($homeURL, false, $optionen);
$returnData = array();
$servers = new SimpleXMLElement($result);
foreach ($servers->params->param->value->struct[0] as $serverEntry)
{
if($serverEntry->name == 'SRV_FriendsServerURI')
$returnData['SRV_FriendsServerURI'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'SRV_AssetServerURI')
$returnData['SRV_AssetServerURI'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'SRV_InventoryServerURI')
$returnData['SRV_InventoryServerURI'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'SRV_ProfileServerURI')
$returnData['SRV_ProfileServerURI'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'SRV_GroupsServerURI')
$returnData['SRV_GroupsServerURI'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'SRV_IMServerURI')
$returnData['SRV_IMServerURI'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'SRV_GatekeeperURI')
$returnData['SRV_GatekeeperURI'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'SRV_HomeURI')
$returnData['SRV_HomeURI'] = $serverEntry->value->string->__toString();
}
return $returnData;
}
function getUserInfo($homeURL, $userID)
{
$xml = '<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>get_user_info</methodName><params><param><value><struct><member><name>userID</name><value><string>'.$userID.'</string></value></member></struct></value></param></params></methodCall>';
$optionen = stream_context_create(array('http' => array('timeout' => 2, 'method' => 'POST', 'header' => 'Content-Type: application/xml', 'content' => $xml)));
$result = file_get_contents($homeURL, false, $optionen);
$returnData = array();
$servers = new SimpleXMLElement($result);
foreach ($servers->params->param->value->struct[0] as $serverEntry)
{
if($serverEntry->name == 'user_firstname')
$returnData['user_firstname'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'user_lastname')
$returnData['user_lastname'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'result')
$returnData['result'] = $serverEntry->value->string->__toString();
}
return $returnData;
}
function getRegionInfo($homeURL, $regionName)
{
$xml = '<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>link_region</methodName><params><param><value><struct><member><name>region_name</name><value><string>'.$regionName.'</string></value></member></struct></value></param></params></methodCall>';
$optionen = stream_context_create(array('http' => array('timeout' => 2, 'method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => $xml)));
$result = file_get_contents($homeURL, false, $optionen);
$returnData = array();
$servers = new SimpleXMLElement($result);
foreach ($servers->params->param->value->struct[0] as $serverEntry)
{
if($serverEntry->name == 'external_name')
$returnData['external_name'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'region_image')
$returnData['region_image'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'uuid')
$returnData['uuid'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'result')
$returnData['result'] = $serverEntry->value->string->__toString();
}
return $returnData;
}
function getRegionData($homeURL, $uuid)
{
$xml = '<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>get_region</methodName><params><param><value><struct><member><name>region_uuid</name><value><string>'.$uuid.'</string></value></member></struct></value></param></params></methodCall>';
$optionen = stream_context_create(array('http' => array('timeout' => 2, 'method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => $xml)));
$result = file_get_contents($homeURL, false, $optionen);
$returnData = array();
$servers = new SimpleXMLElement($result);
foreach ($servers->params->param->value->struct[0] as $serverEntry)
{
if($serverEntry->name == 'http_port')
$returnData['http_port'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'hostname')
$returnData['hostname'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'server_uri')
$returnData['server_uri'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'region_name')
$returnData['region_name'] = $serverEntry->value->string->__toString();
if($serverEntry->name == 'result')
$returnData['result'] = $serverEntry->value->string->__toString();
}
return $returnData;
}
function getRegionStats($regionHostName)
{
$optionen = stream_context_create(array('http' => array('timeout' => 1)));
$result = file_get_contents("http://".$regionHostName."/jsonSimStats", false, $optionen);
if($result != "")
{
return json_decode($result);
}
}
?>

View File

@ -1,21 +1,21 @@
<?php
$getObjektImagesStatement = $RUNTIME['PDO']->prepare('SELECT DISTINCT objects.ObjectImage AS AssetID, grids.GridAssetServer AS AssetServerURL FROM objects INNER JOIN parcels ON objects.ObjectParcelUUID = parcels.ParcelUUID INNER JOIN regions ON parcels.ParcelRegionUUID = regions.RegionUUID INNER JOIN grids ON grids.GridName = regions.RegionGridName WHERE objects.ObjectImage != "00000000-0000-0000-0000-000000000000" ORDER BY RAND() LIMIT 15');
$getObjektImagesStatement = $RUNTIME['PDO']->prepare('SELECT DISTINCT objects.ObjectImage AS AssetID, grids.GridAssetServer AS AssetServerURL FROM objects INNER JOIN parcels ON objects.ObjectParcelUUID = parcels.ParcelUUID INNER JOIN regions ON parcels.ParcelRegionUUID = regions.RegionUUID INNER JOIN grids ON grids.GridName = regions.RegionGridName WHERE objects.ObjectImage != "00000000-0000-0000-0000-000000000000" ORDER BY RAND() LIMIT 50');
$getObjektImagesStatement->execute(array());
while($row = $getObjektImagesStatement->fetch())
{
if(!file_exists("data/AssetImages/".$row['AssetID'].".jpeg"))
if(!file_exists("data/AssetImages/".$row['AssetID'].".png"))
{
$downloadURL = $row['AssetServerURL']."assets/".$row['AssetID']."/data";
$DATA['WGETCMD'] = '/usr/bin/wget '.$row['AssetServerURL'].'assets/'.$row['AssetID'].'/data -O ./data/AssetImages/'.$row['AssetID'].".jpg2000";
$DATA['MPEGCMD'] = '/usr/bin/ffmpeg -i ./data/AssetImages/'.$row['AssetID'].'.jpg2000 -q:v 10 -vf "[0:v]scale=720x480" -vf "drawtext=text=\'www.opensim.land\':fontcolor=gray:fontsize=14:x=15:y=15" ./data/AssetImages/'.$row['AssetID'].'.jpeg';
$DATA['MPEGCMD'] = '/usr/bin/ffmpeg -i ./data/AssetImages/'.$row['AssetID'].'.jpg2000 ./data/AssetImages/'.$row['AssetID'].'.png';
if(file_exists("ffmpeg.exe") || file_exists("wget.exe"))
{
$DATA['WGETCMD'] = 'wget.exe '.$row['AssetServerURL'].'assets/'.$row['AssetID'].'/data -O ./data/AssetImages/'.$row['AssetID'].".jpg2000";
$DATA['MPEGCMD'] = 'ffmpeg.exe -i ./data/AssetImages/'.$row['AssetID'].'.jpg2000 -q:v 10 -vf "[0:v]scale=720x480" -vf "drawtext=text=\'www.opensim.land\':fontcolor=gray:fontsize=14:x=15:y=15" ./data/AssetImages/'.$row['AssetID'].'.jpeg';
$DATA['MPEGCMD'] = 'ffmpeg.exe -i ./data/AssetImages/'.$row['AssetID'].'.jpg2000 ./data/AssetImages/'.$row['AssetID'].'.png';
}
$DATA['WGET'] = shell_exec($DATA['WGETCMD']);
@ -25,22 +25,22 @@ while($row = $getObjektImagesStatement->fetch())
}
}
$getObjektTextureStatement = $RUNTIME['PDO']->prepare('SELECT DISTINCT textures.TextureUUID AS AssetID, grids.GridAssetServer AS AssetServerURL FROM textures INNER JOIN objects ON textures.TextureObjektUUID = objects.ObjectUUID INNER JOIN parcels ON objects.ObjectParcelUUID = parcels.ParcelUUID INNER JOIN regions ON parcels.ParcelRegionUUID = regions.RegionUUID INNER JOIN grids ON grids.GridName = regions.RegionGridName ORDER BY RAND() LIMIT 15');
$getObjektTextureStatement = $RUNTIME['PDO']->prepare('SELECT DISTINCT textures.TextureUUID AS AssetID, grids.GridAssetServer AS AssetServerURL FROM textures INNER JOIN objects ON textures.TextureObjektUUID = objects.ObjectUUID INNER JOIN parcels ON objects.ObjectParcelUUID = parcels.ParcelUUID INNER JOIN regions ON parcels.ParcelRegionUUID = regions.RegionUUID INNER JOIN grids ON grids.GridName = regions.RegionGridName ORDER BY RAND() LIMIT 50');
$getObjektTextureStatement->execute(array());
while($row = $getObjektTextureStatement->fetch())
{
if(!file_exists("data/AssetImages/".$row['AssetID'].".jpeg"))
if(!file_exists("data/AssetImages/".$row['AssetID'].".png"))
{
$downloadURL = $row['AssetServerURL']."assets/".$row['AssetID']."/data";
$DATA['WGETCMD'] = '/usr/bin/wget '.$row['AssetServerURL'].'assets/'.$row['AssetID'].'/data -O ./data/AssetImages/'.$row['AssetID'].".jpg2000";
$DATA['MPEGCMD'] = '/usr/bin/ffmpeg -i ./data/AssetImages/'.$row['AssetID'].'.jpg2000 -q:v 10 -vf "[0:v]scale=720x480" -vf "drawtext=text=\'www.opensim.land\':fontcolor=gray:fontsize=14:x=15:y=15" ./data/AssetImages/'.$row['AssetID'].'.jpeg';
$DATA['MPEGCMD'] = '/usr/bin/ffmpeg -i ./data/AssetImages/'.$row['AssetID'].'.jpg2000 ./data/AssetImages/'.$row['AssetID'].'.png';
if(file_exists("ffmpeg.exe") || file_exists("wget.exe"))
{
$DATA['WGETCMD'] = 'wget.exe '.$row['AssetServerURL'].'assets/'.$row['AssetID'].'/data -O ./data/AssetImages/'.$row['AssetID'].".jpg2000";
$DATA['MPEGCMD'] = 'ffmpeg.exe -i ./data/AssetImages/'.$row['AssetID'].'.jpg2000 -q:v 10 -vf "[0:v]scale=720x480" -vf "drawtext=text=\'www.opensim.land\':fontcolor=gray:fontsize=14:x=15:y=15" ./data/AssetImages/'.$row['AssetID'].'.jpeg';
$DATA['MPEGCMD'] = 'ffmpeg.exe -i ./data/AssetImages/'.$row['AssetID'].'.jpg2000 ./data/AssetImages/'.$row['AssetID'].'.png';
}
$DATA['WGET'] = shell_exec($DATA['WGETCMD']);
@ -50,22 +50,22 @@ while($row = $getObjektTextureStatement->fetch())
}
}
$getItemImagesStatement = $RUNTIME['PDO']->prepare('SELECT DISTINCT items.ItemAssetUUID AS AssetID, grids.GridAssetServer AS AssetServerURL FROM items INNER JOIN objects ON items.ItemParent = objects.ObjectUUID INNER JOIN parcels ON objects.ObjectParcelUUID = parcels.ParcelUUID INNER JOIN regions ON parcels.ParcelRegionUUID = regions.RegionUUID INNER JOIN grids ON grids.GridName = regions.RegionGridName WHERE items.ItemType = "0" ORDER BY RAND() LIMIT 15');
$getItemImagesStatement = $RUNTIME['PDO']->prepare('SELECT DISTINCT items.ItemAssetUUID AS AssetID, grids.GridAssetServer AS AssetServerURL FROM items INNER JOIN objects ON items.ItemParent = objects.ObjectUUID INNER JOIN parcels ON objects.ObjectParcelUUID = parcels.ParcelUUID INNER JOIN regions ON parcels.ParcelRegionUUID = regions.RegionUUID INNER JOIN grids ON grids.GridName = regions.RegionGridName WHERE items.ItemType = "0" ORDER BY RAND() LIMIT 50');
$getItemImagesStatement->execute(array());
while($row = $getItemImagesStatement->fetch())
{
if(!file_exists("data/AssetImages/".$row['AssetID'].".jpeg"))
if(!file_exists("data/AssetImages/".$row['AssetID'].".png"))
{
$downloadURL = $row['AssetServerURL']."assets/".$row['AssetID']."/data";
$DATA['WGETCMD'] = '/usr/bin/wget '.$row['AssetServerURL'].'assets/'.$row['AssetID'].'/data -O ./data/AssetImages/'.$row['AssetID'].".jpg2000";
$DATA['MPEGCMD'] = '/usr/bin/ffmpeg -i ./data/AssetImages/'.$row['AssetID'].'.jpg2000 -q:v 10 -vf "[0:v]scale=720x480" -vf "drawtext=text=\'www.opensim.land\':fontcolor=gray:fontsize=14:x=15:y=15" ./data/AssetImages/'.$row['AssetID'].'.jpeg';
$DATA['MPEGCMD'] = '/usr/bin/ffmpeg -i ./data/AssetImages/'.$row['AssetID'].'.jpg2000 -q:v 10 ./data/AssetImages/'.$row['AssetID'].'.png';
if(file_exists("ffmpeg.exe") || file_exists("wget.exe"))
{
$DATA['WGETCMD'] = 'wget.exe '.$row['AssetServerURL'].'assets/'.$row['AssetID'].'/data -O ./data/AssetImages/'.$row['AssetID'].".jpg2000";
$DATA['MPEGCMD'] = 'ffmpeg.exe -i ./data/AssetImages/'.$row['AssetID'].'.jpg2000 -q:v 10 -vf "[0:v]scale=720x480" -vf "drawtext=text=\'www.opensim.land\':fontcolor=gray:fontsize=14:x=15:y=15" ./data/AssetImages/'.$row['AssetID'].'.jpeg';
$DATA['MPEGCMD'] = 'ffmpeg.exe -i ./data/AssetImages/'.$row['AssetID'].'.jpg2000 -q:v 10 ./data/AssetImages/'.$row['AssetID'].'.png';
}
$DATA['WGET'] = shell_exec($DATA['WGETCMD']);

View File

@ -1,19 +0,0 @@
Array
(
[RegionName] => Twix
[UUID] => fd77f089-6a70-40fa-99a2-dde697edb860
[Hostname] => inc.li
[Port] => 7000
[RegionOwnerID] => ea78a956-6ba4-4b4a-805d-71faa0555db6
[RegionOwnerName] => Bla Bla
[RegionOwnerMail] => test@bla.de
[RegionOwnerURL] => Array
(
[HomeURI] => http://inc.li:8002/
[AssetServerURI] => http://inc.li:8002/
[IMServerURI] => http://inc.li:8002/
)
[GridName] => Inc.li
[HomeURL] => http://inc.li:8002
)

View File

@ -2,14 +2,22 @@
date_default_timezone_set("Europe/Berlin");
error_reporting(E_ALL);
include_once("classen/utils.php");
include_once("classen/HTML.php");
include_once("classen/RegionManager.php");
$RUNTIME = array();
include_once("config.php");
include_once("classen/HTML.php");
include_once("classen/utils.php");
include_once("classen/OpenSimulator/OSGrid.php");
include_once("classen/OpenSimulator/OSItem.php");
include_once("classen/OpenSimulator/OSObject.php");
include_once("classen/OpenSimulator/OSParcel.php");
include_once("classen/OpenSimulator/OSRegion.php");
include_once("classen/OpenSimulator/OSTexture.php");
include_once("classen/OpenSimulator/OSUser.php");
include_once("classen/OpenSimulator/OSAssetConecctor.php");
if(isset($_REQUEST['api']))
{
if(file_exists("./api/".$_REQUEST['api'].".php")){

119
mysql.sql
View File

@ -1,119 +0,0 @@
-- --------------------------------------------------------
-- Host: 127.0.0.1
-- Server Version: 10.4.17-MariaDB - mariadb.org binary distribution
-- Server Betriebssystem: Win64
-- HeidiSQL Version: 11.2.0.6213
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-- Exportiere Struktur von Tabelle opensim.land.grids
CREATE TABLE IF NOT EXISTS `grids` (
`GridName` varchar(128) NOT NULL DEFAULT '',
`GridHomeURL` varchar(128) DEFAULT NULL,
`GridAssetServer` varchar(128) DEFAULT NULL,
`GridIMServer` varchar(128) DEFAULT NULL,
PRIMARY KEY (`GridName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Daten Export vom Benutzer nicht ausgewählt
-- Exportiere Struktur von Tabelle opensim.land.objects
CREATE TABLE IF NOT EXISTS `objects` (
`ObjectUUID` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`ObjectParcelUUID` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`ObjectName` varchar(256) NOT NULL,
`ObjectDescription` varchar(256) DEFAULT NULL,
`ObjectImage` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`ObjectInSearch` int(1) NOT NULL DEFAULT 0,
`ObejctForSale` int(1) NOT NULL DEFAULT 0,
`ObjectPrice` int(8) NOT NULL DEFAULT 0,
`ObjectFreeForCopy` int(1) NOT NULL DEFAULT 0,
`ObjectPosition` varchar(30) NOT NULL,
`ObjectOwnerID` varchar(38) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
PRIMARY KEY (`ObjectUUID`,`ObjectParcelUUID`),
KEY `ObjectName` (`ObjectName`),
KEY `ObjectDescription` (`ObjectDescription`),
KEY `ObjectInSearch` (`ObjectInSearch`),
KEY `ObejctForSale` (`ObejctForSale`),
KEY `ObjectFreeForCopy` (`ObjectFreeForCopy`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Daten Export vom Benutzer nicht ausgewählt
-- Exportiere Struktur von Tabelle opensim.land.onlinetimes
CREATE TABLE IF NOT EXISTS `onlinetimes` (
`RegionUUID` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`RegionLastSeen` int(11) NOT NULL DEFAULT 0,
`RegionOnlineUser` int(3) NOT NULL DEFAULT 0,
PRIMARY KEY (`RegionUUID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Daten Export vom Benutzer nicht ausgewählt
-- Exportiere Struktur von Tabelle opensim.land.parcels
CREATE TABLE IF NOT EXISTS `parcels` (
`ParcelRegionUUID` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`ParcelUUID` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`ParcelName` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`ParcelDescription` text DEFAULT NULL,
`ParcelForSale` int(1) NOT NULL DEFAULT 0,
`ParcelInSearch` int(1) NOT NULL DEFAULT 0,
`ParcelPrice` int(16) DEFAULT NULL,
`ParcelOwnerID` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`ParcelImage` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`ParcelBitmap` text DEFAULT NULL,
`ParcelTraffic` int(16) NOT NULL DEFAULT 0,
PRIMARY KEY (`ParcelUUID`),
KEY `ParcelRegionUUID` (`ParcelRegionUUID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Daten Export vom Benutzer nicht ausgewählt
-- Exportiere Struktur von Tabelle opensim.land.queue
CREATE TABLE IF NOT EXISTS `queue` (
`QueueID` varchar(38) NOT NULL,
`QueueType` varchar(24) NOT NULL,
`QueueData` text NOT NULL,
PRIMARY KEY (`QueueID`),
KEY `QueueType` (`QueueType`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Daten Export vom Benutzer nicht ausgewählt
-- Exportiere Struktur von Tabelle opensim.land.regions
CREATE TABLE IF NOT EXISTS `regions` (
`RegionName` varchar(128) NOT NULL,
`RegionUUID` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`RegionGridName` varchar(128) NOT NULL,
`RegionImage` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`RegionOwner` varchar(50) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`RegionHostname` varchar(128) NOT NULL,
`RegionPort` int(8) NOT NULL DEFAULT 7000,
`RegionVersion` varchar(256) DEFAULT NULL,
PRIMARY KEY (`RegionUUID`),
KEY `RegionName` (`RegionName`),
KEY `RegionOwner` (`RegionOwner`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Daten Export vom Benutzer nicht ausgewählt
-- Exportiere Struktur von Tabelle opensim.land.users
CREATE TABLE IF NOT EXISTS `users` (
`UserUUID` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`UserName` varchar(128) NOT NULL,
`UserMail` varchar(50) NOT NULL,
PRIMARY KEY (`UserUUID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Daten Export vom Benutzer nicht ausgewählt
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;