{
/**
- * Initializer method for this class.
- *
- * Sets application instance and checks if /proxy/ path is writable.
- *
+ * Fetch remote image content
*/
public static function rawContent(array $parameters = [])
{
$fetchResult = HTTPSignature::fetchRaw($request['url'], local_user(), ['timeout' => 10]);
$img_str = $fetchResult->getBody();
- // If there is an error then return an error
- if ((substr($fetchResult->getReturnCode(), 0, 1) == '4') || empty($img_str)) {
+ if (!$fetchResult->isSuccess() || empty($img_str)) {
Logger::info('Error fetching image', ['image' => $request['url'], 'return' => $fetchResult->getReturnCode(), 'empty' => empty($img_str)]);
self::responseError();
// stop.
*/
public static function proxifyUrl($url, $size = '')
{
- // Get application instance
- $a = DI::app();
-
// Trim URL first
$url = trim($url);
- // Is no http in front of it?
- /// @TODO To weak test for being a valid URL
- if (substr($url, 0, 4) !== 'http') {
- return $url;
- }
-
- // Only continue if it isn't a local image and the isn't deactivated
- if (self::isLocalImage($url)) {
- $url = str_replace(Strings::normaliseLink(DI::baseUrl()) . '/', DI::baseUrl() . '/', $url);
+ // Quit if not an HTTP/HTTPS link or if local
+ if (!in_array(parse_url($url, PHP_URL_SCHEME), ['http', 'https']) || self::isLocalImage($url)) {
return $url;
}
return true;
}
- // links normalised - bug #431
- $baseurl = Strings::normaliseLink(DI::baseUrl());
- $url = Strings::normaliseLink($url);
-
- return (substr($url, 0, strlen($baseurl)) == $baseurl);
+ return Network::isLocalLink($url);
}
/**