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?

Foi útil?

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".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top