Commit Graph

18 Commits

Author SHA1 Message Date
Bart De Vries f861f4e802 Add podcast subscription and episode play state synchronization
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
2021-10-29 18:47:55 +02:00
Bart De Vries a15e2dbe5d Make storage path configurable
This adds a new setting to the Settings page.
Existing enclosures and images will be moved to the new location
(first copied, then deleted in the original location).  If any of
the copy actions fail, the operation is aborted and the original
path is restored.
The StorageMoveJob is set up in such a way that it's easy to add other
files or subfolders in the future.

Solves #15
2021-07-24 20:43:11 +02:00
Bart De Vries 4b2f4afd37 Remove setting to remove items from queue after being marked as played
This action will be done by default.
2021-07-07 13:39:56 +02:00
Bart De Vries 30f694ba09 Add some more settings regarding marking episodes as played 2021-07-06 22:34:26 +02:00
Bart De Vries fe2a977a6b Add setting to automatically delete episodes when they're marked as played
The 3 possibilities are:
0 = Disabled      = Do not delete episodes
1 = Immediately   = Delete immediately
2 = OnNextStartup = Delete on next startup (default)

Fixes #14
2021-07-06 22:34:26 +02:00
Bart De Vries d0bc5b2b26 Add capability to check whether network connection is metered
For now this only works with NetworkManager.  The related settings are
greyed out on systems not using NetworkManager.

Some details of the implementation:
- Implement settings in the settings menu to enable/disable feed
  updates, episode downloads and/ or image downloads on metered
  connections.  If the option(s) is disabled, an overlay dialog is shown
  with options to "not allow", "allow once", or "allow always".
- If the network is down, no attempt is made to download images and the
  fallback image will be used until the network is up again.
  This also solves an issue where the application hangs when the network
  is down and feed images have not been cached yet.
- Next to this, part of the cachedImage implementation in Entry and Feed
  has been refactored to re-use code as part of the image() method in
  Fetcher.
- In case something unexpected happens, an error will be logged.
2021-07-03 20:20:27 +02:00
Bart De Vries 99c1424327 Add setting to continue playback after end of current track 2021-05-23 21:35:38 +02:00
Bart De Vries cce0afd3a0 Add setting to show title overlay on FeedListDelegate images 2021-05-12 20:46:48 +02:00
Bart De Vries 3f4eedb8df Enable setting for automatic feed refreshing on startup 2021-05-07 22:19:14 +02:00
Bart De Vries 51b007ce95 Remove settings from Alligator which are not used anymore in Kasts 2021-05-05 15:06:38 +02:00
Bart De Vries 1c44e717ae Renaming alligator to kasts everywhere 2021-05-03 22:31:45 +02:00
Bart De Vries 02e92f9a8f Remove numberNewEpisodes from settings
Also clean up the unused allowStreaming setting
2021-04-27 20:58:01 +02:00
Bart De Vries 6938b331c3 Move toggleRemainingTime to general settings group 2021-04-27 20:48:51 +02:00
Bart De Vries 49d7897e97 Rename showRemainingTime to toggleRemainingTime 2021-04-27 10:16:38 +02:00
Bart De Vries 4fa45b0075 Save last playing track in database instead of config file 2021-04-21 14:53:03 +02:00
Bart De Vries e174269332 Make time countdown setting in player persistent 2021-04-21 14:53:02 +02:00
Bart De Vries 218b86807e Make application remember the last opened main page 2021-04-21 14:53:02 +02:00
Bart De Vries 65ef16017b Rename AlligatorSettings to SettingsManager 2021-04-21 14:53:02 +02:00