From f492c6c2c37e7efc8a7a7b6d57ce49580d14ac9e Mon Sep 17 00:00:00 2001 From: jgen Date: Fri, 12 May 2017 00:57:50 -0700 Subject: [PATCH] Ensure that the Image object tag_array and the metadata array tags are always arrays. --- core/imageboard.pack.php | 6 +++--- ext/bulk_add_csv/main.php | 4 ++-- ext/cron_uploader/main.php | 6 +++++- ext/handle_flash/main.php | 2 +- ext/handle_ico/main.php | 2 +- ext/handle_mp3/main.php | 2 +- ext/handle_pixel/main.php | 2 +- ext/handle_svg/main.php | 2 +- ext/handle_video/main.php | 2 +- ext/oekaki/main.php | 2 +- ext/ouroboros_api/main.php | 2 +- tests/bootstrap.php | 2 +- 12 files changed, 19 insertions(+), 15 deletions(-) diff --git a/core/imageboard.pack.php b/core/imageboard.pack.php index 9e20b33e..81c84c51 100644 --- a/core/imageboard.pack.php +++ b/core/imageboard.pack.php @@ -1210,7 +1210,7 @@ function move_upload_to_archive(DataUploadEvent $event) { * Add a directory full of images * * @param $base string - * @return array + * @return array|string[] */ function add_dir($base) { $results = array(); @@ -1222,7 +1222,7 @@ function add_dir($base) { $tags = path_to_tags($short_path); $result = "$short_path (".str_replace(" ", ", ", $tags).")... "; try { - add_image($full_path, $filename, Tag::explode($tags)); + add_image($full_path, $filename, $tags); $result .= "ok"; } catch(UploadException $ex) { @@ -1250,7 +1250,7 @@ function add_image($tmpname, $filename, $tags) { $metadata = array(); $metadata['filename'] = $pathinfo['basename']; $metadata['extension'] = $pathinfo['extension']; - $metadata['tags'] = $tags; + $metadata['tags'] = Tag::explode($tags); $metadata['source'] = null; $event = new DataUploadEvent($tmpname, $metadata); send_event($event); diff --git a/ext/bulk_add_csv/main.php b/ext/bulk_add_csv/main.php index 2e7cf6d7..a5b999e7 100644 --- a/ext/bulk_add_csv/main.php +++ b/ext/bulk_add_csv/main.php @@ -73,7 +73,7 @@ class BulkAddCSV extends Extension { $metadata = array(); $metadata['filename'] = $pathinfo['basename']; $metadata['extension'] = $pathinfo['extension']; - $metadata['tags'] = $tags; + $metadata['tags'] = Tag::explode($tags); $metadata['source'] = $source; $event = new DataUploadEvent($tmpname, $metadata); send_event($event); @@ -126,7 +126,7 @@ class BulkAddCSV extends Extension { $list .= "
".html_escape("$shortpath (".str_replace(" ", ", ", $tags).")... "); if (file_exists($csvdata[0]) && is_file($csvdata[0])) { try{ - $this->add_image($fullpath, $pathinfo["basename"], Tag::explode($tags), $source, $rating, $thumbfile); + $this->add_image($fullpath, $pathinfo["basename"], $tags, $source, $rating, $thumbfile); $list .= "ok\n"; } catch(Exception $ex) { diff --git a/ext/cron_uploader/main.php b/ext/cron_uploader/main.php index 182a1848..202ee14c 100644 --- a/ext/cron_uploader/main.php +++ b/ext/cron_uploader/main.php @@ -304,6 +304,10 @@ class CronUploader extends Extension { /** * Generate the necessary DataUploadEvent for a given image and tags. + * + * @param string $tmpname + * @param string $filename + * @param string $tags */ private function add_image($tmpname, $filename, $tags) { assert ( file_exists ( $tmpname ) ); @@ -315,7 +319,7 @@ class CronUploader extends Extension { $metadata = array(); $metadata ['filename'] = $pathinfo ['basename']; $metadata ['extension'] = $pathinfo ['extension']; - $metadata ['tags'] = ""; // = $tags; doesn't work when not logged in here + $metadata ['tags'] = array(""); // = $tags; doesn't work when not logged in here $metadata ['source'] = null; $event = new DataUploadEvent ( $tmpname, $metadata ); send_event ( $event ); diff --git a/ext/handle_flash/main.php b/ext/handle_flash/main.php index 6122cb46..719648d4 100644 --- a/ext/handle_flash/main.php +++ b/ext/handle_flash/main.php @@ -37,7 +37,7 @@ class FlashFileHandler extends DataHandlerExtension { $image->hash = $metadata['hash']; $image->filename = $metadata['filename']; $image->ext = $metadata['extension']; - $image->tag_array = $metadata['tags']; + $image->tag_array = is_array($metadata['tags']) ? $metadata['tags'] : Tag::explode($metadata['tags']); $image->source = $metadata['source']; $info = getimagesize($filename); diff --git a/ext/handle_ico/main.php b/ext/handle_ico/main.php index beda9596..31d5e337 100644 --- a/ext/handle_ico/main.php +++ b/ext/handle_ico/main.php @@ -67,7 +67,7 @@ class IcoFileHandler extends Extension { $image->hash = $metadata['hash']; $image->filename = $metadata['filename']; $image->ext = $metadata['extension']; - $image->tag_array = $metadata['tags']; + $image->tag_array = is_array($metadata['tags']) ? $metadata['tags'] : Tag::explode($metadata['tags']); $image->source = $metadata['source']; return $image; diff --git a/ext/handle_mp3/main.php b/ext/handle_mp3/main.php index 9bbbe55a..4f0eae9e 100644 --- a/ext/handle_mp3/main.php +++ b/ext/handle_mp3/main.php @@ -43,7 +43,7 @@ class MP3FileHandler extends DataHandlerExtension { $image->filename = $metadata['filename']; $image->ext = $metadata['extension']; - $image->tag_array = $metadata['tags']; + $image->tag_array = is_array($metadata['tags']) ? $metadata['tags'] : Tag::explode($metadata['tags']); $image->source = $metadata['source']; return $image; diff --git a/ext/handle_pixel/main.php b/ext/handle_pixel/main.php index 38ba6b3d..149677eb 100644 --- a/ext/handle_pixel/main.php +++ b/ext/handle_pixel/main.php @@ -35,7 +35,7 @@ class PixelFileHandler extends DataHandlerExtension { $image->hash = $metadata['hash']; $image->filename = (($pos = strpos($metadata['filename'],'?')) !== false) ? substr($metadata['filename'],0,$pos) : $metadata['filename']; $image->ext = (($pos = strpos($metadata['extension'],'?')) !== false) ? substr($metadata['extension'],0,$pos) : $metadata['extension']; - $image->tag_array = $metadata['tags']; + $image->tag_array = is_array($metadata['tags']) ? $metadata['tags'] : Tag::explode($metadata['tags']); $image->source = $metadata['source']; return $image; diff --git a/ext/handle_svg/main.php b/ext/handle_svg/main.php index c932f6ba..2e58dbd3 100644 --- a/ext/handle_svg/main.php +++ b/ext/handle_svg/main.php @@ -75,7 +75,7 @@ class SVGFileHandler extends Extension { $image->hash = $metadata['hash']; $image->filename = $metadata['filename']; $image->ext = $metadata['extension']; - $image->tag_array = $metadata['tags']; + $image->tag_array = is_array($metadata['tags']) ? $metadata['tags'] : Tag::explode($metadata['tags']); $image->source = $metadata['source']; return $image; diff --git a/ext/handle_video/main.php b/ext/handle_video/main.php index 4edbcc32..a31ac781 100644 --- a/ext/handle_video/main.php +++ b/ext/handle_video/main.php @@ -170,7 +170,7 @@ class VideoFileHandler extends DataHandlerExtension { $image->filesize = $metadata['size']; $image->hash = $metadata['hash']; $image->filename = $metadata['filename']; - $image->tag_array = $metadata['tags']; + $image->tag_array = is_array($metadata['tags']) ? $metadata['tags'] : Tag::explode($metadata['tags']); $image->source = $metadata['source']; return $image; diff --git a/ext/oekaki/main.php b/ext/oekaki/main.php index bf4c804d..c26c1019 100644 --- a/ext/oekaki/main.php +++ b/ext/oekaki/main.php @@ -31,7 +31,7 @@ class Oekaki extends Extension { $metadata = array(); $metadata['filename'] = 'oekaki.png'; $metadata['extension'] = $pathinfo['extension']; - $metadata['tags'] = 'oekaki tagme'; + $metadata['tags'] = Tag::explode('oekaki tagme'); $metadata['source'] = null; $duev = new DataUploadEvent($tmpname, $metadata); send_event($duev); diff --git a/ext/ouroboros_api/main.php b/ext/ouroboros_api/main.php index 95a69d97..966e8bc9 100644 --- a/ext/ouroboros_api/main.php +++ b/ext/ouroboros_api/main.php @@ -500,7 +500,7 @@ class OuroborosAPI extends Extension } } $meta = array(); - $meta['tags'] = $post->tags; + $meta['tags'] = Tag::explode($post->tags); $meta['source'] = $post->source; if (defined('ENABLED_EXTS')) { if (strstr(ENABLED_EXTS, 'rating') !== false) { diff --git a/tests/bootstrap.php b/tests/bootstrap.php index d17b242a..961c0c0b 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -132,7 +132,7 @@ abstract class ShimmiePHPUnitTestCase extends \PHPUnit_Framework_TestCase { // post things /** * @param string $filename - * @param string|string[] $tags + * @param string $tags * @return int */ protected function post_image($filename, $tags) {