Alfred Workflows for Intermediates

Ben tornato! Dal momento che stai leggendo questo, devi aver apprezzato il tutorial del principiante. Grande! Ora, scaviamo un po 'più a fondo creando un flusso di lavoro che aiuti a gestire la nostra cartella Download, oltre a un Project Manager.

Scarica Tamer Workflow

Sto caricando / scaricando costantemente file da e verso la rete e creando screenshot che vanno automaticamente nella mia cartella Download. Consequentemente, la mia cartella Download diventa molto caotica. Questo è il modo in cui lo domando.


Creazione del flusso di lavoro: download domatore

Innanzitutto, crea un nuovo flusso di lavoro etichettandolo Scarica Tamer. La descrizione è impostata su Un flusso di lavoro per lavorare con gli elementi nella cartella Download, ma puoi farcela come vuoi. L'ID del bundle è com.customct.MTDownload.

L'ID bundle è molto importante e dovrebbe essere davvero unico per il flusso di lavoro. Uso sempre l'indirizzo del sito e il nome del flusso di lavoro per identificare in modo univoco il flusso di lavoro.

L'autore può essere te. Il sito web è il tuo sito web, o nulla.

Filtri di file

Il Filtri di file il blocco è un'unità molto flessibile e potente. È un ottimo punto di partenza per lavorare con i file in un flusso di lavoro. Ad esempio, offre un modo semplice per cercare i file.


Filtro file: Opzioni prima pagina

Seleziona un Filtro file bloccare e completarlo come mostrato sopra. Imposta la parola chiave su mtdl: oggi, il titolo segnaposto a MT: download di file, e il segnaposto sottotesto a Caricamento del messaggero di oggi ... .

Se vuoi concentrarti solo su un tipo di file, puoi trascinare un file di esempio sul file Tipi di file scatola. L'intento qui è quello di trovare qualsiasi tipo di file su o intorno a un determinato giorno. Pertanto, la casella Tipi di file non viene utilizzata in questo esempio.


Filtro file: opzioni di ricerca

Selezione Ambito di ricerca, ci dà la seconda pagina di opzioni. Usando il Finder, trascina il download directory dal Finder al Ambito di ricerca la zona. Questo dice ad Alfred di cercare solo i file in queste directory. Poiché questo flusso di lavoro è interessato solo alla cartella Download, sarà sufficiente.


Filtro file: opzioni avanzate

Selezione Avanzate ci darà le opzioni avanzate. Qui, imposta il Intervallo di date a Oggi in modo che mostrerà solo i file creati oggi. stampa Salvare e la prima funzione del nostro flusso di lavoro sarà completa.

Il campi area fornisce un elenco di campi che è possibile cercare per le informazioni pertinenti. Questo può davvero dare alla tua ricerca più potenza per trovare specificamente ciò che viene cercato. Per ogni campo, puoi impostare il Parole bandiera per cercare all'interno di parole bourndries. Il Diviso flag dividerà ogni parola in per separare i parametri che verranno cercati individualmente.

Il Precisione la bandiera è usata per fare in modo che la ricerca non inizi con una jolly se la Parole flag è disabilitato. In altre parole, se il Parole flag non è impostato, l'impostazione di questo flag renderà la ricerca sempre basata sull'inizio del testo e non nel mezzo. Se la Parole la bandiera è impostata, questa bandiera non ha significato.

Queste diverse bandiere possono confondersi su come usarle. È possibile impostare diversi casi di test e vedere come ciascuno influisce sui risultati. Generalmente, tengo sempre il Parole e Diviso set di bandiere.

Quello che ora è stato creato è un browser di file che mostrerà solo i file nella directory dei download che sono stati aggiunti oggi. Ora, per fare qualcosa con il file selezionato.


Scarica Tamer: aggiunta di apertura del file

Dal + menu, selezionare Apri il file bloccare e collegarlo al Filtro file bloccare. Ora, quando il mtdl: oggi comando eseguito, apparirà un elenco di file scaricati oggi. Selezionarne uno lo farà aprire nell'applicazione preferita per quel tipo di file.


Scarica Tamer: aggiunta anteprima - Script

A volte vuoi solo dare una rapida occhiata al file. OS X ha questo integrato, ma come utilizzarlo? Ecco dove gli script di shell arrivano in mano. Aggiungere un Esegui script bloccare e collegarlo al Filtro file blocco, proprio come il Apri il file bloccare.

Impostare il linguaggio a / Usr / bash. Nel copione area, digitare qlmanage -p "query"> & / dev / null &. Deseleziona tutto Escaping scelte in modo che il nome del file non venga modificato.

Notare il Interrogazione macro. Questa macro si espanderà in tutto ciò che è stato passato a questo blocco dal blocco precedente. In questo caso, sarà il percorso completo del file in download elenco.

Ciò che questo blocco farà è sostituire il Interrogazione stringa con il percorso completo del file selezionato, quindi esegui lo script come script di shell bash.

Mancia: Tutti gli script vengono eseguiti direttamente senza leggere nei file delle preferenze per il tipo di script. Pertanto, il tuo file ".bashrc" non verrà caricato in uno script bash, né il tuo file ".zshrc" in uno script zsh. La semplice installazione dell'ambiente da parte del sistema è a posto.

Se i comandi utilizzati richiedono alcune variabili di ambiente impostate, è necessario caricare manualmente il file delle preferenze o aggiungere le variabili di ambiente al proprio script.

Alfred funziona in questo modo per eseguire gli script più velocemente. Ma può rendere difficile scrivere script che funzionano la prima volta!


Download Tamer: aggiunta del modificatore di chiave di controllo

Puoi collegare tanti blocchi a un singolo blocco come desideri. Ma se ora esegui la macro, aprirà il file nella sua applicazione predefinita e in anteprima veloce! Questo in realtà non è il comportamento necessario.


Download Tamer: aggiunta dell'opzione di anteprima

Per risolvere questo problema, fare doppio clic sulla linea che va al Esegui script bloccare. Questo ti permetterà di impostare un Modificatore di azione e a Modificatore Subtext. Impostali come vedi qui. Quello che fa è permetterti di cambiare l'azione del Filtro file blocco basato su un tasto modificatore. Ora, se selezioni solo un file, si aprirà nella sua applicazione predefinita. Ma se si tiene il Controllo mentre si seleziona un file, verrà invece visualizzata l'anteprima del file.


Download Tamer: anteprima in Alfred

Il flusso di lavoro dovrebbe ora assomigliare a questo. Puoi vedere il tag modificatore sulla linea che va al Esegui script bloccare. In questo modo, è facile vedere come attivare ciascuna azione.


Scarica Tamer: aggiunta di Elimina nel cestino - Script

Quando viene attivato il flusso di lavoro, se si tiene premuto il tasto Controllo chiave, il testo sotto il nome del file sarà cambiato in Anteprima. Ora userà il sistema di anteprima OS X (Quick Look) per visualizzare il file.


Scarica Tamer: aggiunta di Elimina al cestino

La prossima funzione è cancellare il file. Ancora una volta, è possibile utilizzare uno script bash per eseguire questa operazione. Aggiungere un Esegui script bloccare. Ricordarsi di deselezionare tutto il Escaping scelte e impostarlo per eseguire uno script bash.

Ora per alcune decisioni di design. Potresti semplicemente usare il rm -f comando per rimuovere forzatamente il file dalla directory Downloads. Ma non puoi mai annullare quella decisione. Pertanto, sarebbe meglio spostare il file nella cartella Cestino OS X. Dal momento che non esiste una riga di comando integrata per questo, dovrai scaricare il lavoro di qualcun altro e farne uso. Ricordati di dire agli altri di usare il tuo flusso di lavoro per ottenere il programma. I programmi gratuiti sono fantastici!

Pertanto, scarica il programma della riga di comando cestino e mettilo nel tuo percorso (/ Usr / local / bin sarebbe bene. Il programma viene fornito con uno script di installazione.). Quindi compilare l'area di script con / usr / local / bin / trash "query". Dovrebbe assomigliare allo screenshot qui sopra.


Scarica Tamer: aggiunta di Elimina al cestino

Imposta quella linea per usare il Funzione tasto modificatore. Ora, quando si seleziona un file con il Funzione premuto il tasto, il file verrà spostato nel cestino. Se si desidera ripristinarlo, basta aprire la cartella cestino e dirgli di ripristinare l'oggetto.


Scarica Tamer: aggiunta Apri nel blocco Alfred

Ora, aggiungi un Sfoglia in Alfred bloccare. Questo ci permetterà di utilizzare le azioni create da Alfred sui file nella cartella. Cambia la connessione per il Sfoglia in Alfred blocco a Cambio tasto modificatore.

Mancia: Non hai davvero bisogno di aggiungere un Apri nel Finder bloccare. Questa è l'azione predefinita di Comando digitare il browser Alfred.
Scarica Tamer: Alfred Browser

Questo è il browser Alfred. Dal momento che ho solo un file lì adesso, è l'unico mostrato. Con quel file selezionato, puoi premere il tasto freccia destra chiave, otterrai un elenco di azioni da intraprendere su quel file.


Scarica Tamer: Alfred Browser - File Actions

Con questo elenco di azioni, puoi scorrere per vederle tutte o iniziare a digitare il nome dell'azione per ridurre le dimensioni dell'elenco finché non trovi quello che desideri. Esistono alcune azioni di file predefinite e molti flussi di lavoro aggiungono le proprie azioni sui file.

Supponiamo che il software screenshot salvi le immagini nella cartella Download (la maggior parte salva sul desktop, ma non mi piace ingombrare il mio desktop, quindi le ho salvate nella mia cartella Download.). UN Invia al progetto corrente l'azione sui file mi aiuterebbe a ripulire questi file nel mio download cartella.

Flusso di lavoro del project manager

UN File Action Il blocco consente la creazione di nuove azioni da intraprendere su un file o un gruppo di file selezionati in Alfred Browser. Dal Sposta su Progetto corrente l'azione sui file non rientra nell'ambito di a Scarica Tamer, è necessario creare un nuovo flusso di lavoro per gestire il nostro progetto.


Scarica Tamer: Project Manager Workflow

Crea un nuovo flusso di lavoro ed etichettalo Responsabile del progetto. La descrizione è impostata su Un flusso di lavoro per aiutare a gestire i tuoi progetti., ma puoi farcela come vuoi.

L'ID del bundle è com.customct.MTProject. L'ID bundle è molto importante e dovrebbe essere davvero unico per il flusso di lavoro. Uso sempre l'indirizzo del mio sito in ordine di ricerca inversa (tratto dalle convenzioni di denominazione DNS) e il nome del flusso di lavoro per identificare in modo univoco il flusso di lavoro. L'autore può essere te. Il sito web è il tuo sito web o nulla.

Azioni sui file

Ora che abbiamo un flusso di lavoro per gestire il nostro progetto, possiamo usare a File Action blocco per spostare i file nella nostra directory di progetto selezionata.


Scarica Tamer: File Action - Move to Current Project

Creare un File Action blocco con il nome impostato su Sposta su Progetto corrente. Inoltre, selezionare l'opzione per accettare più file. In questo modo, sarà possibile selezionare molti file e avere il File Action lavora su tutti loro contemporaneamente. Dato che qualsiasi tipo di file è permesso, lascerai il tipi area vuota.


Scarica Tamer: File Action - Move to Current Project - Script

Per eseguire il lavoro, è necessario utilizzare a Esegui script blocco per fare il lavoro muscolare. Impostare il linguaggio a / Bin / bash e spegni tutto il Escaping opzioni. Imposta lo script su:

 / bin / mv "query" ~ / projects / myproject

Il ~ / Progetti / myproject dovrebbe essere cambiato nella directory del progetto corrente. Questo è l'approccio hard coded che non è troppo condivisibile, ma che verrà risolto in seguito.

Con i due blocchi collegati in questo modo, puoi inviare qualsiasi singolo file alla nostra directory di progetto corrente. Ma il File Action il blocco è impostato per consentire l'invio di più file. Quando vengono selezionati più file in Alfred Browser utilizzando Opzione-Shift, Alfred invierà l'elenco dei file al tuo File Action in un elenco separato da una scheda (è possibile trovare una descrizione completa dell'utilizzo del buffer file in Alfred Support)..

Per risolvere questo problema, è necessario eseguire altri script. Cambia lo script nel modo seguente:

 generate_list () echo "query" projDir = "~ / your / project"; per il filen in $ (lista_generazione) fai mv "$ filen" "$ projDir"; fatto

Il tuo Esegui script il blocco dovrebbe ora assomigliare a questo:


Scarica Tamer: File Action - Move to Current Project - Script corretto

Il generate_list la funzione è un modo rapido per trasformare la stringa separata da tabulazione in un elenco di valori per il ciclo for. Il ciclo for ... assegnerà ogni elemento nell'elenco a $ filen variabile e eseguire la mossa. Ho impostato la directory del progetto su una variabile. Il passo successivo è riempire la variabile dinamicamente invece di codificare il valore.

Mancia: Si noti l'uso di virgolette doppie attorno alle variabili nel mv dichiarazione. Ciò assicura che il tuo percorso sarà seguito correttamente anche se ci sono spazi nei nomi dei percorsi. Questo è molto importante da ricordare. Molti script muoiono a causa di questo problema.

Scripting in Alfred

Per correggere il problema della codifica hard della directory del progetto, è necessario utilizzare un modo per archiviare le informazioni. Alfred si prende cura di questo consentendo ai flussi di lavoro di avere due aree di archiviazione dei dati chiamate dati e cache.

La directory di archiviazione dei dati è per l'archiviazione a lungo termine delle informazioni. Spetta al flusso di lavoro mantenere aggiornate le informazioni e relaventare.

La directory della cache è per informazioni temporanee. I programmi che cancellano le cache dei dati sul tuo sistema cancelleranno automaticamente questi file.

In futuro, Alfred creerà e cancellerà automaticamente queste directory. Ma al momento, è compito del flusso di lavoro mantenerli.

La directory dei dati si trova a ~ / Libreria / Supporto applicazione / Alfred 2 / Dati flusso di lavoro / BundleID.

La directory della cache si trova in ~ / Libreria / Caches / com.runningwithcrayons.Alfred-2 / Dati flusso di lavoro / BundleID.

Il BundleID è l'ID bundle dato al flusso di lavoro quando lo hai creato. Poiché ogni flusso di lavoro è rappresentato in queste directory, è molto importante che ogni flusso di lavoro abbia un ID pacchetto diverso.

Mancia: Ricorda: il ~ è il modo in cui Unix fa riferimento alla tua home directory.

Come puoi vedere, queste strutture di directory hanno già degli spazi nei loro nomi. Questo è il motivo per cui devi davvero prenderti cura di loro correttamente quando scrivi degli script.

Alfred Esegui script il blocco consente di utilizzare direttamente una varietà di linguaggi di programmazione. Ad esempio, uno script può essere scritto in bash, zsh, AppleScript (noto anche come osascript sulla riga di comando), PHP, Python, Pearl o Ruby. Indirettamente, puoi usare uno script bash o zsh per eseguire uno script in qualche altra lingua, come il nodo.

Il motivo per cui Alfred elenca solo queste lingue è perché sono le uniche lingue disponibili sulla piattaforma Mac OS X automaticamente. Qualsiasi altra lingua sarebbe stata installata dall'utente.

Inoltre, Alfred chiama solo la lingua dal luogo in cui è stata originariamente installata. Se installi un'altra versione di Ruby, dovresti fare riferimento direttamente a uno script di shell invece di usare il descrittore di script Ruby standard in un Esegui script bloccare.

Se si crea un flusso di lavoro che richiede l'installazione di un altro linguaggio di programmazione, assicurarsi che l'utente ne sia a conoscenza nella descrizione del flusso di lavoro. Si consiglia inoltre di inserire tali informazioni nel file Leggimi area del flusso di lavoro.

Per utilizzare questa conoscenza, è necessario modificare lo script nel modo seguente:

 ######################### # Contanti. ######################### VPREFS = "$ HOME /Library/Caches/com.runningwithcrayons.Alfred-2/Workflow Data /" NVPREFS = "$ HOME / Libreria / Supporto applicazione / Alfred 2 / Dati flusso di lavoro /" ############################################# ################################################ # Leggere il bundleid dal flusso di lavoro info.plist ########################################### ##################################### getBundleId () / usr / libexec / PlistBuddy -c " Stampa: bundleid "" info.plist " ######################################### ######################################## Ottieni la dir dei dati del flusso di lavoro ##### ################################################## ######################## getDataDir () local BUNDLEID = $ (getBundleId) echo "$ NVPREFS $ BUNDLEID" se [! -d "$ (getDataDir)"]; then mkdir -p "$ (getDataDir)"; toccare "$ (getDataDir) /projectDir.txt"; fi generate_list () echo "query" projDir = "cat" $ (getDataDir) /projectDir.txt ""; se [-z "$ projDir"]; quindi echo "Nessun progetto è impostato!"; Uscita; fi per filen in $ (generate_list) do mv "$ filen" "$ projDir"; done echo "I file sono stati spostati!";

La sezione in alto serve a definire le diverse posizioni delle directory dei dati in costanti da utilizzare nello script. È sempre buona prassi di programmazione inserire oggetti costanti e costanti in una costante da utilizzare per lo script. Pertanto, se ha bisogno di essere modificato da ultimo, sarà una cosa molto semplice da fare.


Scarica Tamer: apre il pulsante della cartella del flusso di lavoro

Successivamente, la funzione getBundleId utilizza un programma in OS X per leggere i plist per il flusso di lavoro, info.plist e recuperare tale id. Il plist si trova nella directory dei flussi di lavoro. Quando guardi a Esegui script blocco, si noterà in basso a destra della finestra di script è un pulsante etichettato Aprire la cartella del flusso di lavoro. Ciò aprirà la cartella per il tuo flusso di lavoro in Finder.

Se il tuo programma fa uso di grafica o altri script che non vengono mai modificati, questa è una grande area in cui archiviarli. Quando condividi un flusso di lavoro, questa intera directory viene compressa nel file del flusso di lavoro.

Il getDataDir la funzione utilizza semplicemente le costanti definite e l'ID bundle per creare il percorso della directory dei dati. La directory della cache non è utilizzata in questo esempio.

Il Se il blocco viene utilizzato per creare la nostra directory di dati e il file di dati utilizzato per la memoria della directory del progetto, se non esistono già. Tutti gli script che scrivi che fanno uso di queste directory devono avere questo tipo di codifica per funzionare correttamente. Non fare affidamento su una parola chiave di inizializzazione in quanto l'utente potrebbe non utilizzarla per prima!

La prossima modifica è come viene definita la variabile projDir. Semplicemente cat il contenuto del projectDir.txt file nella variabile. Pertanto, quel file dovrebbe avere una singola riga che contiene la directory per il nostro progetto.

Dopo aver ottenuto il ProjectDir set variabile, la validità dei dati deve essere verificata. Se l'utente non ha ancora impostato una directory di progetto, la variabile dovrebbe essere vuota. Pertanto, lo script verificherà una variabile vuota. Se è vuoto, invia un messaggio di avviso ed esci.

Mancia: Assicurati sempre che i tuoi dati siano corretti. Ciò mantiene molti errori fuori dai flussi di lavoro e aiuta gli altri a sentirsi come se avessero davvero consegnato un buon prodotto. Se lo dimentichi, puoi essere sicuro che tornerà a tormentarti fino alla morte!
Download Tamer: aggiunta di un blocco di post-notifica

Alla fine, lo script dice all'utente che i file sono stati spostati. Mi piace sempre dare un feedback all'utente. Aiuta l'utente a sentire che qualcosa viene fatto. Pertanto, i messaggi devono essere visualizzati in a Post notifica bloccare. Aggiungi uno alla fine del flusso di lavoro. Il tuo flusso di lavoro dovrebbe assomigliare all'immagine sopra.


Scarica Tamer: impostazione della directory di progetto: filtro file

Se la projectDir.txt il file è stato appena creato dallo script, quindi non conterrà alcuna informazione. Pertanto, un modo per impostare questo file deve essere fatto! Il modo più semplice è usare a Filtro file blocco impostato su directory come nel primo tutorial. Aggiungere un Filtro file blocca e riempilo come visto.


Scarica Tamer: Impostazione della directory di progetto: Esegui blocco di script

Ora, aggiungi un Esegui script bloccare con il seguente script:

 ######################### # Contanti. ######################### VPREFS = "$ HOME /Library/Caches/com.runningwithcrayons.Alfred-2/Workflow Data /" NVPREFS = "$ HOME / Libreria / Supporto applicazione / Alfred 2 / Dati flusso di lavoro /" ############################################# ################################################ # Leggere il bundleid dal flusso di lavoro info.plist ########################################### ##################################### getBundleId () / usr / libexec / PlistBuddy -c " Stampa: bundleid "" info.plist " ######################################### ######################################## Ottieni la dir dei dati del flusso di lavoro ##### ################################################## ######################## getDataDir () local BUNDLEID = $ (getBundleId) echo "$ NVPREFS $ BUNDLEID" se [! -d "$ (getDataDir)"]; then mkdir -p "$ (getDataDir)"; toccare "$ (getDataDir) /projectDir.txt"; fi echo "query"> "$ (getDataDir) /projectDir.txt"; echo "La directory del progetto è: query";

Notare, questa volta il Interrogazione la macro è usata due volte. Puoi usarlo tutte le volte che vuoi negli script.

La directory è passata da Filtro file il blocco sarà sempre una directory valida. Pertanto, non ha bisogno di essere testato. Basta farlo eco nel file nella nostra directory dei dati ed è sicuro.


Download Tamer: impostazione della directory di progetto: installazione finale

Quando connetti il Esegui script bloccare al Post notifica blocco, dovrebbe assomigliare alla foto sopra. Ora la directory del progetto può essere impostata e modificata con facilità.

Conclusione

Ora hai due nuovi flussi di lavoro per aiutarti nella tua routine quotidiana: uno per passare attraverso la cartella Download e uno per gestire i tuoi progetti. Prova ad espanderli con funzioni più utili. Ad esempio, creare a Filtro file e Apri il file azione per modificare i file di progetto o copiare il codice di cancellazione del file dal flusso di lavoro Downloads Tamer per eliminare i file dal progetto. Non impari mai finché non provi le cose da solo!

Il tutorial avanzato espanderà questi due flussi di lavoro con script ancora più complessi e farà uso di altre librerie per semplificare il lavoro con i flussi di lavoro Alfred. Divertiti con lo scripting!

Aggiornare: È ora disponibile un nuovo sito di condivisione del flusso di lavoro: Packal che promette di avere un flusso di lavoro per lavorare con questo sito.