1. 24 May, 2021 1 commit
  2. 23 May, 2021 1 commit
  3. 21 May, 2021 1 commit
  4. 20 May, 2021 1 commit
  5. 22 Apr, 2021 2 commits
  6. 21 Apr, 2021 1 commit
  7. 09 Apr, 2021 3 commits
  8. 06 Apr, 2021 3 commits
  9. 02 Apr, 2021 1 commit
  10. 30 Mar, 2021 1 commit
  11. 25 Mar, 2021 1 commit
  12. 18 Mar, 2021 1 commit
    • Chris Adams's avatar
      [buteo-sync-plugins-social] Disable updating last modified time on event save.... · c8e85441
      Chris Adams authored
      [buteo-sync-plugins-social] Disable updating last modified time on event save. Contributes to JB#53475
      Previously, the backend would automatically update the last modified
      time for an event when the event was saved.  Sync plugins (which
      save updates to events due to server-side changes) should avoid this.
      Recently, API was added to the backend calendar API to allow this
      behaviour to be disabled by sync plugins.  This commit takes this
      API into use, and removes the old work-arounds.
  13. 11 Mar, 2021 3 commits
  14. 10 Mar, 2021 1 commit
  15. 02 Mar, 2021 2 commits
  16. 25 Feb, 2021 1 commit
  17. 22 Feb, 2021 2 commits
  18. 21 Feb, 2021 1 commit
    • Bea Lam's avatar
      [buteo-sync-plugins-social] Update Contacts plugin to use Google People API. JB#50799 · a5309ea0
      Bea Lam authored
      The Google Contacts API is deprecated and the service will cease to
      work in June 2021. Update the contacts plugin to use the newer People
      API instead.
      Main changes:
      - Use JSON instead of XML to format request and response data.
      - Make multi-part HTTP requests for batched upsync requests.
      - Upsync avatar changes separately from other contact data as per the
      People API requirements.
      - Always save both the remote url and local file path for an avatar
      instead of transforming the remote url to a local file after downloading.
      - If a downloaded avatar's file extension does not match its meta type
      (e.g. is png but has jpg extension) rename the file to match the type.
  19. 05 Feb, 2021 3 commits
  20. 01 Feb, 2021 6 commits
    • flypig's avatar
      [buteo-sync-plugins-social] Purge ophan 'ghost' events. Contributes to JB#52608 · e5802286
      flypig authored
      During ghost event cleanup, any orphans that don't belong to any
      notebook are deleted. This also purges them so they no longer exist in
      the database after the sync.
    • flypig's avatar
      [buteo-sync-plugins-social] Ensure clean sync is applied in full. Contributes to JB#52608 · 5716a644
      flypig authored
      The google sync plugin can be tricked into performing a "partial clean
      sync" if both the syncToken and syncTime are invalid. This state can
      occur, for example, if the account has never managed to complete a fully
      successful sync.
      The result of this state is that all events are considered as insertions
      (as opposed to modifications), while at the same time the notebook isn't
      recreated from scratch. As a result, duplicate entries are added to the
      calendar on each sync.
      This change fixes this by identifying the case where the syncToken and
      syncTime are both invalid and ensuring the clean sync semantics are
      applied throughout the sync (so everything is an insertion, but the
      notebook is also recreated and so starts empty).
    • flypig's avatar
      [buteo-sync-plugins-social] Clamp min sync time to within a year. Contributes to JB#52608 · be42096a
      flypig authored
      For accounts that have never experienced a successful sync, the last
      sync time may return 0 with an invalid sync token. This will cause the
      next sync to be clean, but with the requested minimum time set to 0
      (i.e. "1970-01-01T00:00:00Z").
      In practice, it never makes sense to sync back this far, so now the
      start time is bounded below by a year prior to the current time.
    • flypig's avatar
      [buteo-sync-plugins-social] Flag individual event sync errors. Contributes to JB#52608 · f84fbba1
      flypig authored
      Uses the volatile custom properties of KCalendarCore to store sync
      errors for individual events, matching the approach used by the CalDav
    • flypig's avatar
      [buteo-sync-plugins-social] Add dummy parent if Google sends an exception... · ed57e167
      flypig authored
      [buteo-sync-plugins-social] Add dummy parent if Google sends an exception without one. Contributes to JB#52608
      If Google sends an exception event during a sync for which the parent
      recurring event doesn't exist, this would previously cause the entire
      sync to fail. This change instead creates a dummy parent event, matching
      the exception, which the exeption is then dissociated from.
      This allows the sync to succeed and the event to appear. This also
      matches the behaviour of the caldav sync plugin.
    • flypig's avatar
      [buteo-sync-plugins-social] Differentiate between 403 errors. Contributes to JB#52608 · d9789771
      flypig authored
      If Google returns a 403 error it can mean modifying a non-authored
      shared event, but it can also mean a usage limit has been reached. The
      first is ignorable for the full sync, whereas the second should block
      the full sync. They therefore need to be distinguished and handled
      Delete events that return 404 errors are also handled differently. These
      are ignored rather than causing the sync to fail.
  21. 29 Jan, 2021 4 commits