From 9884d191082a3d597e11563fc3ad0c803b47f974 Mon Sep 17 00:00:00 2001 From: profiteroles Date: Tue, 9 Apr 2019 01:13:49 -0700 Subject: [PATCH] 0.7.9.3 --- MainMenu.nib/designable.nib | 337 ++++++++++------------------------ MainMenu.nib/keyedobjects.nib | Bin 42690 -> 37119 bytes Yuba.php | 91 ++++++--- filetypes.php | 7 - functions.php | 2 +- web/rtc.php | 24 ++- 6 files changed, 171 insertions(+), 290 deletions(-) diff --git a/MainMenu.nib/designable.nib b/MainMenu.nib/designable.nib index 2f1894d..578d787 100644 --- a/MainMenu.nib/designable.nib +++ b/MainMenu.nib/designable.nib @@ -52,20 +52,21 @@ - + + - + - + - + - + @@ -74,7 +75,7 @@ - + - + - + - - - - - + + + + + - + - + + - + - + - + - + @@ -639,11 +489,11 @@ Gw - + - + @@ -657,36 +507,28 @@ Gw - + - + + - + - - + - + - + - + @@ -695,7 +537,7 @@ Gw - + @@ -706,12 +548,21 @@ Gw + - + diff --git a/MainMenu.nib/keyedobjects.nib b/MainMenu.nib/keyedobjects.nib index de94f155c34fe295b3e816b30953f7cdc0a46283..7e12bedfa0d9db99d8cb6f681cbcdaecd0ac9114 100644 GIT binary patch delta 23161 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%0DJmr@Eh-}_%N&&xl^0bI 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 E56M;b+5i9m literal 42690 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

i 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"); -$df = shell_exec("df 2>&1"); -$df_volume = shell_exec("df ".escapeshellarg($zpath)." | tail -n 1 | rev | cut -d' ' -f1 | rev"); -$df_device = shell_exec("df ".escapeshellarg($zpath)." | tail -n 1 | cut -d' ' -f1"); -$mdutil = shell_exec("mdutil -s ".$df_volume); -if (strpos($mdutil,"disabled")) { - echo msg("Warning: spotlight indexing is disabled"); - $p['spotlight'] = false; - } - if (substr($zpath, 0, 9) != "/Volumes/") { $zbase = "/"; } else { @@ -115,14 +106,36 @@ if (substr($zpath, 0, 9) != "/Volumes/") { $zbase = "/Volumes/".$zparts[2]; } -$hdiutil = shell_exec("hdiutil info -plist 2>&1"); +$host = gethostname(); +$disks = shell_exec("diskutil list -plist 2>&1"); +$diskutil = shell_exec("diskutil info -plist ".$zbase." 2>&1"); +$diskutil_parsed = $parser->parseString(utf8_for_xml($diskutil)); +//print_r($diskutil_parsed); +$vdisks = shell_exec("hdiutil info -plist 2>&1"); +$vdisks_parsed = $parser->parseString(utf8_for_xml($vdisks)); +//print_r($vdisks_parsed); +$df = shell_exec("df 2>&1"); + + +// old method, new method is to parse plist +//$df_volume = trim(shell_exec("df ".escapeshellarg($zpath)." | tail -n 1 | rev | cut -d' ' -f1 | rev")); +//$df_device = trim(shell_exec("df ".escapeshellarg($zpath)." | tail -n 1 | cut -d' ' -f1")); + +$df_volume = $diskutil_parsed['MountPoint']; +$df_device = "/dev/".$diskutil_parsed['ParentWholeDisk']; + +$mdutil = shell_exec("mdutil -s ".$df_volume); +if (strpos($mdutil,"disabled")) { + echo msg("Warning: spotlight indexing is disabled"); + $p['spotlight'] = false; + } ///////////////////////////////////////////////////////////////////////////////////////////// // rewrite below to use diskutil info -plist // // // -$diskutil = shell_exec("diskutil info ".$zbase." 2>&1"); +$olddiskutil = shell_exec("diskutil info ".$zbase." 2>&1"); $getdetail = array( "Volume Name", "Protocol", "Volume UUID", @@ -132,7 +145,7 @@ $getdetail = array( "Volume Name", "Level Type" ); foreach ($getdetail as $detail) { - preg_match("/(".$detail.":)(.*)(\n)/",$diskutil,$matches); + preg_match("/(".$detail.":)(.*)(\n)/",$olddiskutil,$matches); if (isset($matches[2])) { if (substr($detail, -5, 5) == "Space") { $pieces = explode(" ", trim($matches[2])); @@ -162,9 +175,22 @@ if ($zpath == "/") { // ///////////////////////////////////////////////////////////////////////////////////////////// +if ($type == "Disk image") { + $hdiutil = shell_exec("hdiutil imageinfo -plist ".$df_device." 2>&1"); + foreach ($vdisks_parsed['images'] as $id => $disk) { + if ($disk['system-entities'][0]['dev-entry'] == $df_device) { + $image_file = $disk['image-path']; + } + } + } else { + $hdiutil = false; + $image_file = false; + } + if ($wopt_noprofile) { $profile = "disabled"; } else { + echo msg("system_profiler"); $profile = shell_exec("system_profiler SPHardwareDataType SPStorageDataType SPThunderboltDataType SPUSBDataType 2>&1"); } $qlmanage = shell_exec("qlmanage -m 2>&1"); @@ -203,13 +229,15 @@ $dbo->exec("CREATE TABLE _skim ( details TEXT, qlmanage TEXT, sysvers TEXT, - diskutil TEXT, - hdiutil TEXT, disks TEXT, - df TEXT, - df_device TEXT, - df_volume TEXT, - mdutil TEXT, + diskutil TEXT, + vdisks TEXT, + hdiutil TEXT, + image_file TEXT, + df TEXT, + df_device TEXT, + df_volume TEXT, + mdutil TEXT, profile TEXT, status TEXT )"); @@ -252,7 +280,7 @@ $dbo->exec("CREATE TABLE files ( contents_filename TEXT )"); -$stmt = $dbo->prepare("INSERT INTO _skim VALUES (:version, :opts, :host, :uid, :zpath, :bpath, :type, :passed_file, :passed_dir, :passed_link, :passed_total, :nodescended, :ignored, :dupes, :details, :qlmanage, :sysvers, :diskutil, :hdiutil, :disks, :df, :df_device, :df_volume, :mdutil, :profile, :status)"); +$stmt = $dbo->prepare("INSERT INTO _skim VALUES (:version, :opts, :host, :uid, :zpath, :bpath, :type, :passed_file, :passed_dir, :passed_link, :passed_total, :nodescended, :ignored, :dupes, :details, :qlmanage, :sysvers, :disks, :diskutil, :vdisks, :hdiutil, :image_file, :df, :df_device, :df_volume, :mdutil, :profile, :status)"); $stmt->BindValue(":version",$version); $stmt->BindValue(":opts",serialize($p)); $stmt->BindValue(":host",$host); @@ -263,9 +291,11 @@ $stmt->BindValue(":type",$type); $stmt->BindValue(":details",$dstring); $stmt->BindValue(":qlmanage",$qlmanage); $stmt->BindValue(":sysvers",$sysvers); -$stmt->BindValue(":diskutil",$diskutil); -$stmt->BindValue(":hdiutil",$hdiutil); $stmt->BindValue(":disks",$disks); +$stmt->BindValue(":diskutil",$diskutil); +$stmt->BindValue(":vdisks",$vdisks); +$stmt->BindValue(":hdiutil",$hdiutil); +$stmt->BindValue(":image_file",$image_file); $stmt->BindValue(":df",$df); $stmt->BindValue(":df_device",$df_device); $stmt->BindValue(":df_volume",$df_volume); @@ -480,6 +510,9 @@ foreach ($family as $key => $item) { echo ProgressBar::finish(); +// create an index for family db +$dbo->exec("CREATE INDEX family_index ON family (pid)"); + unset($dx, $dxo, $dupes); // stats @@ -781,7 +814,6 @@ if ($p['spotlight']) { $mdls = shell_exec("mdls -plist - ".$shellpath." 2>&1"); if (substr_count(@$mdls,"\n") > 1) { - $parser = new plistParser(); $spotlight = $parser->parseString(utf8_for_xml($mdls)); } else { $spotlight = array(); @@ -939,7 +971,7 @@ foreach ($files as $splFileInfo) { $stmt->BindValue(":gfi_type",$writegfitype); $stmt->BindValue(":gfi_attr",@$gfi['attributes']); - $stmt->BindValue(":gfi_created",strtotime($gfi['created'])); + $stmt->BindValue(":gfi_created",strtotime(@$gfi['created'])); // ------------------------------------------------ // @@ -1091,7 +1123,7 @@ while ($row_a = $loop->fetch()) { $m['m']['SkimTrackCount'] = @count($decoded['File']['track']); - @foreach ($decoded['File']['track'] as $track) { + foreach (@$decoded['File']['track'] as $track) { if (!@$m['m']['SkimDims'] && @$track['Width'] && @$track['Height']) { $m['m']['SkimDims'] = sanitize($track['Width'],"i").$delimiter.sanitize($track['Height'],"i"); } @@ -1174,7 +1206,8 @@ if ($p['rsync_dest']) { echo ProgressBar::finish(); } -echo msg("Finished in ".$seconds." seconds"); +$done = "Finished ".$zpath." in ".$seconds." seconds"; +echo msg($done); ncenter($done); unset($dbo, $dbp, $files, $family, $fx); diff --git a/filetypes.php b/filetypes.php index 5d3ccaa..926303b 100755 --- a/filetypes.php +++ b/filetypes.php @@ -3,13 +3,6 @@ // Filetypes ////////////////////////////////////////// -$c_files = array( "txt", - "rtf", - "rtfd", - "xls", - "log", - "webloc" ); - $t_files['ffmpeg'] = array( "mkv", "avi", "mpeg", diff --git a/functions.php b/functions.php index 60ac44a..8db4fe0 100755 --- a/functions.php +++ b/functions.php @@ -155,7 +155,7 @@ function human_filesize($bytes, $decimals = 2) { return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$size[$factor]; } -function ncenter($string, $title = "DropToPTP") { +function ncenter($string, $title = "Skim") { exec("osascript -e 'display notification \"".$string."\" with title \"".$title."\"'"); } diff --git a/web/rtc.php b/web/rtc.php index 900b132..388c456 100644 --- a/web/rtc.php +++ b/web/rtc.php @@ -1,10 +1,10 @@ px; height: px; padding: px; } div.item { font-size: 11px; } @@ -224,13 +226,14 @@ if ($db_file) { if (!is_readable($db_file)) { echo "can't read db file"; die; } $dbo = new PDO("sqlite:".$db_file); - $dbx = new PDO("sqlite:".dirname($db_file)."/pool.sqlite3"); + $dbp = new PDO("sqlite:".dirname($db_file)."/pool.sqlite3"); $dbo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); - $dbx->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); + $dbp->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); // Get zpath $zpath = $dbo->query("SELECT zpath FROM _skim")->fetch()['zpath']; + $skim_version = $dbo->query("SELECT version FROM _skim")->fetch()['version']; // Check for initial view @@ -322,18 +325,18 @@ if ($db_file) { // newer version stores rowid rather than 0 or 1 for has_exif etc if (isset($row_a['has_exif'])) { - $row_c = $dbx->query("SELECT * FROM exiftool WHERE (rowid='".$row_a['has_exif']."')")->fetch(); + $row_c = $dbp->query("SELECT * FROM exiftool WHERE (rowid='".$row_a['has_exif']."')")->fetch(); } if (isset($row_a['has_mediainfo'])) { - $row_d = $dbx->query("SELECT * FROM mediainfo WHERE (rowid='".$row_a['has_mediainfo']."')")->fetch(); + $row_d = $dbp->query("SELECT * FROM mediainfo WHERE (rowid='".$row_a['has_mediainfo']."')")->fetch(); } } else { // fetch exif and mediainfo by slower fid - $row_c = $dbx->query("SELECT * FROM exiftool WHERE (fid='".$row_a['fid']."')")->fetch(); - $row_d = $dbx->query("SELECT * FROM mediainfo WHERE (fid='".$row_a['fid']."')")->fetch(); + $row_c = $dbp->query("SELECT * FROM exiftool WHERE (fid='".$row_a['fid']."')")->fetch(); + $row_d = $dbp->query("SELECT * FROM mediainfo WHERE (fid='".$row_a['fid']."')")->fetch(); } @@ -583,7 +586,7 @@ if ($db_file) { echo number_format($info['passed_total'])." files, "; if ($info['image_file']) { echo $info['image_file'].", "; } echo $status; - if (strpos($info['spotlight_status'],"disabled")) { echo " (no spotlight)"; } + if (strpos($info['mdutil'],"disabled")) { echo " (no spotlight)"; } echo ""; } echo ""; @@ -592,7 +595,8 @@ if ($db_file) { ///////////////////////////////////////////////////////////////// -echo "



".round($time = microtime(true)-$_SERVER["REQUEST_TIME_FLOAT"],2)." seconds"; +echo "
".round($time = microtime(true)-$_SERVER["REQUEST_TIME_FLOAT"],2)." seconds
"; +echo "
Skim version = ".$skim_version.", RTC Browser Version = ".$browser_version."
"; ?>