From cf9ed63f48321b5cde0a746277593a4b26b62e93 Mon Sep 17 00:00:00 2001 From: christopher Date: Sat, 27 Nov 2021 18:46:24 +0100 Subject: [PATCH] move to oop and add lsl register --- api/register.php | 34 ++-- api/register_lsl.php | 34 ++++ classen/OpenSimulator/OSAssetConecctor.php | 6 + classen/OpenSimulator/OSGrid.php | 98 +++++++++++ classen/OpenSimulator/OSItem.php | 6 + classen/OpenSimulator/OSObject.php | 6 + classen/OpenSimulator/OSParcel.php | 6 + classen/OpenSimulator/OSRegion.php | 44 +++++ classen/OpenSimulator/OSTexture.php | 6 + classen/OpenSimulator/OSUser.php | 38 ++++ classen/utils.php | 191 ++++++++++++++++----- cron/06-object_image_downloader.php | 24 +-- debug.txt | 19 -- index.php | 18 +- mysql.sql | 119 ------------- 15 files changed, 428 insertions(+), 221 deletions(-) create mode 100644 api/register_lsl.php create mode 100644 classen/OpenSimulator/OSAssetConecctor.php create mode 100644 classen/OpenSimulator/OSGrid.php create mode 100644 classen/OpenSimulator/OSItem.php create mode 100644 classen/OpenSimulator/OSObject.php create mode 100644 classen/OpenSimulator/OSParcel.php create mode 100644 classen/OpenSimulator/OSRegion.php create mode 100644 classen/OpenSimulator/OSTexture.php create mode 100644 classen/OpenSimulator/OSUser.php delete mode 100644 debug.txt delete mode 100644 mysql.sql diff --git a/api/register.php b/api/register.php index 538d1ee..142070f 100644 --- a/api/register.php +++ b/api/register.php @@ -1,28 +1,18 @@ 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']); ?> \ No newline at end of file diff --git a/api/register_lsl.php b/api/register_lsl.php new file mode 100644 index 0000000..13cae01 --- /dev/null +++ b/api/register_lsl.php @@ -0,0 +1,34 @@ +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'], ""); +?> \ No newline at end of file diff --git a/classen/OpenSimulator/OSAssetConecctor.php b/classen/OpenSimulator/OSAssetConecctor.php new file mode 100644 index 0000000..7a9664a --- /dev/null +++ b/classen/OpenSimulator/OSAssetConecctor.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/classen/OpenSimulator/OSGrid.php b/classen/OpenSimulator/OSGrid.php new file mode 100644 index 0000000..5526be0 --- /dev/null +++ b/classen/OpenSimulator/OSGrid.php @@ -0,0 +1,98 @@ +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); + } + } +?> \ No newline at end of file diff --git a/classen/OpenSimulator/OSItem.php b/classen/OpenSimulator/OSItem.php new file mode 100644 index 0000000..75a6c98 --- /dev/null +++ b/classen/OpenSimulator/OSItem.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/classen/OpenSimulator/OSObject.php b/classen/OpenSimulator/OSObject.php new file mode 100644 index 0000000..3c43788 --- /dev/null +++ b/classen/OpenSimulator/OSObject.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/classen/OpenSimulator/OSParcel.php b/classen/OpenSimulator/OSParcel.php new file mode 100644 index 0000000..bdc67af --- /dev/null +++ b/classen/OpenSimulator/OSParcel.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/classen/OpenSimulator/OSRegion.php b/classen/OpenSimulator/OSRegion.php new file mode 100644 index 0000000..62eb7a3 --- /dev/null +++ b/classen/OpenSimulator/OSRegion.php @@ -0,0 +1,44 @@ +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']; + } + } + } + } +?> \ No newline at end of file diff --git a/classen/OpenSimulator/OSTexture.php b/classen/OpenSimulator/OSTexture.php new file mode 100644 index 0000000..14a4740 --- /dev/null +++ b/classen/OpenSimulator/OSTexture.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/classen/OpenSimulator/OSUser.php b/classen/OpenSimulator/OSUser.php new file mode 100644 index 0000000..eab9a2c --- /dev/null +++ b/classen/OpenSimulator/OSUser.php @@ -0,0 +1,38 @@ +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']; + } + } + } +?> \ No newline at end of file diff --git a/classen/utils.php b/classen/utils.php index 51f0b7e..a8d48e2 100644 --- a/classen/utils.php +++ b/classen/utils.php @@ -66,50 +66,6 @@ function sendInworldIM($fromUUID, $toUUID, $fromName, $targetURL, $text) getDataFromHTTP($targetURL, $rawXML, "text/xml"); } -function getAssetServerURI($homeURL, $userID) -{ - $xml = 'get_server_urlsuserID'.$userID.''; - $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 '
Region Image '.substr($row['Name'], 0, 50).'

'.substr($row['Name'], 0, 50).'

Online: '.$row['OnlineCount'].'

'.substr($row['Description'], 0, 300).'

'; } + +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 = 'get_server_urlsuserID'.$userID.''; + $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 = 'get_user_infouserID'.$userID.''; + $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 = 'link_regionregion_name'.$regionName.''; + $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 = 'get_regionregion_uuid'.$uuid.''; + $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); + } +} ?> \ No newline at end of file diff --git a/cron/06-object_image_downloader.php b/cron/06-object_image_downloader.php index 281a37d..f86861f 100644 --- a/cron/06-object_image_downloader.php +++ b/cron/06-object_image_downloader.php @@ -1,21 +1,21 @@ 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']); diff --git a/debug.txt b/debug.txt deleted file mode 100644 index 2042af3..0000000 --- a/debug.txt +++ /dev/null @@ -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 -) diff --git a/index.php b/index.php index 3320e51..33af787 100644 --- a/index.php +++ b/index.php @@ -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")){ diff --git a/mysql.sql b/mysql.sql deleted file mode 100644 index e3368dd..0000000 --- a/mysql.sql +++ /dev/null @@ -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) */;