diff --git a/mailstream/mailstream.php b/mailstream/mailstream.php index cfc665f0..d814e28c 100644 --- a/mailstream/mailstream.php +++ b/mailstream/mailstream.php @@ -239,6 +239,11 @@ function mailstream_do_images(array &$item, array &$attachments) $cookiejar = tempnam(System::getTempPath(), 'cookiejar-mailstream-'); try { $curlResult = DI::httpClient()->fetchFull($url, HttpClientAccept::DEFAULT, 0, $cookiejar); + if (!$curlResult->isSuccess()) { + Logger::debug('mailstream: fetch image url failed', [ + 'url' => $url, 'item_id' => $item['id'], 'return_code' => $curlResult->getReturnCode()]); + continue; + } } catch (InvalidArgumentException $e) { Logger::error('mailstream_do_images exception fetching url', ['url' => $url, 'item_id' => $item['id']]); continue; diff --git a/retriever/retriever.php b/retriever/retriever.php index 66a44fdb..639d96c6 100644 --- a/retriever/retriever.php +++ b/retriever/retriever.php @@ -660,10 +660,14 @@ function retriever_extract(DOMDocument $doc, array $retriever) { * @return DOMDocument New DOM document with global URLs */ function retriever_globalise_urls(DOMDocument $doc, array $resource) { - $components = parse_url($resource['redirect-url']); - if (!array_key_exists('scheme', $components) || !array_key_exists('host', $components) || !array_key_exists('path', $components)) { + $url = $resource['redirect-url']; + if ($url == "") { + $url = $resource['url']; + } + $components = parse_url($url); + if (!array_key_exists('scheme', $components) || !array_key_exists('host', $components) || !array_key_exists('path', $components)) { return $doc; - } + } $rooturl = $components['scheme'] . "://" . $components['host']; $dirurl = $rooturl . dirname($components['path']) . "/"; $params = array('$dirurl' => $dirurl, '$rooturl' => $rooturl); @@ -829,7 +833,7 @@ function retriever_transform_images(array &$item, array $resource) { Logger::error('retriever_transform_images: unable to store photo ' . $resource['url'] . ' error: ' . $e->getMessage()); return; } - $new_url = DI::baseUrl() . '/photo/' . $rid . '-0.' . $image->getExt(); + $new_url = DI::baseUrl() . '/photo/' . $rid . '-0' . $image->getExt(); if (!strlen($new_url)) { Logger::warning('retriever_transform_images: no replacement URL for image ' . $resource['url']); return; diff --git a/retriever/templates/fix-urls.tpl b/retriever/templates/fix-urls.tpl index 248d4770..1d59938c 100644 --- a/retriever/templates/fix-urls.tpl +++ b/retriever/templates/fix-urls.tpl @@ -22,5 +22,10 @@ + + + + +