X-Git-Url: https://git.cweiske.de/linksys-wrt3g-tools.git/blobdiff_plain/0b326c29602851bfc839e395d86cc84a86f67c89..d765855c10fcd13b553c6b9c96a43c696be36f8d:/Wrt3g.php diff --git a/Wrt3g.php b/Wrt3g.php index 249534e..1b55416 100644 --- a/Wrt3g.php +++ b/Wrt3g.php @@ -11,6 +11,7 @@ * @link http://cweiske.de/linksys-wrt3g-tools.htm */ require_once 'HTTP/Request2.php'; +require_once 'Wrt3g/HtmlParser.php'; class Wrt3g @@ -36,14 +37,22 @@ class Wrt3g */ public $password; - protected static $arTranslations = array( - 'GPRS_MSG.WWBEAR' => 'type', - 'GPRS_MSG.NNAME' => 'network', - 'GPRS_MSG.STRENGTH' => 'signal strength', - 'GPRS_MSG.ACQUIRING' => 'aquiring', - 'GPRS_MSG.WWBEAR_GPRS' => 'GPRS', - 'GPRS_MSG.WWBEAR_UMTS' => 'UMTS', - ); + + + /** + * Returns the base URL to use for requests. + * Includes username, password and host. + * + * @return string URL without trailing slash after the host + */ + protected function getBaseUrl() + { + return 'http://' + . $this->user + . ':' . $this->password + . '@' . $this->host; + } + /** * Reboots the router. @@ -52,16 +61,12 @@ class Wrt3g * * @throws Exception When the router can't be reached, or unauthorized */ - function reboot() + public function reboot() { $r = new HTTP_Request2(); $r->setMethod(HTTP_Request2::METHOD_POST); $r->setUrl( - 'http://' - . $this->user - . ':' . $this->password - . '@' . $this->host - . '/apply.cgi' + $this->getBaseUrl() . '/apply.cgi' ); $r->addPostParameter('action', 'Reboot'); $r->addPostParameter('submit_button', 'Diagnostics'); @@ -69,7 +74,7 @@ class Wrt3g $resp = $r->send(); return $resp; - }//function reboot() + }//public function reboot() @@ -81,14 +86,12 @@ class Wrt3g * * @throws Exception When the router can't be reached, or unauthorized */ - function getStatus() + public function getStatus() { $arRetval = array(); - $strUrlBase = 'http://' - . $this->user - . ':' . $this->password - . '@' . $this->host; + $strUrlBase = $this->getBaseUrl(); + $parser = new Wrt3g_HtmlParser(); /** * Connection status @@ -98,14 +101,7 @@ class Wrt3g $r->setUrl($strUrlBase . '/index_wstatus2.asp'); $resp = $r->send(); echo $resp->getStatus() . ' ' . $resp->getReasonPhrase() . "\n"; - $body = $resp->getBody(); - preg_match('/var status2 = "(.+)"/', $body, $arMatches); - - $strStatus = $arMatches[1]; - //Connecting - //Disconnected - //Connected - $arRetval['connection'] = strtolower($strStatus); + $arRetval = $parser->index_wstatus2($resp->getBody()); /** * GPRS/UMTS Status @@ -113,41 +109,9 @@ class Wrt3g $r->setUrl($strUrlBase . '/index_wstatus1.asp'); $resp = $r->send(); $body = $resp->getBody(); - $arRetval = array_merge($arRetval, $this->parseStatus($body)); + $arRetval = array_merge($arRetval, $parser->index_wstatus1($body)); return $arRetval; - }//function getStatus() - - - - /** - * Parses the body and returns extracted values - * - * @param string $body HTML document to parse - * - * @return array Array of key-value pairs - */ - function parseStatus($body) - { - $arRetval = array(); - $arMatches = array(); - preg_match_all('#>Capture\(([^)]+)\) \ No newline at end of file