¿Puede un AppleScript escribir en un documento Notes.app?

Me gustaría escribir texto en una "Nota" (a diferencia de un archivo .txt o .rtf estándar), porque Mac Notes se sincroniza automáticamente con una cuenta de iCloud, en todos los dispositivos.

(Entiendo que uno puede usar varios medios para lograr el mismo efecto con documentos de texto estándar, es decir, no patentados, por ejemplo, con un servicio como Dropbox. Notes.app es simplemente mucho más conveniente).

Sin embargo, parece que no hay forma de escribir en una nota en AppleScript. Digo esto porque no parece que las notas se guarden en ningún lugar de la Mac como un archivo .rtf (o similar). Según esta pregunta (pero tenga en cuenta que la pregunta se hizo en 2013), revisé los siguientes directorios:

  • ~/Library/Group Containers/group.com.apple.notes/

    • y
  • ~/Library/Containers/com.apple.Notes/Data/Library/Notes/

No encontré nada que se pareciera a un documento de texto legible. Abrí algunos de estos archivos en TextEdit.app y descubrí que estos archivos contienen puro texto galimatías.

Me imagino que podría codificar efectivamente un AppleScript para "escribir en un documento de Notes", activando los clics del mouse y las pulsaciones de teclas. Pero, tengo curiosidad si se puede escribir en una Nota, de una manera "adecuada".

De acuerdo con la Biblioteca en el editor de secuencias de comandos, parece que Notes es completamente compatible con secuencias de comandos. Una de las propiedades: cuerpo (texto): el contenido HTML de la nota. Por lo tanto, parece ser programable usando marcado HTML. Macosautomation tiene un artículo anterior, pero la aplicación Notes aún se incluye en la biblioteca de scripts a partir de macOS 10.12
Notes almacena sus datos en una base de datos de formato 3 de SQLite y explica por qué parecía un texto galimatías en TextEdit.app cuando abría los archivos en esas ubicaciones. Si realmente desea ver el contenido, haga una copia de la carpeta y abra el .storedataarchivo (la copia, no el original) con Liya .

Respuestas (1)

Notes admite secuencias de comandos y el diccionario se puede abrir con el Editor de secuencias de comandos para obtener más detalles.

También hay un largo tutorial aquí .

Aunque no lo he probado con iCloud, debería poder configurar la cuenta y crear una nota en esa cuenta.

Simplificando el ejemplo en esa página y usando mi cuenta de Exchange, pude crear la nota usando este script:

tell application "Notes"
  tell account "Exchange"
    make new note at folder "Notes" with properties {name:"this is a test", body:"and more text"}
  end tell
end tell

Para obtener el contenido de una nota existente, para poder modificarla:

tell application "Notes"
  tell account "Exchange"
    tell folder "Notes"
      get body of note "this is a test"
    end tell
  end tell
end tell

Y, para modificar el contenido:

tell application "Notes"
  tell account "Exchange"
    tell folder "Notes"
      set body of note "this is a test" to "reset the body text"
    end tell
  end tell
end tell
Probé esto con mi cuenta de iCloud y funciona bien. Buen día, @Kent
¿Sabes si es posible editar una nota ya existente? ¿O tiene que crear una nota nueva cada vez?
Sí. Modifiqué la respuesta. Probablemente querrá establecer una variable con el texto original y hacer modificaciones antes de establecer el cuerpo en un nuevo valor; pero, eso no es difícil.
Puedo hacerlo con éxito get body of note, pero cada vez que lo intento set body of note, no sucede nada (incluso cuando el texto de reemplazo es HTML correcto). ¿Funciona para ti?
Sí, ejecutar los tres comandos anteriores resultó en una nota llamada "restablecer el texto del cuerpo". La nota debe tener el mismo nombre que escribes en el comando ("esto es una prueba", en el ejemplo). Establecer el cuerpo una vez en realidad cambiará el nombre a "restablecer el texto del cuerpo". Por lo tanto, verificaría que las notas tengan el nombre correcto, o tal vez intente hacer una nota sin espacios en el nombre, etc.
Aquí hay un .gif que muestra lo que sucede cuando intento modificar una nota.
Hmmm... Eso podría estar relacionado con iCloud. Cuando ejecuto con la cuenta "Exchange" o "On My Mac", finaliza inmediatamente con el nuevo texto.
Aquí hay un .gif que muestra lo que sucede cuando intento modificar una nota en mi cuenta "En mi Mac".
Estoy perplejo. Estoy en Sierra 10.12.6; pero, eso no debería importar. La única diferencia es que tú tienes activado iCloud y yo no. Pero no veo por qué cambiar "En mi Mac" haría que Notes se saliera de control.
Estoy en 10.11.6. Supongo que es un error de El Capitán.
¿Cómo se abre una nota existente? ¿Alguien podría proporcionarme un script de ejemplo?
Puede abrir una nota a través del segundo bloque de código anterior. Sin embargo, debes saber el nombre de la nota.
@Kent que no abre la nota, ni siquiera navega hasta ella si Notes ya se está ejecutando; simplemente recupera el texto. ¿Cómo abro la nota?