Skip to content
  • Bart De Vries's avatar
    Add podcast subscription and episode play state synchronization · f861f4e8
    Bart De Vries authored
    This implements the gpodder API from scratch.  It turned out that
    libmygpo-qt has several critical bugs, and there's no response to pull
    requests upstream.  So using that library was not an option.
    
    The implementation into kasts consists of the following:
    - Can sync with gpodder.net or with a nextcloud server that has the
      nextcloud-gpodder app installed.  (This app is mostly API compatible
      with gpodder.)
    - Passwords are stored using qtkeychain.  If the keychain is
      unavailable it will fallback to file.
    - It syncs podcast subscriptions and episode play positions, including
      marking episodes as played. Episodes that have a non-zero play
      position will be added to the queue automatically.
    - It will check for a metered connection before syncing.  This is
      coupled to the allowMeteredFeedUpdates setting.
    - Full synchronization can be performed either manually (from the
      settings page) or through automatic triggers: on startup and/or on
      feed refresh.
    - There is an additional possibility to trigger quick upload-only syncs
      to make sure that the local changes are immediately uploaded to the
      server (if the connection allows).  This will trigger when
      subscriptions are added or removed, when the pause/play button is
      toggled or an episode is marked as played.
    - This implements a few safeguards to avoid having multiple feed URLS
      pointing to the same underlying feed (e.g. http vs https).  This
      solves part of #17
    
    Solves #13
    f861f4e8