Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2013-10-17 13:23:15 +0400
committerThomas Müller <thomas.mueller@tmit.eu>2013-10-17 13:23:15 +0400
commitb70d67d49abd814f6722803f0787f7d9fa908735 (patch)
tree017a0605a07c061d0ee0d11ec70a741e43c495b0 /lib/private/preview
parent186c6a56d13206f03bbc80ecac59ff8c6df63840 (diff)
parent7caf011b9aa8fba455a528dac694a3d5eb697547 (diff)
Merge pull request #5237 from owncloud/coverage-on-windows-master
PHP Code Coverage on windows master
Diffstat (limited to 'lib/private/preview')
-rw-r--r--lib/private/preview/movies.php52
-rw-r--r--lib/private/preview/office-cl.php160
-rw-r--r--lib/private/preview/office.php25
3 files changed, 126 insertions, 111 deletions
diff --git a/lib/private/preview/movies.php b/lib/private/preview/movies.php
index c318137ff0e..dc50d160346 100644
--- a/lib/private/preview/movies.php
+++ b/lib/private/preview/movies.php
@@ -8,40 +8,44 @@
*/
namespace OC\Preview;
-$isShellExecEnabled = !in_array('shell_exec', explode(', ', ini_get('disable_functions')));
-$whichAVCONV = shell_exec('which avconv');
-$isAVCONVAvailable = !empty($whichAVCONV);
+// movie preview is currently not supported on Windows
+if (!\OC_Util::runningOnWindows()) {
+ $isShellExecEnabled = !in_array('shell_exec', explode(', ', ini_get('disable_functions')));
+ $whichAVCONV = shell_exec('which avconv');
+ $isAVCONVAvailable = !empty($whichAVCONV);
-if($isShellExecEnabled && $isAVCONVAvailable) {
+ if($isShellExecEnabled && $isAVCONVAvailable) {
- class Movie extends Provider {
+ class Movie extends Provider {
- public function getMimeType() {
- return '/video\/.*/';
- }
+ public function getMimeType() {
+ return '/video\/.*/';
+ }
+
+ public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
+ $absPath = \OC_Helper::tmpFile();
+ $tmpPath = \OC_Helper::tmpFile();
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- $absPath = \OC_Helper::tmpFile();
- $tmpPath = \OC_Helper::tmpFile();
+ $handle = $fileview->fopen($path, 'rb');
- $handle = $fileview->fopen($path, 'rb');
+ $firstmb = stream_get_contents($handle, 1048576); //1024 * 1024 = 1048576
+ file_put_contents($absPath, $firstmb);
- $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);
- //$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);
+ shell_exec($cmd);
- $image = new \OC_Image($tmpPath);
+ $image = new \OC_Image($tmpPath);
- unlink($absPath);
- unlink($tmpPath);
+ unlink($absPath);
+ unlink($tmpPath);
- return $image->valid() ? $image : false;
+ return $image->valid() ? $image : false;
+ }
}
+
+ \OC\Preview::registerProvider('OC\Preview\Movie');
}
+}
- \OC\Preview::registerProvider('OC\Preview\Movie');
-} \ No newline at end of file
diff --git a/lib/private/preview/office-cl.php b/lib/private/preview/office-cl.php
index 112909d6523..8f2e06c050b 100644
--- a/lib/private/preview/office-cl.php
+++ b/lib/private/preview/office-cl.php
@@ -7,128 +7,132 @@
*/
namespace OC\Preview;
-//we need imagick to convert
-class Office extends Provider {
+// office preview is currently not supported on Windows
+if (!\OC_Util::runningOnWindows()) {
- private $cmd;
+ //we need imagick to convert
+ class Office extends Provider {
- public function getMimeType() {
- return null;
- }
+ private $cmd;
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- $this->initCmd();
- if(is_null($this->cmd)) {
- return false;
+ public function getMimeType() {
+ return null;
}
- $absPath = $fileview->toTmpFile($path);
+ 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();
- $tmpDir = get_temp_dir();
+ $defaultParameters = ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir ';
+ $clParameters = \OCP\Config::getSystemValue('preview_office_cl_parameters', $defaultParameters);
- $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;
- $exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath);
- $export = 'export HOME=/' . $tmpDir;
+ shell_exec($export . "\n" . $exec);
- 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);
- //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;
+
+ return $image->valid() ? $image : false;
}
- $image = new \OC_Image($pdf);
+ private function initCmd() {
+ $cmd = '';
- unlink($absPath);
- unlink($absPath . '.pdf');
+ if(is_string(\OC_Config::getValue('preview_libreoffice_path', null))) {
+ $cmd = \OC_Config::getValue('preview_libreoffice_path', null);
+ }
- return $image->valid() ? $image : false;
- }
+ $whichLibreOffice = shell_exec('which libreoffice');
+ if($cmd === '' && !empty($whichLibreOffice)) {
+ $cmd = 'libreoffice';
+ }
- private function initCmd() {
- $cmd = '';
+ $whichOpenOffice = shell_exec('which openoffice');
+ if($cmd === '' && !empty($whichOpenOffice)) {
+ $cmd = 'openoffice';
+ }
- if(is_string(\OC_Config::getValue('preview_libreoffice_path', null))) {
- $cmd = \OC_Config::getValue('preview_libreoffice_path', null);
- }
+ if($cmd === '') {
+ $cmd = null;
+ }
- $whichLibreOffice = shell_exec('which libreoffice');
- if($cmd === '' && !empty($whichLibreOffice)) {
- $cmd = 'libreoffice';
+ $this->cmd = $cmd;
}
+ }
- $whichOpenOffice = shell_exec('which openoffice');
- if($cmd === '' && !empty($whichOpenOffice)) {
- $cmd = 'openoffice';
- }
+ //.doc, .dot
+ class MSOfficeDoc extends Office {
- if($cmd === '') {
- $cmd = null;
+ public function getMimeType() {
+ return '/application\/msword/';
}
- $this->cmd = $cmd;
- }
-}
-
-//.doc, .dot
-class MSOfficeDoc extends Office {
-
- public function getMimeType() {
- return '/application\/msword/';
}
-}
+ \OC\Preview::registerProvider('OC\Preview\MSOfficeDoc');
-\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 {
-//.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-.*/';
+ }
- public function getMimeType() {
- return '/application\/vnd.ms-.*/';
}
-}
+ \OC\Preview::registerProvider('OC\Preview\MSOffice2003');
-\OC\Preview::registerProvider('OC\Preview\MSOffice2003');
+ //.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx
+ class MSOffice2007 extends Office {
-//.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx
-class MSOffice2007 extends Office {
+ public function getMimeType() {
+ return '/application\/vnd.openxmlformats-officedocument.*/';
+ }
- public function getMimeType() {
- return '/application\/vnd.openxmlformats-officedocument.*/';
}
-}
+ \OC\Preview::registerProvider('OC\Preview\MSOffice2007');
-\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 {
-//.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.*/';
+ }
- public function getMimeType() {
- return '/application\/vnd.oasis.opendocument.*/';
}
-}
+ \OC\Preview::registerProvider('OC\Preview\OpenDocument');
-\OC\Preview::registerProvider('OC\Preview\OpenDocument');
+ //.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm
+ class StarOffice extends Office {
-//.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm
-class StarOffice extends Office {
+ public function getMimeType() {
+ return '/application\/vnd.sun.xml.*/';
+ }
- public function getMimeType() {
- return '/application\/vnd.sun.xml.*/';
}
+ \OC\Preview::registerProvider('OC\Preview\StarOffice');
}
-
-\OC\Preview::registerProvider('OC\Preview\StarOffice'); \ No newline at end of file
diff --git a/lib/private/preview/office.php b/lib/private/preview/office.php
index 5287bbd6ac1..673b16edc19 100644
--- a/lib/private/preview/office.php
+++ b/lib/private/preview/office.php
@@ -8,15 +8,22 @@
//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{
+
+ // movie preview is currently not supported on Windows
+ if (!\OC_Util::runningOnWindows()) {
+ $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');
+ }
+ } else {
//in case there isn't, use our fallback
require_once('office-fallback.php');
}
-} \ No newline at end of file
+}