﻿{"id":2618,"date":"2015-10-26T08:00:32","date_gmt":"2015-10-26T07:00:32","guid":{"rendered":"http:\/\/www.flapane.com\/blog\/?p=2618"},"modified":"2017-12-29T12:47:30","modified_gmt":"2017-12-29T11:47:30","slug":"applescript-monitorare-una-cartella-e-segnalare-nuovi-file","status":"publish","type":"post","link":"https:\/\/www.flapane.com\/blog\/2015\/10\/applescript-monitorare-una-cartella-e-segnalare-nuovi-file\/","title":{"rendered":"Applescript: monitorare una cartella e segnalare nuovi file"},"content":{"rendered":"<p>Nel <a href=\"\/blog\/2015\/10\/howto-condividere-la-cartella-pubblica-del-mac-anche-su-internet\">precedente articolo<\/a>, ho parlato di come <strong>rendere visibile la cartella pubblica<\/strong> del proprio Mac anche all&#8217;esterno, in modo da <strong>permettere a chiunque<\/strong>, fosse anche al Polo Nord, <strong>di accedervi<\/strong>.<\/p>\n<p>Bene, supponiamo che questo povero disgraziato si connetta, dal Polo Nord, alla vostra cartella pubblica (condivisa), e vi carichi alcuni documenti importanti: <strong>come fate a sapere che \u00e8 stato caricato un nuovo file<\/strong>, a meno di non essere avvertiti per telefono o per email?<\/p>\n<p>In nostro aiuto ci arriva <strong>Applescript<\/strong>, simpatico linguaggio di programmazione made in Cupertino, che \u00e8 in grado di effettuare un&#8217;azione, qualora si verifichino determinate condizioni.<!--more--><\/p>\n<p>L&#8217;idea, nel nostro caso, \u00e8:<\/p>\n<ul>\n<li>Monitora la cartella condivisa, e segnala l&#8217;arrivo di nuovi file<\/li>\n<li>Escludi dal conto i file nascosti (che iniziano col .), utilizzati da OSX<\/li>\n<li>Aspetta che l&#8217;upload del file sia effettivamente completato<\/li>\n<li>Emetti un suono<\/li>\n<li>Mostra un pop-up, che avvisa della presenza del file, qualora non si sia sentito il suono<\/li>\n<\/ul>\n<p>Apriamo l&#8217;app &#8220;Script Editor.app&#8221;, e digitiamo queste righe di codice:<\/p>\n<p>[bash]&#8211; Una volta &quot;attaccato&quot; ad una cartella, verra suonato un avviso sonoro ogni volta che un nuovo file verra&#8217; creato nella cartella<br \/>\non adding folder items to this_folder after receiving added_items<br \/>\n\u00a0\u00a0 \u00a0if name of (info for added_items) does not start with &quot;.&quot; then<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&#8211;&gt; Aspetta che la cartella non cambi dimensione ed il file sia caricato<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0repeat<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0set x to (info for this_folder with size)<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0delay 1<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0set y to (info for this_folder with size)<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if x = y then exit repeat<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0end repeat<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0try<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0tell application &quot;Finder&quot;<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0do shell script &quot;afplay &#8216;\/System\/Library\/PrivateFrameworks\/ToneLibrary.framework\/Versions\/A\/Resources\/AlertTones\/tweet_sent.caf&#8217;&quot;<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0display alert &quot;Nuovo file in cartella Pubblica o su Airport USB&quot;<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0end tell<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0on error<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0display dialog &quot;Error occured&quot;<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0end try<br \/>\n\u00a0\u00a0 \u00a0end if<br \/>\nend adding folder items to[\/bash]<\/p>\n<p>Salviamo lo script in ~\/Libreria\/Scripts\/Folder Action Scripts\/<\/p>\n<p>Selezioniamo la cartella che vogliamo monitorare, clic sul tasto destro, clic su &#8220;<strong>Servizi-&gt;Impostazione Azioni cartella<\/strong>&#8220;, e selezioniamo lo script appena creato.<\/p>\n<p>Se tutto \u00e8 andato bene, copiando un file nella cartella, dovreste sentire un cinguettio, e dovrebbe apparirvi un pannello come il mio:<\/p>\n<p><a href=\"https:\/\/www.flapane.com\/blog\/wp-content\/uploads\/2015\/09\/alert-nuovo-file.png\" rel=\"lightbox[2618]\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-2620 size-full image\" src=\"https:\/\/www.flapane.com\/blog\/wp-content\/uploads\/2015\/09\/alert-nuovo-file.png\" alt=\"Alert: nuovo file nella cartella\" width=\"467\" height=\"167\" srcset=\"https:\/\/www.flapane.com\/blog\/wp-content\/uploads\/2015\/09\/alert-nuovo-file.png 467w, https:\/\/www.flapane.com\/blog\/wp-content\/uploads\/2015\/09\/alert-nuovo-file-300x107.png 300w\" sizes=\"(max-width: 467px) 100vw, 467px\" \/><\/a><\/p>\n<p>Le possibilit\u00e0 di sbizzarrirsi con Applescript sono infinite. Se modificate questo script ed avete proposte su come migliorarlo, non esistate a lasciare un commento!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bene, supponiamo che questo povero disgraziato si connetta, dal Polo Nord, alla vostra cartella pubblica (condivisa), e vi carichi alcuni documenti importanti: come fate a sapere che \u00e8 stato caricato un nuovo file, a meno di non essere avvertiti per telefono o per email?<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[25],"tags":[301,24,302,15],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/posts\/2618"}],"collection":[{"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/comments?post=2618"}],"version-history":[{"count":0,"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/posts\/2618\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/media?parent=2618"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/categories?post=2618"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/tags?post=2618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}