Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Automatisera OS X med Javascript

Kommer du ofta på dig själv med att göra saker du helst skulle automatisera? Har du tittat på Applescript men inte orkat lära dig språket? Använd Javascript istället.

Övervaka din skärmbild

Nu när vi kommit igång med Javascript och Skriptredigeraren så kan vi bygga något vettigt. Häromåret var det väldigt populärt att ta ett självporträtt varje dag och sedan sätta samman till en enda bildserie. Vad sägs om att istället ta en skärmdump på ditt skrivbord en gång om dagen, och sedan mejla denna bild till dig själv.

Det som behöver göras kan sammanfattas i tre punkter:

  1. Anropa kommandoradsprogrammet screencapture som sparar en skärmdump till specificerad sökväg.

  2. Skapa ett mejl med bilden bifogad och skicka detta till valfri e-postadress.

  3. Schemalägg uppgiften så att den körs automatiskt.

Vi vill alltså att ett mejl likt detta ska dimpa ner i inkorgen:

Skapa ett nytt skript i Skriptredigeraren där vi först placerar inställningsvariabler för den e-postadress som ska få mejlet och var skärmdumpen ska sparas:

var sendToEmail = "[email protected]"
var savePicPath = "/Users/andreas/screenshot.jpg"

Därefter skapar vi som tidigare ett objekt för applikationen:

var app = Application.currentApplication()
app.includeStandardAdditions = true

Detta objekt kan vi nu använda för att anropa ett kommandoradsprogram, i detta fall screencapture:

app.doShellScript('screencapture ' + savePicPath)

Nu har bilden fångats och sparats. Nästa steg är att skapa ett nytt e-postmeddelande adresserat till den e-postadress vi sparade i variabeln sendToMail:

Mail = Application('com.apple.Mail')
message = Mail.OutgoingMessage().make()
message.toRecipients.push(Mail.Recipient({ address: sendToEmail }))

Vi kan använda Javascripts Date-objekt för att fånga den aktuella tiden och använda denna i meddelandets ämnesrad och innehåll:

message.subject = "Skärmdump " + Date()
message.content = "Denna skärmdump togs cirka " + Date()

Därefter ska bilden bifogas. Hittills har vi kunnat hålla alltsammans i bakgrunden, men för att bilden ska kunna bifogas måste vi göra meddelandet synligt under ett ögonblick:

message.visible = true
attachment = Mail.Attachment({ fileName: savePicPath })
message.attachments.push(attachment)
message.visible = false

Slutligen kan mejlet skickas:

message.send()

Provkör skriptet direkt i Skriptredigeraren. Om det fungerar är nästa steg att schemalägga skriptet i verktyget Automator. Öppna detta och du möts av en dialogruta där du kan välja olika typer av mallar (tryck Cmd + N om du inte ser dialogen). Välj här Kalender-alarm.

Automator låter dig bygga flöden bestående av olika komponenter. Du ser komponenterna listade till vänster och flödet visualiserat till höger. I den vänstra listan, markera Verktyg och leta sedan upp "Kör Javascript" i underlistan till höger. Dra sedan ut denna komponent i flödet till höger.

När komponenten dyker upp i flödet som en ruta har den en del förifylld Javascriptkod. Rensa bort detta och kopiera över hela din kod vi just skrev från Skriptredigeraren. Tryck därefter Cmd + S och välj ett namn på kalenderhändelsen.

När du sparat kalenderhändelsen sätts den till att köra den aktuella tiden och en gång. Öppna därför Kalender och konfigurera den att köras upprepande gånger på vald tidpunkt.

Du har nu skapat ditt egna lilla spionprogram eller loggboksförare, beroende på hur man ser på det. Att arbeta i Javascript känns nog för de flesta betydligt mer hemvant än Applescript. Men tyvärr har Apple fortfarande mycket bristfällig dokumentation på hur Javascript används i OS X.

Avslutningsvis, låt oss återgå till den allra första meningen i den här texten. Om du fortfarande sitter med en hög filer som du hade hoppats kunna döpa om genom Javascript, ta en titt på denna Github Gist.

Då Apples egna dokumentation för Javascript är i stort sett obefintlig får du istället förlita dig på tredjepartskällor. En sådan är Github-repot JXA Cookbook som ger många exempel på hur du använder Javascript i kombination med OS X skriptmöjligheter.

Skriven av Andreas Bergström

Inget är som väntans tider, särskilt om du går och väntar på en iMac med Apples egna processor.

Inom kort kommer 99mac bli Macradion och då blir det en ny plattform med ett betydligt modernare forum.

Då var Apple Watch Series 7 här och ryktena stämde inte i år utan det blev samma design som vi sedan tidigare är vana vid.

Varje resa har ett slut och varje slut har en ny början och nu är det dags för oss att gå över till en modern plattform.

Apples event är över och i detta extra långa avsnitt får vi följa Marcus, Marcus, Dennis och Thor när de följer eventet live tillsammans med efterföljande diskussion om intrycken det gav.

Är du en av de som inte gillade det nya utseendet på Safari i macOS Monterey? Nu kan du lugna dig, Apple har backat på designen.