AppleScript - Fungsi lanjutan untuk meningkatkan langkah / mengurangi kode

0

Saya mencoba mengurangi jumlah langkah dan meningkatkan kinerja untuk applescript saya, saya hanya ingin tahu apakah ada beberapa fungsi umum yang dapat saya terapkan.

Berikut ini contoh skrip ...

tell application "QuickTime Player"
    activate

    -- Get the iCloud file path to avoid permission error
    set filePath to "Macintosh HD:Users:jm:Library:Mobile Documents:com~apple~QuickTimePlayerX:Documents:movie.wav"

    set f to a reference to file filePath
    -- Get a handle to the initial window
    set windowID to id of first window whose name = "Audio Recording"
    set audio to first document whose name = (get name of first window whose id = windowID)

    tell audio
        stop
    end tell
    -- Get second handle to new titled window
    set windowID2 to id of first window whose name = "Untitled"
    set audio2 to first document whose name = (get name of first window whose id = windowID2)

    tell audio2
        -- Save audio file
        save audio2 in f
    end tell

    -- Get third handle to new titled window
    set windowID3 to id of first window whose name = "movie.wav.qtpxcomposition"
    set audio3 to first document whose name = (get name of first window whose id = windowID3)
    tell audio3
        close audio3 saving no
    end tell


end tell

Ini adalah skrip kedua, dipanggil setelah skrip yang mulai merekam.

Jules
sumber
Mengapa Anda memiliki pernyataan yang terlebih dahulu mengambil id jendela dengan namanya, diikuti oleh pernyataan yang mengambil nama jendela yang sama dengan idnya? Tampaknya agak berlebihan.
CJK

Jawaban:

0

Saya dapat mengurangi skrip Anda menjadi ini:

    tell application "QuickTime Player"
        -- Get the iCloud file path to avoid permission error
        set filePath to "Macintosh HD:Users:jm:Library:Mobile Documents:com~apple~QuickTimePlayerX:Documents:movie.wav"

        -- Get a handle to the initial window
        stop the document named "Audio Recording"

        -- Get second handle to new titled window
        save the document named "Untitled" in filePath

        -- Get third handle to new titled window
        close the document named "movie.wav.qtpxcomposition" saving no
    end tell

Seperti yang saya sebutkan di komentar saya, itu berlebihan untuk mengambil jendela iddengan itu name, hanya kemudian untuk mengambil nameitu id. Anda dapat mereferensikan documentberdasarkan nama yang sudah Anda miliki (jika tidak ada dokumen dengan nama itu, itu akan menimbulkan kesalahan; tetapi hal yang sama juga berlaku untuk skrip asli Anda). Untuk menghindari ini, Anda dapat memeriksa keberadaannya terlebih dahulu:

    tell document named "Audio Recording" to if it exists then stop

The activateperintah tampaknya tidak perlu, karena tidak ada perintah yang diikuti membutuhkan QuickTime berada dalam fokus.

Akhirnya, variabel fitu berlebihan.

CJK
sumber