function doesVersionContainServerBinary($baseURL, $version) { $return = null; $thisBaseURL = $baseURL . $version . "/"; $HTMLParser = new HTMLParser(); $HTMLParser->setURL($thisBaseURL); $HTMLParser->getHTML(); if ($HTMLParser->Status == null) { $dom = new DOMDocument(); $dom->loadHTML($HTMLParser->Contents); $tableElements = $dom->getElementsByTagName("tr"); foreach ($tableElements as $tableElement) { foreach ($tableElement->childNodes as $tableChildElement) { if ($this->doesElementMatchServerBinaryRules($tableChildElement->nodeValue)) { $return = $tableChildElement->nodeValue; break; } } } } else { echo "ERROR"; } return $return; }
if (!($requestedBitVersion == "amd64" || $requestedBitVersion == "x86")) { die("<strong>Error</strong> Supported bit versions are: amd64, x86"); } //Base URL for the repo $baseURL = "http://dl.4players.de/ts/releases/"; //Builds a URL so that WGET can be used against it. function buildDownloadURLForWGET($baseURL, $fileDetails) { $fileName = $fileDetails["file"]; $fileVersion = $fileDetails["version"]; return $baseURL . $fileVersion . "/" . $fileName; } $TeamspeakHandler = new Teamspeak(); $TeamspeakHandler->setBinaryBitRequired($requestedBitVersion); $HTMLParser = new HTMLParser(); $HTMLParser->setURL($baseURL); $HTMLParser->getHTML(); if ($HTMLParser->Status == null) { $teamspeakVersions = $TeamspeakHandler->getTeamspeakVersionsFromHTML($HTMLParser->Contents); if ($teamspeakVersions == null) { die("Unknown error, unable to get versions"); } //Switch on the requested format (either x86 or amd64) switch ($requestedBitVersion) { case "amd64": $amd64Binary = null; //Rotate around each version found in reverse and find a server binary. foreach (array_reverse($teamspeakVersions) as $teamspeakVersion) { $serverBinaryAMD64 = $TeamspeakHandler->doesVersionContainServerBinary($baseURL, $teamspeakVersion); if ($serverBinaryAMD64 != null && $amd64Binary == null) { $amd64Binary["file"] = $serverBinaryAMD64;