Quería escribir un script para "empujar" los recordatorios una hora antes. Se me ocurrió esto:
tell application "Reminders"
launch
set c to current date
set newtime to c + 3600
set the remind me date of every reminder where completed is false and remind me date < c to newtime
end tell
La secuencia de comandos no es muy rápida cuando se ejecuta desde el Editor de secuencias de comandos (tarda unos segundos), pero cuando se ejecuta desde el menú de secuencias de comandos, puede llevar literalmente decenas de minutos.
¿Alguna idea de por qué es tan lento?
Al analizar esto, me llevó a la base de datos de sqlite que contiene información de recordatorios.
~/Library/Application\ Support/NotificationCenter/(meaningless name).db
Parece que acumula todos los recordatorios que se hayan agregado ... incluso cosas como la canción que se escuchó a las 4:31 pm del 22 de enero de 2015. Si Applescript tiene que iterar todas las entradas para encontrar las que coincidan con los parámetros, esto podría explicar por qué es tan lento, pero no explica por qué es TANTO MUCHO cuando se ejecuta desde el menú del script.
Me pregunto si la forma más fácil de enviar recordatorios podría no ser manipular la base de datos sqlite. ¿Pensamientos?