aboutsummaryrefslogtreecommitdiffstats
path: root/lib/preview
diff options
context:
space:
mode:
Diffstat (limited to 'lib/preview')
-rw-r--r--lib/preview/image.php36
-rw-r--r--lib/preview/movies.php47
-rw-r--r--lib/preview/mp3.php48
-rw-r--r--lib/preview/office-cl.php134
-rw-r--r--lib/preview/office-fallback.php142
-rw-r--r--lib/preview/office.php22
-rw-r--r--lib/preview/pdf.php40
-rw-r--r--lib/preview/provider.php19
-rw-r--r--lib/preview/svg.php46
-rw-r--r--lib/preview/txt.php83
-rw-r--r--lib/preview/unknown.php27
11 files changed, 0 insertions, 644 deletions
diff --git a/lib/preview/image.php b/lib/preview/image.php
deleted file mode 100644
index 9aec967282d..00000000000
--- a/lib/preview/image.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Frank Karlitschek frank@owncloud.org
- * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-namespace OC\Preview;
-
-class Image extends Provider {
-
- public function getMimeType() {
- return '/image\/.*/';
- }
-
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- //get fileinfo
- $fileInfo = $fileview->getFileInfo($path);
- if(!$fileInfo) {
- return false;
- }
-
- //check if file is encrypted
- if($fileInfo['encrypted'] === true) {
- $image = new \OC_Image(stream_get_contents($fileview->fopen($path, 'r')));
- }else{
- $image = new \OC_Image();
- $image->loadFromFile($fileview->getLocalFile($path));
- }
-
- return $image->valid() ? $image : false;
- }
-}
-
-\OC\Preview::registerProvider('OC\Preview\Image'); \ No newline at end of file
diff --git a/lib/preview/movies.php b/lib/preview/movies.php
deleted file mode 100644
index c318137ff0e..00000000000
--- a/lib/preview/movies.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Frank Karlitschek frank@owncloud.org
- * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-namespace OC\Preview;
-
-$isShellExecEnabled = !in_array('shell_exec', explode(', ', ini_get('disable_functions')));
-$whichAVCONV = shell_exec('which avconv');
-$isAVCONVAvailable = !empty($whichAVCONV);
-
-if($isShellExecEnabled && $isAVCONVAvailable) {
-
- class Movie extends Provider {
-
- public function getMimeType() {
- return '/video\/.*/';
- }
-
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- $absPath = \OC_Helper::tmpFile();
- $tmpPath = \OC_Helper::tmpFile();
-
- $handle = $fileview->fopen($path, 'rb');
-
- $firstmb = stream_get_contents($handle, 1048576); //1024 * 1024 = 1048576
- file_put_contents($absPath, $firstmb);
-
- //$cmd = 'ffmpeg -y -i ' . escapeshellarg($absPath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmpPath;
- $cmd = 'avconv -an -y -ss 1 -i ' . escapeshellarg($absPath) . ' -f mjpeg -vframes 1 ' . escapeshellarg($tmpPath);
-
- shell_exec($cmd);
-
- $image = new \OC_Image($tmpPath);
-
- unlink($absPath);
- unlink($tmpPath);
-
- return $image->valid() ? $image : false;
- }
- }
-
- \OC\Preview::registerProvider('OC\Preview\Movie');
-} \ No newline at end of file
diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php
deleted file mode 100644
index 1eed566315c..00000000000
--- a/lib/preview/mp3.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-namespace OC\Preview;
-
-class MP3 extends Provider {
-
- public function getMimeType() {
- return '/audio\/mpeg/';
- }
-
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- require_once('getid3/getid3.php');
-
- $getID3 = new \getID3();
-
- $tmpPath = $fileview->toTmpFile($path);
-
- $tags = $getID3->analyze($tmpPath);
- \getid3_lib::CopyTagsToComments($tags);
- if(isset($tags['id3v2']['APIC'][0]['data'])) {
- $picture = @$tags['id3v2']['APIC'][0]['data'];
- unlink($tmpPath);
- $image = new \OC_Image($picture);
- return $image->valid() ? $image : $this->getNoCoverThumbnail();
- }
-
- return $this->getNoCoverThumbnail();
- }
-
- private function getNoCoverThumbnail() {
- $icon = \OC::$SERVERROOT . '/core/img/filetypes/audio.png';
-
- if(!file_exists($icon)) {
- return false;
- }
-
- $image = new \OC_Image($icon);
- return $image->valid() ? $image : false;
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\MP3'); \ No newline at end of file
diff --git a/lib/preview/office-cl.php b/lib/preview/office-cl.php
deleted file mode 100644
index 112909d6523..00000000000
--- a/lib/preview/office-cl.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-namespace OC\Preview;
-
-//we need imagick to convert
-class Office extends Provider {
-
- private $cmd;
-
- public function getMimeType() {
- return null;
- }
-
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- $this->initCmd();
- if(is_null($this->cmd)) {
- return false;
- }
-
- $absPath = $fileview->toTmpFile($path);
-
- $tmpDir = get_temp_dir();
-
- $defaultParameters = ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir ';
- $clParameters = \OCP\Config::getSystemValue('preview_office_cl_parameters', $defaultParameters);
-
- $exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath);
- $export = 'export HOME=/' . $tmpDir;
-
- shell_exec($export . "\n" . $exec);
-
- //create imagick object from pdf
- try{
- $pdf = new \imagick($absPath . '.pdf' . '[0]');
- $pdf->setImageFormat('jpg');
- } catch (\Exception $e) {
- unlink($absPath);
- unlink($absPath . '.pdf');
- \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
- return false;
- }
-
- $image = new \OC_Image($pdf);
-
- unlink($absPath);
- unlink($absPath . '.pdf');
-
- return $image->valid() ? $image : false;
- }
-
- private function initCmd() {
- $cmd = '';
-
- if(is_string(\OC_Config::getValue('preview_libreoffice_path', null))) {
- $cmd = \OC_Config::getValue('preview_libreoffice_path', null);
- }
-
- $whichLibreOffice = shell_exec('which libreoffice');
- if($cmd === '' && !empty($whichLibreOffice)) {
- $cmd = 'libreoffice';
- }
-
- $whichOpenOffice = shell_exec('which openoffice');
- if($cmd === '' && !empty($whichOpenOffice)) {
- $cmd = 'openoffice';
- }
-
- if($cmd === '') {
- $cmd = null;
- }
-
- $this->cmd = $cmd;
- }
-}
-
-//.doc, .dot
-class MSOfficeDoc extends Office {
-
- public function getMimeType() {
- return '/application\/msword/';
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\MSOfficeDoc');
-
-//.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m), .pps(m), .ppa(m)
-class MSOffice2003 extends Office {
-
- public function getMimeType() {
- return '/application\/vnd.ms-.*/';
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\MSOffice2003');
-
-//.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx
-class MSOffice2007 extends Office {
-
- public function getMimeType() {
- return '/application\/vnd.openxmlformats-officedocument.*/';
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\MSOffice2007');
-
-//.odt, .ott, .oth, .odm, .odg, .otg, .odp, .otp, .ods, .ots, .odc, .odf, .odb, .odi, .oxt
-class OpenDocument extends Office {
-
- public function getMimeType() {
- return '/application\/vnd.oasis.opendocument.*/';
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\OpenDocument');
-
-//.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm
-class StarOffice extends Office {
-
- public function getMimeType() {
- return '/application\/vnd.sun.xml.*/';
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\StarOffice'); \ No newline at end of file
diff --git a/lib/preview/office-fallback.php b/lib/preview/office-fallback.php
deleted file mode 100644
index e69ab0ab8cb..00000000000
--- a/lib/preview/office-fallback.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-namespace OC\Preview;
-
-/* //There is no (good) php-only solution for converting 2003 word documents to pdfs / pngs ...
-class DOC extends Provider {
-
- public function getMimeType() {
- return '/application\/msword/';
- }
-
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- require_once('');
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\DOC');
-*/
-
-class DOCX extends Provider {
-
- public function getMimeType() {
- return '/application\/vnd.openxmlformats-officedocument.wordprocessingml.document/';
- }
-
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- require_once('phpdocx/classes/TransformDoc.inc');
-
- $tmpDoc = $fileview->toTmpFile($path);
-
- $transformdoc = new \TransformDoc();
- $transformdoc->setStrFile($tmpDoc);
- $transformdoc->generatePDF($tmpDoc);
-
- $pdf = new \imagick($tmpDoc . '[0]');
- $pdf->setImageFormat('jpg');
-
- unlink($tmpDoc);
-
- $image = new \OC_Image($pdf);
-
- return $image->valid() ? $image : false;
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\DOCX');
-
-class MSOfficeExcel extends Provider {
-
- public function getMimeType() {
- return null;
- }
-
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- require_once('PHPExcel/Classes/PHPExcel.php');
- require_once('PHPExcel/Classes/PHPExcel/IOFactory.php');
-
- $absPath = $fileview->toTmpFile($path);
- $tmpPath = \OC_Helper::tmpFile();
-
- $rendererName = \PHPExcel_Settings::PDF_RENDERER_DOMPDF;
- $rendererLibraryPath = \OC::$THIRDPARTYROOT . '/3rdparty/dompdf';
-
- \PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath);
-
- $phpexcel = new \PHPExcel($absPath);
- $excel = \PHPExcel_IOFactory::createWriter($phpexcel, 'PDF');
- $excel->save($tmpPath);
-
- $pdf = new \imagick($tmpPath . '[0]');
- $pdf->setImageFormat('jpg');
-
- unlink($absPath);
- unlink($tmpPath);
-
- $image = new \OC_Image($pdf);
-
- return $image->valid() ? $image : false;
- }
-
-}
-
-class XLS extends MSOfficeExcel {
-
- public function getMimeType() {
- return '/application\/vnd.ms-excel/';
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\XLS');
-
-class XLSX extends MSOfficeExcel {
-
- public function getMimeType() {
- return '/application\/vnd.openxmlformats-officedocument.spreadsheetml.sheet/';
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\XLSX');
-
-/* //There is no (good) php-only solution for converting powerpoint documents to pdfs / pngs ...
-class MSOfficePowerPoint extends Provider {
-
- public function getMimeType() {
- return null;
- }
-
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- return false;
- }
-
-}
-
-class PPT extends MSOfficePowerPoint {
-
- public function getMimeType() {
- return '/application\/vnd.ms-powerpoint/';
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\PPT');
-
-class PPTX extends MSOfficePowerPoint {
-
- public function getMimeType() {
- return '/application\/vnd.openxmlformats-officedocument.presentationml.presentation/';
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\PPTX');
-*/ \ No newline at end of file
diff --git a/lib/preview/office.php b/lib/preview/office.php
deleted file mode 100644
index 5287bbd6ac1..00000000000
--- a/lib/preview/office.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-//both, libreoffice backend and php fallback, need imagick
-if (extension_loaded('imagick')) {
- $isShellExecEnabled = !in_array('shell_exec', explode(', ', ini_get('disable_functions')));
- $whichLibreOffice = shell_exec('which libreoffice');
- $isLibreOfficeAvailable = !empty($whichLibreOffice);
- $whichOpenOffice = shell_exec('which libreoffice');
- $isOpenOfficeAvailable = !empty($whichOpenOffice);
- //let's see if there is libreoffice or openoffice on this machine
- if($isShellExecEnabled && ($isLibreOfficeAvailable || $isOpenOfficeAvailable || is_string(\OC_Config::getValue('preview_libreoffice_path', null)))) {
- require_once('office-cl.php');
- }else{
- //in case there isn't, use our fallback
- require_once('office-fallback.php');
- }
-} \ No newline at end of file
diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php
deleted file mode 100644
index cc974b68818..00000000000
--- a/lib/preview/pdf.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-namespace OC\Preview;
-
-if (extension_loaded('imagick')) {
-
- class PDF extends Provider {
-
- public function getMimeType() {
- return '/application\/pdf/';
- }
-
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- $tmpPath = $fileview->toTmpFile($path);
-
- //create imagick object from pdf
- try{
- $pdf = new \imagick($tmpPath . '[0]');
- $pdf->setImageFormat('jpg');
- } catch (\Exception $e) {
- \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
- return false;
- }
-
- unlink($tmpPath);
-
- //new image object
- $image = new \OC_Image($pdf);
- //check if image object is valid
- return $image->valid() ? $image : false;
- }
- }
-
- \OC\Preview::registerProvider('OC\Preview\PDF');
-}
diff --git a/lib/preview/provider.php b/lib/preview/provider.php
deleted file mode 100644
index e4a730bafc8..00000000000
--- a/lib/preview/provider.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-namespace OC\Preview;
-
-abstract class Provider {
- private $options;
-
- public function __construct($options) {
- $this->options=$options;
- }
-
- abstract public function getMimeType();
-
- /**
- * search for $query
- * @param string $query
- * @return
- */
- abstract public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview);
-}
diff --git a/lib/preview/svg.php b/lib/preview/svg.php
deleted file mode 100644
index b49e51720fa..00000000000
--- a/lib/preview/svg.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-namespace OC\Preview;
-
-if (extension_loaded('imagick')) {
-
- class SVG extends Provider {
-
- public function getMimeType() {
- return '/image\/svg\+xml/';
- }
-
- 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) !== '<?xml') {
- $content = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>' . $content;
- }
-
- $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;
- }
- }
-
- \OC\Preview::registerProvider('OC\Preview\SVG');
-
-} \ No newline at end of file
diff --git a/lib/preview/txt.php b/lib/preview/txt.php
deleted file mode 100644
index 77e728eb364..00000000000
--- a/lib/preview/txt.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-namespace OC\Preview;
-
-class TXT extends Provider {
-
- private static $blacklist = array(
- 'text/calendar',
- 'text/vcard',
- );
-
- public function getMimeType() {
- return '/text\/.*/';
- }
-
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- $mimetype = $fileview->getMimeType($path);
- if(in_array($mimetype, self::$blacklist)) {
- return false;
- }
-
- $content = $fileview->fopen($path, 'r');
- $content = stream_get_contents($content);
-
- //don't create previews of empty text files
- if(trim($content) === '') {
- return false;
- }
-
- $lines = preg_split("/\r\n|\n|\r/", $content);
-
- $fontSize = 5; //5px
- $lineSize = ceil($fontSize * 1.25);
-
- $image = imagecreate($maxX, $maxY);
- imagecolorallocate($image, 255, 255, 255);
- $textColor = imagecolorallocate($image, 0, 0, 0);
-
- foreach($lines as $index => $line) {
- $index = $index + 1;
-
- $x = (int) 1;
- $y = (int) ($index * $lineSize) - $fontSize;
-
- imagestring($image, 1, $x, $y, $line, $textColor);
-
- if(($index * $lineSize) >= $maxY) {
- break;
- }
- }
-
- $image = new \OC_Image($image);
-
- return $image->valid() ? $image : false;
- }
-}
-
-\OC\Preview::registerProvider('OC\Preview\TXT');
-
-class PHP extends TXT {
-
- public function getMimeType() {
- return '/application\/x-php/';
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\PHP');
-
-class JavaScript extends TXT {
-
- public function getMimeType() {
- return '/application\/javascript/';
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\JavaScript'); \ No newline at end of file
diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php
deleted file mode 100644
index 9e6cd68d401..00000000000
--- a/lib/preview/unknown.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Frank Karlitschek frank@owncloud.org
- * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-namespace OC\Preview;
-
-class Unknown extends Provider {
-
- public function getMimeType() {
- return '/.*/';
- }
-
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- $mimetype = $fileview->getMimeType($path);
-
- $path = \OC_Helper::mimetypeIcon($mimetype);
- $path = \OC::$SERVERROOT . substr($path, strlen(\OC::$WEBROOT));
-
- return new \OC_Image($path);
- }
-}
-
-\OC\Preview::registerProvider('OC\Preview\Unknown'); \ No newline at end of file