1
0
Fork 0
OpenSim.land/cron/02-add_region.php

63 lines
2.9 KiB
PHP

<?php
$QueueStatement = $RUNTIME['PDO']->prepare("SELECT * FROM queue WHERE QueueType = 'addRegion'");
$QueueStatement->execute(array());
while($row = $QueueStatement->fetch())
{
$queueData = json_decode($row['QueueData']);
$REGIONDATA = array();
if(ping($queueData->Hostname, $queueData->Port))
{
$stats = getRegionStats($queueData->Hostname.":".$queueData->Port);
if($stats != false)
{
if($stats->RegionName != $queueData->RegionName)
break;
if(!isset($stats->RootAg))
break;
if(!isset($stats->Version))
break;
$REGIONDATA['Avatare'] = $stats->RootAg;
$REGIONDATA['Version'] = trim(substr(str_replace(" ", "", $stats->Version), 0, 16));
$REGIONDATA['MAP'] = "http://".$queueData->Hostname.":".$queueData->Port."/index.php?method=regionImage".trim(str_replace("-", "", $queueData->UUID));
if(isset($queueData->Image))
$REGIONDATA['Image'] = $queueData->Image;
if(!isset($queueData->Image))
$REGIONDATA['Image'] = guidv4();
if(isset($stats->RootAg) && isset($stats->NPCAg))
$REGIONDATA['Avatare'] = $stats->RootAg - $stats->NPCAg;
$QueueStatement = $RUNTIME['PDO']->prepare("REPLACE INTO onlinetimes VALUES (?, ?, ?)");
$QueueStatement->execute(array($queueData->UUID, time(), $REGIONDATA['Avatare']));
$QueueStatement = $RUNTIME['PDO']->prepare("REPLACE INTO regions VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
$QueueStatement->execute(array($queueData->RegionName, $queueData->UUID, $queueData->GridName, $REGIONDATA['Image'], $queueData->RegionOwnerID, $queueData->Hostname, $queueData->Port, $REGIONDATA['Version']));
if(isset($queueData->Image))
{
$QueueStatement = $RUNTIME['PDO']->prepare("INSERT INTO queue VALUES (?, ?, ?)");
$QueueStatement->execute(array(guidv4(), "assetImageDownload", json_encode(array("RegionUUID" => $queueData->UUID, "HomeURL" => @$queueData->Image, "TargetAssetUUID" => $queueData->Image))));
}
if(!isset($queueData->Image))
{
$QueueStatement = $RUNTIME['PDO']->prepare("INSERT INTO queue VALUES (?, ?, ?)");
$QueueStatement->execute(array(guidv4(), "regionImageDownload", json_encode(array("RegionUUID" => $queueData->UUID, "URL" => $REGIONDATA['MAP'], "TargetAssetUUID" => $REGIONDATA['Image']))));
}
}
}
$removeQueueStatement = $RUNTIME['PDO']->prepare("DELETE FROM queue WHERE QueueID = ?");
$removeQueueStatement->execute(array($row['QueueID']));
}
?>