There is a similar post here:
viewtopic.php?p=212489&hilit=file+page+number#p212489
but it only covers PDFs.
Both tasks were completed with great help from XYplore community - especially thanks to @highend and @admin for their support and swift actions, and of course to Claude AI, my coding buddy
- Pages
Code: Select all
$ext = recase(gpc("<cc_item>", "ext"), "lower");
if ($ext == "pdf") {
$result = runret(lax("C:\Tools\Poppler\poppler-25.12.0\Library\bin\pdfinfo.exe" "<cc_item>"), , 65001);
$line = regexmatches($result, "Pages:\s+\d+");
return regexmatches($line, "\d+");
}
if ($ext == "docx" || $ext == "doc") {
$result = runret("powershell -NoProfile -Command ""Add-Type -AssemblyName System.IO.Compression.FileSystem; try { $z=[System.IO.Compression.ZipFile]::OpenRead('<cc_item>'); $e=$z.GetEntry('docProps/app.xml'); if(!$e){$z.Dispose();exit}; $s=$e.Open(); $r=New-Object System.IO.StreamReader($s); $c=$r.ReadToEnd(); $r.Close(); $z.Dispose(); [xml]$x=$c; $p=$x.Properties.Pages; if($p -match '^\d+$'){$p}else{''} } catch {''}"" ", , 65001);
return regexreplace(trim($result), "\D", "");
}- Age-colour
Code: Select all
$dateM = property("#date.m", "<cc_item>");
$diff = datediff($dateM, , "n");
$h = floor($diff / 60);
$d = floor($diff / 1440);
$M = floor($diff / 43200);
$y = floor($diff / 525600);
$rm = $diff - ($h * 60);
if ($diff < 0) { $label = "future"; }
elseif ($diff < 60) { $label = $diff . "'"; }
elseif ($diff < 1440) { if ($rm > 0) { $label = $h . " h " . $rm . "'"; } else { $label = $h . " h"; } }
elseif ($diff < 2880) { $label = "1 d"; }
elseif ($diff < 10080) { $label = $d . " d"; }
elseif ($diff < 43200) { $label = $d . " d"; }
elseif ($diff < 525600) { $label = $M . " M"; }
else { $label = $y . " y"; }
if ($diff < 0) {
$r = 170; $g = 238; $b = 221;
} elseif ($diff <= 1440) {
$t = $diff / 1440;
$r = floor(244 - (4 * $t));
$g = floor(167 + (90 * $t));
$b = floor(158 - (36 * $t));
} elseif ($diff <= 10080) {
$t = ($diff - 1440) / 8640;
$r = floor(240 - (90 * $t));
$g = floor(225 - (8 * $t));
$b = floor(122 + (28 * $t));
} elseif ($diff <= 43200) {
$t = ($diff - 10080) / 33120;
$r = floor(150 - (21 * $t));
$g = floor(221 - (14 * $t));
$b = floor(150 + (74 * $t));
} elseif ($diff <= 525600) {
$t = ($diff - 43200) / 482400;
$r = floor(125 + (32 * $t));
$g = floor(207 - (23 * $t));
$b = floor(224 + (16 * $t));
} else {
$t = min(($diff - 525600) / 525600, 1);
$r = floor(157 + (39 * $t));
$g = floor(184 - (22 * $t));
$b = floor(240 - (16 * $t));
}
$color = hex($r, 2) . hex($g, 2) . hex($b, 2);
$bar = ">draw.bar 100, " . $color . ", " . $color;
return $bar . " | " . $label;
XYplorer Beta Club