X-Git-Url: https://git.cweiske.de/tt-rss-micropub.git/blobdiff_plain/91b3819720f7492585d099a7d596f082d1fad1ae..a5601331c97bfdc4fde2f45e10782456215f177e:/init.php diff --git a/init.php b/init.php index 745d432..3d8008f 100644 --- a/init.php +++ b/init.php @@ -225,6 +225,9 @@ class Micropub extends Plugin implements IHandler $links = $this->getLinks($me); + if ($links === false) { + return $this->errorOut('Error fetching URL: ' . $me); + } if (!count($links)) { return $this->errorOut('No links found'); } @@ -272,9 +275,18 @@ class Micropub extends Plugin implements IHandler $status = array_shift($headers); list($httpver, $code, $text) = explode(' ', $status, 3); if ($code != 201 && $code != 202) { + $errData = json_decode($content); + if (isset($errData->error_description) + && $errData->error_description != '' + ) { + return $this->errorOut( + 'Error creating post: ' + . $errData->error_description + ); + } return $this->errorOut( - 'An error occured: ' - . $code . ' ' . $text + 'Error creating post: ' + . $code . ' ' . $text.$content ); } @@ -316,6 +328,9 @@ class Micropub extends Plugin implements IHandler //step 1: micropub discovery $links = $this->getLinks($url); + if ($links === false) { + return $this->errorOut('Error fetching URL: ' . $url); + } if (!count($links)) { return $this->errorOut('No links found'); } @@ -356,6 +371,9 @@ class Micropub extends Plugin implements IHandler } $links = $this->getLinks($_GET['me']); + if ($links === false) { + return $this->errorOut('Error fetching URL: ' . $_GET['me']); + } if (!isset($links['token_endpoint'])) { return $this->errorOut('No token endpoint found'); } @@ -530,6 +548,10 @@ class Micropub extends Plugin implements IHandler /** * Extract link relations from a given URL + * + * @param string $url URL to extract links from + * + * @return bool|array Array of links, or false on HTTP error */ protected function getLinks($url) { @@ -539,6 +561,10 @@ class Micropub extends Plugin implements IHandler 'url' => $url, ] ); + if ($html === false) { + return false; + } + //Loading invalid HTML is tedious. // quick hack with regex. yay! preg_match_all('#]+?>#', $html, $matches);