Como colar no safari com o applescript sem colar no arquivo applescript real

0

Eu recentemente descobri o applescript e tenho estado ansioso para fazer um bot de internet com ele. Eu construí meu bot com uma memória para que ele não pesquise no mesmo site duas vezes. Eu quero manter minha memória no Google Docs, então eu não tenho que carregar um arquivo de edição de texto adittional (mais eu não poderia receber o applescript para usar o textedit porque ele mantinha o tempo limite). Quero colar meus dados no documento quando o aplicativo for interrompido:

set the clipboard to data_memory_full           
tell application "Safari"     
    activate                 
    set URL of document 1 to --Google docs URL             
    tell application "System Events" to keystroke "v" using {command down}      
end tell

no entanto, quando faço isso, a memória é sempre colada no meu arquivo applescript e não no safari. Como eu paro isto?! Agradecemos antecipadamente

    
por Rook_Blank 30.09.2018 / 16:29

1 resposta

0

Eu não entendo totalmente o que você está tentando fazer, mas posso dizer que você quase definitivamente não quer fazer isso enviando teclas pressionadas através de Eventos do Sistema , ou usando System Events de alguma forma para controlar processos. É um script ruim , e esses scripts quebram em tempo recorde.

Sua ideia de usar o TextEdit foi realmente a melhor idéia, pois é possível roteirizar o TextEdit para editar um documento diretamente, o que é mais confiável do que a sua abordagem atual. / p>

Mas, mesmo utilizando TextEdit é realmente desnecessário, como você pode simplesmente gravar dados em um arquivo diretamente do AppleScript:

Suponho que a variável data_memory_full contém dados em texto simples e que você provavelmente desejará que o arquivo de texto resultante use a codificação de texto UTF-8.

Com isso, você pode escrever o conteúdo da variável data_memory_full em um arquivo novo ou existente como este:

set data_memory_full to "Some sample text to store in memory."


script memoryfile
    property sys : application "System Events"
    property path : "~/Google Drive/AppleScript/bot/MEMORY.data"
    property file : a reference to sys's file (my path)

    to make
        if not (my file exists) then ¬
            sys's (make new file ¬
            with properties {name:my path})
    end make

    to write textdata without overwriting
        local textdata, overwriting

        set textdata to textdata & linefeed

        if overwriting then set eof of ¬
            (my file as alias) to 0

        tell the current application ¬
            to write the textdata ¬
            to (my file as alias) ¬
            starting at eof ¬
            as «class utf8»
    end write

    to read
        tell the current application ¬
            to read (my file as alias) ¬
            as «class utf8»
    end read
end script


make memoryfile -- Create the data file if it doesn't already exist

-- This command commits data_memory_full to storage
tell the memoryfile to write data_memory_full without overwriting

read memoryfile -- This allows you to retrieve the file's contents

Altere esta linha:

property path : "~/Google Drive/AppleScript/bot/MEMORY.data"

para conter o caminho do arquivo onde você deseja que o arquivo de memória seja criado. O arquivo não precisa existir, já que o script irá criá-lo, se necessário. No entanto, as pastas que compõem o caminho para onde o arquivo reside devem existir. Nos meus testes, criei um arquivo armazenado localmente no diretório "Google Drive", que é sincronizado com o Google Drive na nuvem (isso requer que você tenha instalado o Backup & Sincronizar software).

    
por 03.10.2018 / 15:35