Mercurial > hg > gcmultimerge
comparison multimerge.py @ 55:5b78f62b7de7
More work on merging stuff.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 05 Jul 2016 21:18:03 +0300 |
parents | 86d3a8eddbd7 |
children | 597875ef885b |
comparison
equal
deleted
inserted
replaced
54:86d3a8eddbd7 | 55:5b78f62b7de7 |
---|---|
444 else: | 444 else: |
445 gcm_debug(u"No current events.") | 445 gcm_debug(u"No current events.") |
446 | 446 |
447 | 447 |
448 ## Start merging events .. | 448 ## Start merging events .. |
449 dst_gcm_ids = frozenset(map(lambda x: x["gcm_id"], dst_events)) | |
450 src_ids = frozenset(map(lambda x: x["id"], src_events)) | |
451 dst_ids = frozenset(map(lambda x: x["id"], dst_events)) | |
452 gcm_debug(u"Re-merging events to target calendar ..") | 449 gcm_debug(u"Re-merging events to target calendar ..") |
450 dst_ids = frozenset(map(lambda x: x["gcm_id"], dst_events)) | |
451 src_ids = frozenset(map(lambda x: x["gcm_id"], src_events)) | |
453 | 452 |
454 for event in src_events: | 453 for event in src_events: |
455 # Does the event exist already in the target? | 454 # Does the event exist already in the target? |
456 if event["gcm_id"] in dst_gcm_ids: | 455 if event["gcm_id"] in dst_ids: |
457 ## Yes. Thus, we just update the event. | 456 ## Yes. Thus, we just update the event. |
458 #print "IS in dst_gcm_ids: "+ event["id"] +" : "+ event["gcm_id"] | 457 #print "IS in dst_ids: "+ event["id"] +" : "+ event["gcm_id"] |
459 # Check if event NEEDS updating .. aka compare data | 458 # Check if event NEEDS updating .. aka compare data |
460 gcm_debug(u"Updating event {0}".format(event["gcm_id"])) | 459 gcm_debug(u"Updating event {0}".format(event["gcm_id"])) |
461 d_event = gcm_get_event_by_gcm_id(dst_events, event["gcm_id"]) | 460 d_event = gcm_get_event_by_gcm_id(dst_events, event["gcm_id"]) |
462 if d_event and gcm_compare_events(event, d_event): | 461 if not d_event: |
462 gcm_fatal("ASDF") | |
463 if not gcm_compare_events(event, d_event): | |
463 try: | 464 try: |
465 event.pop("sequence", None) | |
464 new_event = service.events().update(calendarId=cfg.dest_id, eventId=event["id"], body=event).execute() | 466 new_event = service.events().update(calendarId=cfg.dest_id, eventId=event["id"], body=event).execute() |
465 except Exception as e: | 467 except Exception as e: |
466 gcm_fatal("Failed to update event:\n{0}\n\nERROR: {1}\n".format(event, str(e))) | 468 gcm_fatal("Failed to update event:\n{0}\n\nERROR: {1}\n".format(event, str(e))) |
467 else: | 469 else: |
468 gcm_debug(u"No need to update event {0}.".format(event["gcm_id"])) | 470 gcm_debug(u"No need to update event {0}.".format(event["gcm_id"])) |
477 gcm_fatal("Failed to insert new event:\n{0}\n\nERROR: {1}\n".format(event, str(e))) | 479 gcm_fatal("Failed to insert new event:\n{0}\n\nERROR: {1}\n".format(event, str(e))) |
478 | 480 |
479 ## Remove "stale" events | 481 ## Remove "stale" events |
480 gcm_debug(u"Purging stale events ..") | 482 gcm_debug(u"Purging stale events ..") |
481 for event in dst_events: | 483 for event in dst_events: |
482 if not event["id"] in src_ids: | 484 if not event["gcm_id"] in src_ids and event["status"] != u"cancelled": |
483 try: | 485 gcm_debug(u"Deleting event {0}".format(event["gcm_id"])) |
484 service.events().delete(calendarId=cfg.dest_id, eventId=event["id"]).execute() | 486 # try: |
485 except Exception as e: | 487 # service.events().delete(calendarId=cfg.dest_id, eventId=event["id"]).execute() |
486 gcm_fatal("Failed to delete stale event:\n{0}\n\nERROR: {1}\n".format(event, str(e))) | 488 # except Exception as e: |
489 # gcm_fatal("Failed to delete stale event:\n{0}\n\nERROR: {1}\n".format(event, str(e))) | |
487 | 490 |
488 | 491 |
489 gcm_debug(u"Finished.") | 492 gcm_debug(u"Finished.") |