New helper function fetch_header()

This commit is contained in:
Steffen Lange 2023-02-04 13:12:59 +01:00
parent 2e7927c057
commit b110ec8539
5 changed files with 13 additions and 11 deletions

View file

@ -21,19 +21,21 @@ abstract class PatchBase {
return $this->patch; return $this->patch;
} }
abstract function check() : bool; abstract function check() : bool;
protected function fetch(string $url, bool $text = true) : bool { protected function fetch(string $url) : bool {
// HTTP GET $str = $this->curl($url);
if ($text)
$str = $this->curl($url);
// HTTP HEAD
else
$str = $this->curl($url, array(array(CURLOPT_HEADER, true), array(CURLOPT_NOBODY, true)));
if ($str) { if ($str) {
$this->data = $str; $this->data = $str;
return true; return true;
} }
return false; return false;
} }
protected function fetch_header(string $url) : bool {
$str = $this->curl($url, array(array(CURLOPT_HEADER, true), array(CURLOPT_NOBODY, true)));
if ($str) {
$this->data = $str;
return true;
}
}
protected function fetch_json(string $url) : bool { protected function fetch_json(string $url) : bool {
$str = $this->curl($url); $str = $this->curl($url);
if ($str) { if ($str) {

View file

@ -5,7 +5,7 @@ class EMClient extends PatchBase {
parent::__construct('eM Client Inc.', 'eM Client', 'https://www.emclient.com/download?lang=en'); parent::__construct('eM Client Inc.', 'eM Client', 'https://www.emclient.com/download?lang=en');
} }
function check() : bool { function check() : bool {
if ($this->fetch('https://www.emclient.com/dist/latest/setup.msi', false)) if ($this->fetch_header('https://www.emclient.com/dist/latest/setup.msi'))
return $this->parse('/filename=emclient-v([\d\.]+)\.msi/'); return $this->parse('/filename=emclient-v([\d\.]+)\.msi/');
return false; return false;
} }

View file

@ -5,7 +5,7 @@ class PostgreSQL extends PatchBase {
parent::__construct('PostgreSQL Global Development Group', 'PostgreSQL', 'https://www.postgresql.org/download/'); parent::__construct('PostgreSQL Global Development Group', 'PostgreSQL', 'https://www.postgresql.org/download/');
} }
function check() : bool { function check() : bool {
if ($this->fetch('https://www.postgresql.org/ftp/latest/', false)) if ($this->fetch_header('https://www.postgresql.org/ftp/latest/'))
return $this->parse('/\/ftp\/source\/v([\d\.]+)/'); return $this->parse('/\/ftp\/source\/v([\d\.]+)/');
return false; return false;
} }

View file

@ -5,7 +5,7 @@ class Scilab extends PatchBase {
parent::__construct('ESI Group', 'Scilab', 'https://www.scilab.org/download'); parent::__construct('ESI Group', 'Scilab', 'https://www.scilab.org/download');
} }
function check() : bool { function check() : bool {
if ($this->fetch('https://www.scilab.org/latest', false)) if ($this->fetch_header('https://www.scilab.org/latest'))
return $this->parse('/\/download\/scilab-([\d\.]+)/'); return $this->parse('/\/download\/scilab-([\d\.]+)/');
return false; return false;
} }

View file

@ -5,7 +5,7 @@ class Zoom extends PatchBase {
parent::__construct('Zoom Video Communications', 'Zoom', 'https://zoom.us/download'); parent::__construct('Zoom Video Communications', 'Zoom', 'https://zoom.us/download');
} }
function check() : bool { function check() : bool {
if ($this->fetch('https://zoom.us/client/latest/ZoomInstaller.exe', false)) if ($this->fetch_header('https://zoom.us/client/latest/ZoomInstaller.exe'))
return $this->parse('/\/prod\/([\d\.]+)\/ZoomInstaller\.exe/'); return $this->parse('/\/prod\/([\d\.]+)\/ZoomInstaller\.exe/');
return false; return false;
} }