Detectando alterações em arquivos iCal
Pergunta
Estou escrevendo um pequeno aplicativo de desktop que se conecta ao Google Calendar (ou a outros serviços com tecnologia iCal) e exibe lembretes de eventos.Ele baixa automaticamente novamente o arquivo iCal de vez em quando.Se a soma de verificação do arquivo foi alterada, jogo fora o cache de compromissos atual e analiso novamente o calendário.
Acontece que isso não funciona com arquivos do Google Agenda.Após uma inspeção mais aprofundada, percebi que o DTSTAMP:
propriedade em todos os eventos alterados sempre que baixei novamente o arquivo iCal associado a um determinado calendário.Portanto, uma soma de verificação padrão pode não ser a solução aqui.Existem duas soluções principais que estou considerando.
- Calculando a soma de verificação com base no arquivo original com o
DTSTAMP:
linhas jogadas fora. (sujo) - Implementar um algoritmo de comparação de calendário completo que detecta quais seções do calendário são novas, quais foram descartadas, quais foram alteradas, etc. (caro)
Não sei se o formato iCal tem alguma outra peculiaridade que ainda não descobri, então não sei se o método 1 resolverá meu problema.Testes limitados parecem indicar que sim.Por outro lado, o método 2 parece desnecessariamente caro em termos de potência da CPU.
O que você sugeriria?
Solução
Não tenho certeza se o Google Agenda segue 100% do rfc5545, mas deve haver um número de sequência que "defina o número de sequência de revisão do componente do calendário dentro de uma sequência de revisões".