diff --git a/cron/02-add_region.php b/cron/02-add_region.php index 8d872c4..8797469 100644 --- a/cron/02-add_region.php +++ b/cron/02-add_region.php @@ -30,7 +30,7 @@ $REGIONDATA['Image'] = $queueData->Image; if(!isset($queueData->Image)) - $REGIONDATA['Image'] = guidv4(); + $REGIONDATA['Image'] = $queueData->UUID; if(isset($stats->RootAg) && isset($stats->NPCAg)) $REGIONDATA['Avatare'] = $stats->RootAg - $stats->NPCAg; diff --git a/cron/04-object_indexer.php b/cron/04-object_indexer.php index d38a674..a0039b4 100644 --- a/cron/04-object_indexer.php +++ b/cron/04-object_indexer.php @@ -42,13 +42,25 @@ while($row = $regionStatement->fetch()) { $rawSQLString .= " (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?),"; array_push($rawSQLData, $Object['UUID'], $Object['Parent'], $Object['Name'], $Object['Description'], $Object['Image'], $Object['InSearch'], $Object['Sale'], $Object['Price'], $Object['Copy'], $Object['Position'], $Object['Owner']['UUID']); + + if(isset($Object['Textures']) && count($Object['Textures']) != 0) + { + $rawTextureSQLString = "INSERT IGNORE INTO textures VALUES "; + $rawTextureSQLData = array(); + foreach ($Object['Textures'] as $Texture) + { + $rawTextureSQLString .= " (?, ?),"; + array_push($rawTextureSQLData, $Object['UUID'], $Texture); + } + + $QueueImageStatement = $RUNTIME['PDO']->prepare(rtrim($rawTextureSQLString, ",")); + $QueueImageStatement->execute($rawTextureSQLData); + } } $QueueStatement = $RUNTIME['PDO']->prepare(rtrim($rawSQLString, ",")); $QueueStatement->execute($rawSQLData); } - - print_r($data); } } diff --git a/cron/06-object_image_downloader.php b/cron/06-object_image_downloader.php new file mode 100644 index 0000000..281a37d --- /dev/null +++ b/cron/06-object_image_downloader.php @@ -0,0 +1,78 @@ +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->execute(array()); + +while($row = $getObjektImagesStatement->fetch()) +{ + if(!file_exists("data/AssetImages/".$row['AssetID'].".jpeg")) + { + $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'; + + 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['WGET'] = shell_exec($DATA['WGETCMD']); + $DATA['FFMPEG'] = shell_exec($DATA['MPEGCMD']); + + unlink('./data/AssetImages/'.$row['AssetID'].'.jpg2000'); + } +} + +$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->execute(array()); + +while($row = $getObjektTextureStatement->fetch()) +{ + if(!file_exists("data/AssetImages/".$row['AssetID'].".jpeg")) + { + $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'; + + 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['WGET'] = shell_exec($DATA['WGETCMD']); + $DATA['FFMPEG'] = shell_exec($DATA['MPEGCMD']); + + unlink('./data/AssetImages/'.$row['AssetID'].'.jpg2000'); + } +} + +$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->execute(array()); + +while($row = $getItemImagesStatement->fetch()) +{ + if(!file_exists("data/AssetImages/".$row['AssetID'].".jpeg")) + { + $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'; + + 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['WGET'] = shell_exec($DATA['WGETCMD']); + $DATA['FFMPEG'] = shell_exec($DATA['MPEGCMD']); + + unlink('./data/AssetImages/'.$row['AssetID'].'.jpg2000'); + } +} + +?> \ No newline at end of file