Remove duplicate curl call in Network\Probe::getFeedLink
- Add page body argument instead - Expand method scope to allow tests
This commit is contained in:
parent
95da30f395
commit
c2105f93d1
1 changed files with 8 additions and 13 deletions
|
@ -1756,25 +1756,20 @@ class Probe
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check page for feed link
|
* Checks HTML page for RSS feed link
|
||||||
*
|
*
|
||||||
* @param string $url Page link
|
* @param string $url Page link
|
||||||
*
|
* @param string $body Page body string
|
||||||
* @return string feed link
|
* @return string|false Feed link or false if body was invalid HTML document
|
||||||
*/
|
*/
|
||||||
private static function getFeedLink($url)
|
public static function getFeedLink(string $url, string $body)
|
||||||
{
|
{
|
||||||
$curlResult = Network::curl($url);
|
|
||||||
if (!$curlResult->isSuccess()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$doc = new DOMDocument();
|
$doc = new DOMDocument();
|
||||||
if (!@$doc->loadHTML($curlResult->getBody())) {
|
if (!@$doc->loadHTML($body)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$xpath = new DomXPath($doc);
|
$xpath = new DOMXPath($doc);
|
||||||
|
|
||||||
//$feeds = $xpath->query("/html/head/link[@type='application/rss+xml']");
|
//$feeds = $xpath->query("/html/head/link[@type='application/rss+xml']");
|
||||||
$feeds = $xpath->query("/html/head/link[@type='application/rss+xml' and @rel='alternate']");
|
$feeds = $xpath->query("/html/head/link[@type='application/rss+xml' and @rel='alternate']");
|
||||||
|
@ -1826,7 +1821,7 @@ class Probe
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$feed_url = self::getFeedLink($url);
|
$feed_url = self::getFeedLink($url, $feed);
|
||||||
|
|
||||||
if (!$feed_url) {
|
if (!$feed_url) {
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in a new issue