From 9cb54e380907f23af4a59e25a7bfdb816844b76c Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 28 Nov 2014 09:16:35 +0100 Subject: [PATCH] Fix intendation and doc blocks of preview providers --- lib/private/preview.php | 5 -- lib/private/preview/image.php | 7 +- lib/private/preview/markdown.php | 18 ++++ lib/private/preview/movie.php | 136 ++++++++++++++++--------------- lib/private/preview/mp3.php | 13 ++- lib/private/preview/provider.php | 2 +- lib/private/preview/svg.php | 70 ++++++++-------- lib/private/preview/txt.php | 8 -- 8 files changed, 143 insertions(+), 116 deletions(-) create mode 100644 lib/private/preview/markdown.php diff --git a/lib/private/preview.php b/lib/private/preview.php index 6547d5b3258..f08a0ce2c27 100644 --- a/lib/private/preview.php +++ b/lib/private/preview.php @@ -16,11 +16,6 @@ namespace OC; use OC\Preview\Provider; use OCP\Files\NotFoundException; -require_once 'preview/image.php'; -require_once 'preview/movie.php'; -require_once 'preview/mp3.php'; -require_once 'preview/svg.php'; -require_once 'preview/txt.php'; require_once 'preview/office-cl.php'; require_once 'preview/bitmap.php'; diff --git a/lib/private/preview/image.php b/lib/private/preview/image.php index 511052caf2b..986a44b48fd 100644 --- a/lib/private/preview/image.php +++ b/lib/private/preview/image.php @@ -9,11 +9,16 @@ namespace OC\Preview; class Image extends Provider { - + /** + * {@inheritDoc} + */ public function getMimeType() { return '/image\/(?!tiff$)(?!svg.*).*/'; } + /** + * {@inheritDoc} + */ public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { //get fileinfo $fileInfo = $fileview->getFileInfo($path); diff --git a/lib/private/preview/markdown.php b/lib/private/preview/markdown.php new file mode 100644 index 00000000000..1be01fcdd4c --- /dev/null +++ b/lib/private/preview/markdown.php @@ -0,0 +1,18 @@ +getFileInfo($path); - $useFileDirectly = (!$fileInfo->isEncrypted() && !$fileInfo->isMounted()); + $fileInfo = $fileview->getFileInfo($path); + $useFileDirectly = (!$fileInfo->isEncrypted() && !$fileInfo->isMounted()); - if ($useFileDirectly) { - $absPath = $fileview->getLocalFile($path); - } else { - $absPath = \OC_Helper::tmpFile(); + if ($useFileDirectly) { + $absPath = $fileview->getLocalFile($path); + } else { + $absPath = \OC_Helper::tmpFile(); - $handle = $fileview->fopen($path, 'rb'); + $handle = $fileview->fopen($path, 'rb'); - // we better use 5MB (1024 * 1024 * 5 = 5242880) instead of 1MB. - // in some cases 1MB was no enough to generate thumbnail - $firstmb = stream_get_contents($handle, 5242880); - file_put_contents($absPath, $firstmb); - } + // we better use 5MB (1024 * 1024 * 5 = 5242880) instead of 1MB. + // in some cases 1MB was no enough to generate thumbnail + $firstmb = stream_get_contents($handle, 5242880); + file_put_contents($absPath, $firstmb); + } - $result = $this->generateThumbNail($maxX, $maxY, $absPath, 5); - if ($result === false) { - $result = $this->generateThumbNail($maxX, $maxY, $absPath, 1); - if ($result === false) { - $result = $this->generateThumbNail($maxX, $maxY, $absPath, 0); - } - } + $result = $this->generateThumbNail($maxX, $maxY, $absPath, 5); + if ($result === false) { + $result = $this->generateThumbNail($maxX, $maxY, $absPath, 1); + if ($result === false) { + $result = $this->generateThumbNail($maxX, $maxY, $absPath, 0); + } + } - if (!$useFileDirectly) { - unlink($absPath); - } + if (!$useFileDirectly) { + unlink($absPath); + } - return $result; - } + return $result; + } - /** - * @param int $maxX - * @param int $maxY - * @param string $absPath - * @param string $tmpPath - * @param int $second - * @return bool|\OC_Image - */ - private function generateThumbNail($maxX, $maxY, $absPath, $second) - { - $tmpPath = \OC_Helper::tmpFile(); + /** + * @param int $maxX + * @param int $maxY + * @param string $absPath + * @param int $second + * @return bool|\OC_Image + */ + private function generateThumbNail($maxX, $maxY, $absPath, $second) { + $tmpPath = \OC_Helper::tmpFile(); - if (self::$avconvBinary) { - $cmd = self::$avconvBinary . ' -an -y -ss ' . escapeshellarg($second) . - ' -i ' . escapeshellarg($absPath) . - ' -f mjpeg -vframes 1 -vsync 1 ' . escapeshellarg($tmpPath) . - ' > /dev/null 2>&1'; - } else { - $cmd = self::$ffmpegBinary . ' -y -ss ' . escapeshellarg($second) . - ' -i ' . escapeshellarg($absPath) . - ' -f mjpeg -vframes 1' . - ' -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . - ' ' . escapeshellarg($tmpPath) . - ' > /dev/null 2>&1'; - } + if (self::$avconvBinary) { + $cmd = self::$avconvBinary . ' -an -y -ss ' . escapeshellarg($second) . + ' -i ' . escapeshellarg($absPath) . + ' -f mjpeg -vframes 1 -vsync 1 ' . escapeshellarg($tmpPath) . + ' > /dev/null 2>&1'; + } else { + $cmd = self::$ffmpegBinary . ' -y -ss ' . escapeshellarg($second) . + ' -i ' . escapeshellarg($absPath) . + ' -f mjpeg -vframes 1' . + ' -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . + ' ' . escapeshellarg($tmpPath) . + ' > /dev/null 2>&1'; + } - exec($cmd, $output, $returnCode); + exec($cmd, $output, $returnCode); - if ($returnCode === 0) { - $image = new \OC_Image(); - $image->loadFromFile($tmpPath); - unlink($tmpPath); - return $image->valid() ? $image : false; - } - unlink($tmpPath); - return false; - } + if ($returnCode === 0) { + $image = new \OC_Image(); + $image->loadFromFile($tmpPath); + unlink($tmpPath); + return $image->valid() ? $image : false; } + unlink($tmpPath); + return false; + } +} diff --git a/lib/private/preview/mp3.php b/lib/private/preview/mp3.php index 661cb92bf62..f1a50d99e13 100644 --- a/lib/private/preview/mp3.php +++ b/lib/private/preview/mp3.php @@ -8,11 +8,16 @@ namespace OC\Preview; class MP3 extends Provider { - + /** + * {@inheritDoc} + */ public function getMimeType() { return '/audio\/mpeg/'; } + /** + * {@inheritDoc} + */ public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { $getID3 = new \getID3(); @@ -31,6 +36,12 @@ class MP3 extends Provider { return $this->getNoCoverThumbnail(); } + /** + * Generates a default image when the file has no cover + * + * @return false|\OC_Image False if the default image is missing or invalid, + * otherwise the image is returned as \OC_Image + */ private function getNoCoverThumbnail() { $icon = \OC::$SERVERROOT . '/core/img/filetypes/audio.png'; diff --git a/lib/private/preview/provider.php b/lib/private/preview/provider.php index 10e23efa20a..ead67eaeef7 100644 --- a/lib/private/preview/provider.php +++ b/lib/private/preview/provider.php @@ -29,7 +29,7 @@ abstract class Provider { * @param int $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image * @param int $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image * @param bool $scalingup Disable/Enable upscaling of previews - * @param object $fileview fileview object of user folder + * @param \OC\Files\View $fileview fileview object of user folder * @return mixed * false if no preview was generated * OC_Image object of the preview diff --git a/lib/private/preview/svg.php b/lib/private/preview/svg.php index 6ddf8939669..561e87a6500 100644 --- a/lib/private/preview/svg.php +++ b/lib/private/preview/svg.php @@ -7,41 +7,43 @@ */ namespace OC\Preview; -use Imagick; - - class SVG extends Provider { - - public function getMimeType() { - return '/image\/svg\+xml/'; +class SVG extends Provider { + /** + * {@inheritDoc} + */ + public function getMimeType() { + return '/image\/svg\+xml/'; + } + + /** + * {@inheritDoc} + */ + public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { + try{ + $svg = new \Imagick(); + $svg->setBackgroundColor(new \ImagickPixel('transparent')); + + $content = stream_get_contents($fileview->fopen($path, 'r')); + if(substr($content, 0, 5) !== '' . $content; } - public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { - try{ - $svg = new Imagick(); - $svg->setBackgroundColor(new \ImagickPixel('transparent')); - - $content = stream_get_contents($fileview->fopen($path, 'r')); - if(substr($content, 0, 5) !== '' . $content; - } - - // Do not parse SVG files with references - if(stripos($content, 'xlink:href') !== false) { - return false; - } - - $svg->readImageBlob($content); - $svg->setImageFormat('png32'); - } catch (\Exception $e) { - \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - return false; - } - - - //new image object - $image = new \OC_Image(); - $image->loadFromData($svg); - //check if image object is valid - return $image->valid() ? $image : false; + // Do not parse SVG files with references + if(stripos($content, 'xlink:href') !== false) { + return false; } + + $svg->readImageBlob($content); + $svg->setImageFormat('png32'); + } catch (\Exception $e) { + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + return false; } + + //new image object + $image = new \OC_Image(); + $image->loadFromData($svg); + //check if image object is valid + return $image->valid() ? $image : false; + } +} diff --git a/lib/private/preview/txt.php b/lib/private/preview/txt.php index ff612e2509a..8b414dc5726 100644 --- a/lib/private/preview/txt.php +++ b/lib/private/preview/txt.php @@ -26,7 +26,6 @@ class TXT extends Provider { * {@inheritDoc} */ public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { - $content = $fileview->fopen($path, 'r'); $content = stream_get_contents($content,3000); @@ -73,10 +72,3 @@ class TXT extends Provider { return $image->valid() ? $image : false; } } - -class MarkDown extends TXT { - public function getMimeType() { - return '/text\/(x-)?markdown/'; - } - -} -- 2.39.5