Limpiar el evento del calendario antes / durante la duplicación

0

Este problema se debe a la duplicación de eventos de calendarios suscritos a un solo calendario de iCloud que comparto con alguien. Cuando el calendario de origen está bien estructurado, todo funciona como se espera. My Applescript duplica el evento, y en la acción posterior, la acción duplicada incluso actualiza cualquier información modificada en los eventos (supongo que ve un UID correspondiente y modifica el evento en lugar de recrearlo).

Actualmente tengo un calendario que establece que UID es una URL completa (originalmente también tenía un problema con las zonas horarias que remedié, es por eso que duplicate incluye las fechas de inicio y finalización). Esto crea problemas con la duplicación, creo, porque los nuevos eventos tienen sus UID 's tienen algunos caracteres eliminados / reemplazados ( / , : ) y dejan de coincidir.

http://domain.com/folder/page.php?eventid=3675 becomes  
http__domain_com_folder_page.php?eventid=3675

El primer pensamiento fue utilizar una expresión regular a través de sed para crear un UID más estándar ...

repeat with theEvent in theEventsList

    tell theEvent

        ...

        set oldUID to the uid

        set theCommandString to "echo \"" & oldUID & "\" | sed 's:http\://\([a-z.]*\)/\([a-z0-9]*\)/[a-z.]*\?\([a-z]*\)\=\([0-9]*\):\2-\3\4@\1:'" as string

        set newUID to do shell script theCommandString

        ...

    end tell

end repeat

El resultado es, [email protected] . Pero ahora estoy atascado. Duplicate , ni make , parece querer dejarme crear un nuevo evento en el que incluya uid en las propiedades.

make new event at end of calendar sportsCalendar with properties {start date:startTime, end date:endTime, uid:newUID, url:passURL, description:passDescription, summary:passSummary, location:passLocation}

-

duplicate theEvent to end of calendar sportsCalendar with properties {start date:startTime, end date:endTime, uid:newUID}

Ambos fallaron el controlador AppleEvent, error -10000. En este punto, he probado tantas variaciones que estoy un poco perdido.

En un momento intenté configurar el UID original a mi generado. Y eso resultó en un error diferente, -10006 ...

Calendar got an error: Can’t set uid of event to "[email protected]".

Puedo vivir sin algunas de estas cosas, pero en este punto, estoy realmente curioso de lo que estoy haciendo mal. ¿Hay alguna manera de arreglar el UID y duplicar un evento de un calendario a otro? Gracias!

Editar:
Actualizando el comando sed para ser un poco más limpio. Lamentablemente, todavía se requiere doble escape para un montón de piezas.
También añadiendo un poco más de código para mostrar cómo se construyen las cosas.

    
pregunta Vagari 07.06.2015 - 21:21

0 respuestas

Lea otras preguntas en las etiquetas