Proste rozwiązanie problemu bałaganu w pobranych plikach (~/Downloads
) bez używania jakichkolwiek dodatkowych rozwiązań ponad to, co jest już w systemie – wspomagając się jedynie Automatorem i PHP.
Krok pierwszy – krótki skrypt PHP porządkujący pliki według dat pobrania:
(aktualizacja: 29 listopada 2014)
<?php
$args = explode("\n", trim(file_get_contents('php://stdin')));
foreach ($args as $i => $name)
{
$bname = basename($name);
if ((is_dir($name) && (preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/', $bname) || preg_match('/^_.+?$/', $bname))) ||
preg_match('/^\..+?$/', $bname) ||
preg_match('/^.+?\.(part|download)$/', $bname))
continue;
if (filectime($name) > 0)
{
$date = date('Y-m-d', filectime($name));
if (!file_exists(dirname($name) . '/' . $date))
mkdir(dirname($name) . '/' . $date, 0777, true);
rename($name, dirname($name) . '/' . $date . '/' . $bname);
}
}
Code language: PHP (php)
Krok drugi – utworzenie „Czynności katalogu” w Automatorze i podpięcie pod nią wykonania powyższego skryptu.
![automator-01](https://i0.wp.com/marcin.laber.pl/wp-content/uploads/2014/10/automator-01-300x235.png?resize=300%2C235)
Utworzenie nowej „czynności katalogu”
![automator-02](https://i0.wp.com/marcin.laber.pl/wp-content/uploads/2014/10/automator-02-300x233.png?resize=300%2C233)
Ważne, aby konfiguracja czynności wyglądała tak jak na obrazku powyżej. W miejsce /sciezka/do/skryptu.php
należy oczywiście podstawić odpowiednią lokalizację swojego pliku PHP ze skryptem. Po ścieżce nie musi być $@
(mimo tego, że jest na zrzucie ekranu) a dane wejściowe powinny być skonfigurowane jako „do stdin”.
Co istotne, mechanizm ten działa z dowolnym oprogramowaniem które umieszcza pobrane pliki w wybranym w Automatorze katalogu.
Leave a Reply