diff --git a/CHANGELOG.md b/CHANGELOG.md index 030d66e..2fe461c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file. Older chang - Move more operations into helper - "Open in browser" postflight - Clean up prefs +- Better logic for external tools (sips can be disabled manually) ## [0.7.13.2] - Added PHP extension checks diff --git a/MainMenu.nib/designable.nib b/MainMenu.nib/designable.nib index af81718..1a4ec07 100644 --- a/MainMenu.nib/designable.nib +++ b/MainMenu.nib/designable.nib @@ -548,7 +548,7 @@ Gw - + diff --git a/Tester.zip b/Tester.zip index 2bb7f3e..12bb526 100644 Binary files a/Tester.zip and b/Tester.zip differ diff --git a/Yuba.app.zip b/Yuba.app.zip index 50cf256..c0dea5f 100644 Binary files a/Yuba.app.zip and b/Yuba.app.zip differ diff --git a/Yuba.php b/Yuba.php index 5e3eb4f..08cabe1 100755 --- a/Yuba.php +++ b/Yuba.php @@ -889,7 +889,7 @@ foreach ($files as $splFileInfo) { } elseif ($type == "dir") { - if (is_array($dpreview) && @$dpreview[$pathname]) { + if (is_array(@$dpreview) && @$dpreview[$pathname]) { $fetch_thumb = $dbp->query("SELECT * FROM thumbs WHERE fid='".$dpreview[$pathname]."'")->fetch(); if (@$fetch_thumb['relative_path']) { $stmt->BindValue(":thumb_filename",$fetch_thumb['relative_path']); diff --git a/filetypes.php b/filetypes.php index 8ccb82f..dc1465a 100755 --- a/filetypes.php +++ b/filetypes.php @@ -94,20 +94,22 @@ $p['t_files']['ffmpeg'] = array( "mkv", "webm" ); // Use sips to generate thumbnails for these files -$p['t_files']['sips'] = array( "jpg", - "jpeg", - "tif", - "tiff", - "gif", - "psd", - "png", - "heic", - "pdf", - "ai", - "ps", - "bmp", - "pict", - "jp2" ); +// SIPS does not currently support JPEG Orientation EXIF Tag, +// so images will sometimes appear sideways +//$p['t_files']['sips'] = array( "jpg", +// "jpeg", +// "tif", +// "tiff", +// "gif", +// "psd", +// "png", +// "heic", +// "pdf", +// "ai", +// "ps", +// "bmp", +// "pict", +// "jp2" ); // Use sox to generate thumbnails for these files $p['t_files']['sox'] = array( "flac", @@ -238,7 +240,7 @@ foreach ($p['c_files'] as $ext) { $p['c_files'][] = strtoupper($ext); } foreach ($p['e_files'] as $ext) { $p['e_files'][] = strtoupper($ext); } foreach ($p['m_files'] as $ext) { $p['m_files'][] = strtoupper($ext); } foreach ($p['t_files']['ffmpeg'] as $ext) { $p['t_files']['ffmpeg'][] = strtoupper($ext); } -foreach ($p['t_files']['sips'] as $ext) { $p['t_files']['sips'][] = strtoupper($ext); } +//foreach ($p['t_files']['sips'] as $ext) { $p['t_files']['sips'][] = strtoupper($ext); } foreach ($p['t_skip'] as $ext) { $p['t_skip'][] = strtoupper($ext); } foreach ($p['i_skip'] as $ext) { $p['i_skip'][] = strtoupper($ext); } foreach ($p['p_files'] as $file) { $p['p_files'][] = strtoupper($file); } diff --git a/helper.php b/helper.php index 79c4b27..a4376cd 100755 --- a/helper.php +++ b/helper.php @@ -10,12 +10,15 @@ $p = unserialize(file_get_contents($prefs_file)); require("functions.php"); require("filetypes.php"); +$redirect = "2>&1"; +//$redirect = "2> /tmp/yuba/debug.log"; + $dm = ""; function dfm ($string, $flag = 0) { // dumb workaround for debug messages appearing out of order - // bypass for single-thread to observe hangs - //dm($string); - //return + // uncomment next line to revert to instant message printing + dm($string); return; + global $dm; if ($flag == 1) { $dm .= str_repeat("-",33)."\n".$string."\n".str_repeat("-",33)."\n"; @@ -52,7 +55,7 @@ $dbp->query("PRAGMA journal_mode = WAL"); $sbatch = array(); -$estring = "\nBATCH: ".shortlabel(basename($pathname),20); +$estring = "\n[BATCH] ".shortlabel(basename($pathname),20); dfm("BATCH INIT ".$file.":".print_r($argv,true),2); @@ -131,14 +134,11 @@ if ($p['thumbs']) { $cmd['ql-thumbnail'] = $bin_qlthumb." ".$shellpath." ".$tfile." public.jpeg ".$p['thumb_size']." ".$p['thumb_size']." .8"; $cmd['qlmanage'] = $bin_qlmanage." -t -s ".$p['thumb_size']." -o ".dirname($tpfile)." ".$shellpath."; ".$bin_sips." -s format jpeg -s formatOptions 80 ".escapeshellarg($tpfile)." --out ".$tfile; - if (in_array($ext, $p['t_files']['sips'])) { - $external_tool = "sips"; - } elseif (in_array($ext, $p['t_files']['ffmpeg'])) { - $external_tool = "ffmpeg"; - } elseif (in_array($ext, $p['t_files']['sox'])) { - $external_tool = "sox"; - } else { - $external_tool = null; + $external_tool = null; + foreach ($p['t_files'] as $tool => $whitelist) { + if (in_array($ext, $whitelist)) { + $external_tool = $tool; + } } dfm("external tool for ".$ext." = ".$external_tool); switch ($p['thumb_mode']) { @@ -157,7 +157,7 @@ if ($p['thumbs']) { if (empty($cmd[$tool])) { continue; } dfm($cmd[$tool]); - shell_exec($cmd[$tool]." 2>&1"); + shell_exec($cmd[$tool]." 2>1"); $estring .= " ->".$tool; $checksize = @filesize($tfile); @@ -244,7 +244,7 @@ if ($p['icons']) { dfm("icon mode 2, bypassing hash check"); $tool = "ql-icon"; - shell_exec($cmd[$tool]." 2>&1"); + shell_exec($cmd[$tool]." ".$redirect); $stmt->BindValue(":tool",$tool); dfm($cmd[$tool]); $estring .= " ->".$tool; @@ -274,7 +274,7 @@ if ($p['icons']) { } foreach ($tools as $tool) { if (!@filesize($tfile)) { - shell_exec($cmd[$tool]." 2>&1"); + shell_exec($cmd[$tool]." ".$redirect); dfm($cmd[$tool]); $estring .= " ->".$tool; } @@ -375,7 +375,7 @@ if ($p['meta']) { dfm("creating mediainfo dump"); $stmt = $dbp->prepare("INSERT INTO mediainfo VALUES (:fid, :info)"); $stmt->BindValue(":fid",$fid); - $stmt->BindValue(":info",shell_exec($bin_mediainfo." --Output=JSON ".$shellpath." 2>&1")); + $stmt->BindValue(":info",shell_exec($bin_mediainfo." --Output=JSON ".$shellpath." ".$redirect)); $sbatch[] = $stmt; $estring .= " ->minfo"; } else {