Created
July 12, 2018 22:59
-
-
Save csprance/eeca5022a2205195069b86cad33b1993 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| // Return JSON | |
| header('Content-Type: application/json'); | |
| error_reporting(0); | |
| // Cache | |
| require_once 'vendor/autoload.php'; | |
| $longcache = new Gilbitron\Util\SimpleCache(); | |
| $longcache->cache_path = 'cache/'; | |
| $longcache->cache_time = 3600; | |
| require 'vendor/koraktor/steam-condenser/lib/steam-condenser.php'; | |
| // Steam Query | |
| $master = SourceServer::getMaster(); | |
| $servers = $master->getServers(MasterServer::REGION_ALL, '\appid\299740', true); | |
| // Init the array we return | |
| $serversWrapArray = Array(); | |
| // Find out if we have any cached date | |
| if ($json = $longcache->get_cache('servers')) { | |
| //if it exists sweet! Echo that shit out! | |
| echo $json; | |
| } else { | |
| // Otherwise go and get it all and then save it | |
| foreach ($servers as $key => $value) { | |
| try { | |
| $serversInfoArray = Array(); | |
| $ip = $value[0]; | |
| $port = $value[1]; | |
| // Create instance of SourceServer using IP info collected from | |
| $server = new SourceServer($ip, $port); | |
| $serverInfo = $server->getServerInfo(); | |
| // Server Name | |
| // Official Miscreated | TrinityGames.com USFL1 | |
| $serverRetArray[0] = $serverInfo['serverName']; | |
| // Map Name | |
| // islands | |
| $serverRetArray[1] = $serverInfo['mapName']; | |
| // Number of Players | |
| // 13 | |
| $tempvar = explode(';', $serverInfo['serverTags']); | |
| $numval = intval($tempvar[1]); | |
| $serverRetArray[2] = $numval; | |
| // Max Number of Players | |
| // 32 | |
| $serverRetArray[3] = intval($serverInfo['maxPlayers']); | |
| // Time Of Day | |
| // 05:50 | |
| $tempvar = explode(';', $serverInfo['serverTags']); | |
| $serverRetArray[4] = $tempvar[0]; | |
| // Server Ip | |
| $serverRetArray[5] = $ip; | |
| // port | |
| $serverRetArray[6] = $port; | |
| // Server Version Info | |
| $serverRetArray[7] = $serverInfo['gameDesc']; | |
| // Unused Array Data - Possible Values | |
| // | |
| //$serverRetArray['ip'] = $ip; | |
| //$serverRetArray['ping'] = $server->getPing(); | |
| //$serverRetArray['networkVersion'] = $serverInfo['networkVersion']; | |
| //$serverRetArray['gameDir'] = $serverInfo['gameDir']; | |
| //$serverRetArray['gameDesc'] = $serverInfo['gameDesc']; | |
| //$serverRetArray['appId'] = $serverInfo['appId']; | |
| //$serverRetArray['numberOfPlayers'] = $serverInfo['numberOfPlayers']; | |
| //$serverRetArray['botNumber'] = $serverInfo['botNumber']; | |
| //$serverRetArray['dedicated'] = $serverInfo['dedicated']; | |
| //$serverRetArray['operatingSystem'] = $serverInfo['operatingSystem']; | |
| //$serverRetArray['passwordProtected'] = $serverInfo['passwordProtected']; | |
| //$serverRetArray['secureServer'] = $serverInfo['secureServer']; | |
| //$serverRetArray['gameVersion'] = $serverInfo['gameVersion']; | |
| //$serverRetArray['serverPort'] = $serverInfo['serverPort']; | |
| //$serverRetArray['serverId'] = $serverInfo['serverId']; | |
| //$serverRetArray['serverTags'] = $serverInfo['serverTags']; | |
| //$serverRetArray['gameId'] = $serverInfo['gameId']; | |
| // push it to our returned array | |
| array_push($serversWrapArray, $serverRetArray); | |
| } catch (Exception $exception) { | |
| } | |
| } | |
| // convert to json | |
| $json = json_encode($serversWrapArray, JSON_NUMERIC_CHECK); | |
| // Spit it out | |
| echo $json; | |
| // set the cached data here. We may need to do some checking on some of these to exclude them | |
| $longcache->set_cache('servers', $json); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment