Skriva Dropzone 3 Åtgärder

I Skrivningsdestinationer för Dropzone, Jag visade dig hur man skapar en enda fildestination för att förlänga Dropzone. Denna handledning bygger på den basen för att visa vad som är nytt i Dropzone 3 och hur man utnyttjar det.

Som tidigare kommer all kod att vara in Rubin. Om du inte vet hur man programmerar in Rubin, Jag föreslår att studera Ruby Fundamentals först.

Översikt

Dropzone 3 har förlorat destinationscirklarna som var unika för det ursprungliga programmet.

Dropzone 3

I Dropzone 3, alla åtgärder finns i rullgardinsmenyn i menyraden. Vad kallades a destination i den gamla versionen är nu en verkan. Detta bevarar tanken på att allt kan utföras på filerna eller texten släpptes på en given verkan.

Dropzone 3 släppte också användningen av en enda fil Rubin manus för en åtgärd. Dropzone 3 använder nu en speciell mapp i Mac OS X som döljer innehållet från den genomsnittliga användaren. En verkan kan nu innehålla andra stödjande filer som inte kommer att komma i vägen för andra åtgärder.

Menyn Möjliga åtgärder

Klicka på + symbolen i övre vänstra hörnet avslöjar alla Inbyggda åtgärder och någon Användaråtgärder.

Dropzone 3 Preferences

Klicka på kugghjulet i övre högra hörnet för att komma till Inställningar, Debug Console, Återställ åtgärder, och Hjälp menyer.

De Drop Bar högst upp i rullgardinsmenyn är ett praktiskt ställe att lagra filer samtidigt som du samlar in filer innan du släpper dem till en åtgärd. Att dra och släppa filer här flyttar inte dem. Det lagrar sina platser.

Den andra nivån med rubriken FOLDERS / APPS är en snabbstartsfält för något program eller mapp som placeras där. Om en fil släcks till en programikon, startar programmet med den filen som laddas.

Den sista nivån är åtgärder som är inställda att använda. Det finns ingen gräns för antalet åtgärder. Åtgärder kan användas mer än en gång, var och en har sina egna förinställningar.

Skapa en åtgärd

Skapa en ny åtgärd genom att välja Utveckla åtgärder i + meny.

Inbjuda utveckla åtgärd

Detta kommer att föra upp Utveckla åtgärder dialog.

Utveckla handlingsdialog

Fyll i dialogrutan som ovan och tryck på Skapa åtgärd. Redigeraren som systemet har konfigurerat för Ruby-skript öppnas med den skapade åtgärdsfilen. De action.rb filen är utgångspunkten för åtgärden.

Action Directory

Med hjälp av redigeraren för att avslöja placeringen av den här filen hittar du den i katalogen ~ / Bibliotek / Application Support / Dropzone 3 / Actions. I den här katalogen heter en särskild katalog Unpack.dzbundle som innehåller action.rb fil och standard icon.png fil. Alla filer för åtgärden måste vara här. De icon.png filen är den bild som Dropzone visar i rullgardinsmenyn. Ersätt detta med det som anges i nedladdningen.

Standard startfil ger en grundläggande översikt över Dropzone 3 API. Ta bort allt utom rubriken för det här exemplet.

# Dropzone Action Info # Name: Packa upp # Beskrivning: Denna åtgärd packar upp zip-filer i en angiven katalog. # Handtag: Filer # Skapare: Richard Guay # URL: http://customct.com # Händelser: Clicked, Dragged # KeyModifiers: Kommando, Alternativ, Kontroll, Skift # SkipConfig: Nej # RunsSandboxed: Ja # Version: 1.0 # MinDropzoneVersion: 3,2 

Rubriken är mestadels den föregående versionen. Jag ska gå över de nya och ändrade artiklarna. Vänligen hänvisa till Skrivningsdestinationer för Dropzone för varor som inte omfattas.

handtag

Denna beskrivning är inte ny, men mycket förenklad. Det möjliga handtag är nu filer, Text, eller båda separerade med ett komma. Innan var det mer teknisk term för samma sak. För denna åtgärd, sätt filer endast.

KeyModifiers

När den är inställd, kommer Dropzone att ställa in miljövariabeln för nyckelmodifierare som hålls nere under dra och släppa eller klicka på åtgärder. Eftersom den här åtgärden inte behöver modifierare, raderar du den raden.

SkipConfig

Den här rubriken berättar om Dropzone om åtgärden behöver konfigureras eller inte. Den här åtgärden behöver denna inställning ställas in på falsk.

Version

Den här rubriken är att berätta för Dropzone vilken version den är. Detta är för enklare uppdatering.

MinDropzoneVersion

Den här rubriken anger den lägsta Dropzone-versionen som åtgärden behöver.

Efter MinDropzoneVersion, Lägg till:

# OptionsNIB: ChooseFolder # UniqueID: 234985238238452835 

De OptionsNIB berättar Dropzone en förkonfigurerad optionspanel att använda. De möjliga värdena är:

  • Logga in
  • ExtendedLogin
  • apikey
  • UsernameAPIKey
  • ChooseFolder
  • ChooseApplication

Denna åtgärd kommer att använda ChooseFolder alternativ. Detta kommer att be användaren att ange en målmapp för att ladda upp filerna. Åtgärden kommer att få värdet i väg miljöfaktor.

De Unikt ID måste vara ett slumpmässigt nummer som unikt identifierar åtgärdspaketet. Om åtgärden är listad på huvudsidan kommer det att hjälpa till att avgöra versionsinformation. När åtgärden ändras, informerar Dropzone andra om att den nya versionen är tillgänglig och kan uppdatera den direkt från Dropzone.

Dragd åtgärd

De släpade () funktionen springer när användaren drar filer till åtgärden i rullgardinsmenyn. De släpade () funktionen för uppackningen är:

def slog # # Slå på bestämt läge. # $ dz.determinate (true) # # Hämta data värdena. # if ((ENV ['path']! = nil) && (Filedirectory? (ENV ['path'])))) # # få standardinställningarna. # dir = ENV ['path'] # # Bearbeta varje bildfil. # total = $ items.count # # Berätta dropzone vi börjar ... # $ dz.begin ("Packar upp # total filer ...") # # Index över alla givna bilder. # för index i 0 ... totalt # # Konvertera bildfilen. # '/ usr / bin / unzip -n "# $ itemsindex]" -d "# dir" "# # Ta bort originalfilen. # File.delete ($ items [index]) # # Berätta Dropzone vilken procentandel som gjorts. # $ dz.percent ((((index + 1) * 100) totalt) .to_i) sluta annars # # Användaren konfigurerade inte åtgärden. Säg till dem. # $ dz.error ("Packa upp åtgärd", "Du gav inte en målkatalog!") Slut # # Berätta för användaren att den är klar. # $ dz.finish ("Färdigpackning.") # # Slutför dropzone-protokollet. Om du vill ha en url i urklippet, skicka den # här. Om du bara vill kopiera text till Urklipp, använd $ dz.text () istället. # Endera $ dz.url () eller $ dz.text () måste vara det sista i den slagna metoden. # $ dz.url (falskt) slut 

De släpade () funktionen berättar Dropzone om det är bestämt eller inte med hjälp av $ Dz.determinate () fungera. Denna åtgärd är bestämd, så Sann måste godkännas. Om en Internetförfrågan finns i åtgärden måste den ställas in på falsk.

Åtgärden bestämmer om en riktig konfiguration finns. De om uttalandet bestämmer att genom att se om variabeln används för att ge förinställningarna existerande och är en giltig katalog. Om den inte är konfigurerad, använder den $ Dz.error () funktionen för att skicka ett felmeddelande till användaren och avsluta programmet. Det finns även en $ Dz.warning () funktion som ger samma typ av dialog till användaren, men stoppar inte åtgärden. Det finns även en $ Dz.fail () funktion som fungerar på samma sätt som $ Dz.error (), men lämnar a X på ikonen för att visa att processen helt misslyckades.

Om väg Informationen är där och bra, det fortsätter med åtgärden. Det berättar Dropzone att det börjar med $ Ds.begin () fungera. Det tar en sträng som också skickas till användaren. Alla filer som släpptes på åtgärden har sina adresser i katalogen $ objekt array.

Åtgärden kommer att slingra över alla $ objekt passerat och kallar det vanliga zip-programmet för att pakka in filen till den angivna katalogen. När varje fil har bearbetats raderas den ursprungliga filen och ökar procentandelen som görs med hjälp av $ Dz.percent () fungera.

En gång gjort med alla filer kallas åtgärden $ Dz.finish () fungera med ett korrekt meddelande. Det sista funktionssamtalet för en åtgärd måste vara $ Dz.url () eller den $ Dz.text () fungera. En url eller text som kopieras till klippbordet kan skickas. Annars passera falsk.

Clicked Action

De klickade () funktion kallas när användaren klickar på åtgärden. Den här åtgärden kommer att få en ny katalog för att pakka ut arkiven. Detta behövs inte, men visar hur man använder några av Dropzone 3: s nya funktioner. De klickade () funktionen är nedan:

def klickade # # Den klickade hanteraren ska få destinationskatalogen att använda och # spara den. # # # Begär bredden på grafiken. # dir = $ dz.cocoa_dialog ("fileselect --select-directories --select-only-directories --title" Packa till katalog "") .split ("\ n") # # Se om användaren har avbrutits. Fortsätt inte om de avbryter. # if ((dir [0]! = nil) && (File.directory?(dir[0])))) # # Spara katalogplatsen. # $ dz.save_value ("path", dir [0]) annars # # Användaren har inte konfigurerat åtgärden. Säg till dem. # $ dz.error ("Packa upp åtgärd", "Du avbröt! Du gav inte en målkatalog!") Slut # # Berätta för användaren att den är klar. # $ dz.finish ("Packa ut katalog: # dir [0]") # # Slutför dropzone-protokollet. Om du vill ha en url i urklippet, skicka den # här. Om du bara vill kopiera text till Urklipp, använd $ dz.text () istället. # Endera $ dz.url () eller $ dz.text () måste vara det sista i den klickade metoden. # $ dz.url (falskt) slut 

De klickade () funktion begär en ny katalog från användaren med hjälp av $ Dz.cocoa_dialog () fungera. Denna funktion tar kommandoraden för Kakao Dialog Program som funktionens parameter, skickar den till Kakao Dialog program, och returnerar resultaten av att ringa Kakao Dialog program.

Resultaten delas upp på Stiga på tecken i en rad strängar. Det kontrollerar en giltig katalog och att användaren inte tryckte på Avbryt-knappen. Om detta misslyckas används det $ Dz.error () funktion för att berätta för användaren och avsluta. Annars sparar den katalogen till Dropzone använda $ Dz.save_value () fungera. Allt som sparas med den här funktionen i en åtgärd är återhämtningsbar i miljövariablerna vid återexekvering.

Funktionen avslutas som släpade () funktionen gjorde.

Övriga funktioner

Dropzone 3 har också en tillfällig filmappsfunktion som heter $ Dz.temp_folder (). Den returnerar katalogen som ska användas för att skapa tillfälliga filer.

Om du behöver kopiera eller flytta filer, ska Rsync.do_copy () funktionen måste användas.

Några Viktiga modifierare som anges i rubriken finns i ENV [ 'KEY_MODIFIERS'] miljöfaktor.

felsökning

Den nya felsökningskonsolen är ett bra tillägg. För att öppna konsolen, välj den från menyn:

Öppna Debug Console

Konsolen visar redan all utmatning från den senast använda åtgärden.

Debug-konsolen

Konsolen visar alla VARIABELs passerade i miljön, den HÄNDELSE (klicka i det här exemplet), vilken som helst Save_Values, och det slutliga meddelandet som ges till användaren.

När denna rad läggs till efter $ Dz.Save_Value () fungera,

"sätter" Informationen som ges: "+ dir [0] ' 

Den här felsökningsinformationen kommer att ses i konsolen:

Visar felsökningsinformation

Den extra informationen finns i rött. Detta ger ett bekvämt sätt att felsöka handlingsskript.

Slutsats

I denna handledning visade jag dig skillnaderna i den nya versionen av Dropzone och hur man skapar en egen åtgärd för att pakka ut filer till en användardefinierad katalog. Nu när du vet hur du skapar åtgärder, gör du lite och dela dem med alla.