AppleScript: Flytta meddelanden från Inkorg till namngiven mapp - hur?

Tråden skapades och har fått 8 svar. Det senaste inlägget skrevs .
1

Jag försöker göra ett enkelt applescript för att flytta meddelanden till en namngiven mapp.

Så här står det i Entourages ordlist:

move v : Move object(s) to a new location
move specifier : the object(s) to move
to location specifier : the new location for the object(s)
→ specifier : to the object(s) after they have been moved

Med set selectedMessages to selection väljer jag det markerade meddelandet.

Vadå "location specifer"? Hur pekar jag här på min målmapp?
Där kör jag fast. Jag kan inte AppleScript. Jag fattar helt enkelt inte hur jag ska göra.

move selection to folder "Mappen"
Den funkar inte.

Senast redigerat 2007-12-04 20:02

Efter ett tags surfande och nerplockande av olika script fick jag ihop det.
Inte helt logiskt men nu har jag ett kortkommando som gör att jag flyttar meddelanden till en annan mapp.

Här är skriptet:

tell application "Microsoft Entourage"
	set destFolder to folder "Referens" of Exchange account "mattias"
	set currMsgs to (current messages)
	move currMsgs to destFolder
end tell
  • Medlem
  • Mölndal
  • 2007-12-04 21:21

Det enda som är lätt med applescript är väl att själva syntaxen påminner om engelska. Så fort man ska prata med ett annat program blir det svårt.

Det kanske skulle vara bra idé att gå en kurs?

  • Medlem
  • Mölndal
  • 2007-12-05 09:08

Klart man kan göra, men kommer ändå inte ifrån känslan att något är fel... Jag har lärt mig tiotalet programmeringsspråk och -miljöer på egen hand genom åren, och ingen av dem har varit tillnärmelsevis så ointuitivt som AppleScript.

Svårigheten med AppleScript

Tja, jag tror i och för sig inte att min intuition hade varit till mycket nytta när jag lärde mig C en gång i tiden, men visst finns det problem med AppleScript. Huvuddelen av problemen ligger dock inte i själva språket, utan hur diverse program implementerar sina AppleScript-funktioner.
Språket AppleScript är både elegant och intuitivt tycker jag. Att sedan olika programvarumakare väljer mer eller mindre idiotiska sätt att sätta upp sina dokumentmodeller och kommandon kan man inte skylla på AppleScript.
Dock, även Apple syndar i sina egna program. De flesta problemen uppstår när man går runt den objektorienterade modellen som är inbyggd i språket. Det kan t.ex. vara så att de flesta program låter en skapa ett nytt dokument med kommandot "tell application "X" to make new document" och sedan, analogt, "tell document 1 to make new paragraph at end" etc. Andra program skapar specifika kommandon för varje operation i stället: "tell application "Y" to documentCreate" följt av "tell document 1 to addParagraphs(1)" eller nåt liknande (fiktiva exempel).
Den första versionen känns helt intuitiv för mig, medan den andra bidrar till förvirring och svårigheter, men språket tvingar inte programmakarna att använda den ena eller andra modellen så när man ska scripta ett nytt program så blir det mycket trial and "terror"...

\Alderman

Ursprungligen av memark:

Klart man kan göra, men kommer ändå inte ifrån känslan att något är fel... Jag har lärt mig tiotalet programmeringsspråk och -miljöer på egen hand genom åren, och ingen av dem har varit tillnärmelsevis så ointuitivt som AppleScript.

Det är en väldigt vanlig uppfattning från dem som kan andra programmeringsspråk.
Däremot brukar "vanliga" användare uppfatta det tvärtom.

Språket i sig är inte märkvärdigt, bara en lite "mjukare" syntax med många alternativa skrivsätt. Det gör att det framstår som inkonsekvent och lite lynnigt.

Precis som Alderman säger så har det också mycket (mest?) att göra med objektmodellen i de olika programmen. AppleScript's problem (och stora möjlighet) ligger ju just i att det används främst för att styra andra program.

Nyckeln till framgång är att lära sig en bra metodik för att jobba med programmen, samt att skaffa sig ett bra verktyg (Script Debugger) istället för den alldeles för begränsade Manusredigeraren, som Apple skickar med.

  • Medlem
  • Mölndal
  • 2007-12-06 10:38

Ja, språket i sig är kanske inte så svårt. Har gjort några tutorials från Apple som skriver ut lite variabler och annat. Inga problem där. Grejen är bara att det för mig är totalt oanvändbart om jag inte kan kommunicera med andra program. Och där får man noll hjälp från Apple, och i bästa fall bristfällig dokumentation från det andra programmets tillverkare.

AppleScript i princip...

Den "hjälp" man får från Apple är konstruktionen "tell app x", därefter är det helt i händerna på det andra programmet. Apple kan knappast hjälpa till med andra programs terminologi på annat sätt än genom att skapa möjlighet att titta på programmets "dictionary". Det i sig kan vara en mycket god hjälp om programmet lagt upp en bra objektmodell. Har det inte det så blir man beroende av dokumentation från programvaruleverantören.
Några som gjort ett ganska bra jobb är Adobe, där det finns både tutorials, exempel och referensdokument. Sedan är objektmodellen i InDesign så omfattande och komplex att det ändå inte blir lätt, men det har inte med AppleScript i sig att göra.

Håller helt med Richard R. om att man måste skaffa ett bättre verktyg än Manusredigeraren dock. ScriptDebugger gör det möjligt att stega, bevaka variabler, titta på programmets alla objekt "live" etc. etc. Det är självklara hjälpmedel vid all programmering och sparar timmar så fort projektet är något annat än trivialt.

Jag har skrivit så mycket AppleScript genom åren att jag kanske är "miljöskadad" men jag tycker det är en mycket cool teknologi som bara ibland får mig att slita mitt hår i förtvivlan, och då är det nästan alltid på grund av någon "crappy" implementation i ett program jag måste använda.

\ Alderman

1
Bevaka tråden