From edc9fd203d0e9ed1d3ca07765f0c6032def6516f Mon Sep 17 00:00:00 2001 From: Diogo Peralta Cordeiro Date: Sun, 11 Apr 2021 21:16:11 +0100 Subject: [PATCH] [StoreRemoteMedia] Increase type strictness --- .../StoreRemoteMediaPlugin.php | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/plugins/StoreRemoteMedia/StoreRemoteMediaPlugin.php b/plugins/StoreRemoteMedia/StoreRemoteMediaPlugin.php index 1a99a61e2a..b888c46c2e 100644 --- a/plugins/StoreRemoteMedia/StoreRemoteMediaPlugin.php +++ b/plugins/StoreRemoteMedia/StoreRemoteMediaPlugin.php @@ -47,8 +47,6 @@ class StoreRemoteMediaPlugin extends Plugin public $crop = null; public $max_size = null; - protected $imgData = []; - /** * Initialize the StoreRemoteMedia plugin and set up the environment it needs for it. * Returns true if it initialized properly, the exception object if it @@ -72,8 +70,8 @@ class StoreRemoteMediaPlugin extends Plugin * the database. We glom onto this to fetch remote attachments. * * @param $file File the file of the created thumbnail - * @param &$imgPath string = the path to the created thumbnail - * @param $media string = media type + * @param &$imgPath null|string = out the path to the created thumbnail (output parameter) + * @param $media string = media type (unused) * @return bool * @throws AlreadyFulfilledException * @throws FileNotFoundException @@ -81,7 +79,7 @@ class StoreRemoteMediaPlugin extends Plugin * @throws HTTP_Request2_Exception * @throws ServerException */ - public function onCreateFileImageThumbnailSource(File $file, &$imgPath, string $media): bool + public function onCreateFileImageThumbnailSource(File $file, ?string &$imgPath = null, ?string $media=null): bool { // If we are on a private node, we won't do any remote calls (just as a precaution until // we can configure this from config.php for the private nodes) @@ -156,7 +154,7 @@ class StoreRemoteMediaPlugin extends Plugin } } catch (UnsupportedMediaException $e) { // Couldn't find anything that looks like an image, nothing to do - common_debug("StoreRemoteMedia was not able to find an image for URL `{$url}`: " . $e->getMessage()); + common_debug("StoreRemoteMedia was not able to find an image for URL `$url`: " . $e->getMessage()); return false; } } @@ -220,7 +218,7 @@ class StoreRemoteMediaPlugin extends Plugin $headers = $head->getHeader(); $headers = array_change_key_case($headers, CASE_LOWER); } - return isset($headers['content-length']) ? $headers['content-length'] : false; + return $headers['content-length'] ?? false; } catch (Exception $err) { common_log(LOG_ERR, __CLASS__.': getRemoteFileSize on URL : '._ve($url). ' threw exception: '.$err->getMessage()); @@ -234,7 +232,7 @@ class StoreRemoteMediaPlugin extends Plugin * * @return bool true if the remote URL is an image, or false otherwise. */ - private function isRemoteImage($url, $headers = null) + private function isRemoteImage($url, $headers = null): bool { if (empty($headers)) { if (!common_valid_http_url($url)) { @@ -278,6 +276,13 @@ class StoreRemoteMediaPlugin extends Plugin $original_name = HTTPClient::get_filename($url, $headers); } $filename = MediaFile::encodeFilename($original_name ?? _m('Untitled attachment'), $filehash); + } catch (Exception $err) { + common_log(LOG_ERR, "Went to write a thumbnail to disk in StoreRemoteMediaPlugin::storeRemoteThumbnail " . + "but encountered error: $err"); + throw $err; + } + + try { $fullpath = $this->store_original ? File::path($filename) : File_thumbnail::path($filename); // Write the file to disk. Throw Exception on failure if (!file_exists($fullpath)) { @@ -318,7 +323,7 @@ class StoreRemoteMediaPlugin extends Plugin // Carry on } catch (Exception $err) { common_log(LOG_ERR, "Went to write a thumbnail to disk in StoreRemoteMediaPlugin::storeRemoteThumbnail " . - "but encountered error: {$err}"); + "but encountered error: $err"); throw $err; } finally { unset($imgData);