Pulizia dell'evento del calendario prima / durante la duplicazione

0

Questo problema deriva dalla duplicazione di eventi dai calendari sottoscritti a un singolo calendario iCloud che condivido con qualcuno. Quando il calendario di origine è ben strutturato, tutto funziona come previsto. My Applescript duplica l'evento e nelle esecuzioni successive l'azione duplicata aggiorna anche qualsiasi informazione modificata negli eventi (presumo che veda un UID corrispondente e modifica l'evento invece di ricrearlo).

Al momento ho un calendario che imposta UID su un URL completo (anche originariamente aveva un problema con i fusi orari che ho posto rimedio, è per questo che duplicate include le date di inizio e di fine). Questo crea problemi con la duplicazione, credo, perché i nuovi eventi hanno il loro UID che ha alcuni caratteri spogliati / sostituiti ( / , : ) e smettono di combaciare.

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

Il primo pensiero è stato quello di usare un'espressione regolare tramite sed per creare un UID più standard ...

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

Il risultato è, [email protected] . Ma ora sono bloccato. Duplicate , né make , sembra voler farmi creare un nuovo evento in cui includo uid nelle proprietà.

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}

Entrambi danno fallito il gestore di AppleEvent, errore -10000. A questo punto ho provato così tante varianti che ho perso un po '.

A un certo punto ho provato a impostare l'originale UID sul mio generato. E ciò ha comportato un errore diverso, -10006 ...

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

Posso vivere senza alcune di queste cose, ma a questo punto sono davvero curioso di sapere cosa sto facendo male. C'è un modo per risolvere l'UID e duplicare un evento da un calendario all'altro? Grazie!

Modifica
Aggiornare il comando sed per essere un po 'più pulito. Purtroppo richiede ancora una doppia fuga per un mucchio di pezzi.
Aggiungendo anche un po 'di codice in più per mostrare come sono costruite le cose.

    
posta Vagari 07.06.2015 - 21:21
fonte

0 risposte

Leggi altre domande sui tag