Skip to content

Releases: jeff-hughes/shellcaster

Release v2.0.1

03 Mar 21:52
Compare
Choose a tag to compare

v2.0.1 (2022-03-03)

  • Bug fix release to handle improper timeouts on HTTP requests

Release v2.0.0

26 Feb 20:25
Compare
Choose a tag to compare

v2.0.0 (2022-02-26)

Shellcaster version 2.0.0 brings many added features and performance improvements, but there are a few breaking changes to the configuration file to be aware of. These are listed below. You can download the default config file from here, to reference when updating your local config: https://raw.githubusercontent.com/jeff-hughes/shellcaster/master/config.toml

New Features

  • Switched from ncurses C library to Rust-native crossterm library for drawing to the terminal. This required a significant rewrite, but drops a significant non-Rust dependency
  • Added the ability to toggle "filters" -- to only show played or unplayed episodes (default key: "1" to toggle), or to only show downloaded or non-downloaded episodes (default key: "2" to toggle)
  • Details panel can now be scrolled by moving the cursor all the way to the right, and using the same keys to scroll up/down by line or by page

Performance Improvements

  • Added database transactions, which offers a dramatic speed-up when syncing podcasts
  • Use of GUIDs when matching against existing episodes, which also speeds up syncing podcasts. Note: The first time you do a full sync after updating to v2.0.0, it may take some extra time while the app records the GUIDs of all existing episodes in the database. This is a one-time process, so please be patient!
  • Switched to a non-cryptographic hashing algorithm, which offers a minor performance improvement

Breaking Changes

  • The named terminal colors available (e.g., black, blue, cyan) now split off the "dark" versions into separate names. So instead of specifying "blue", you can either specify "blue" or "darkblue". This is a result of switching from ncurses to crossterm. There are also two additional config options for specifying app colors: bold_foreground and bold_background, which are used for titles, unplayed episodes, etc. (see default config)
  • There are two extra keybindings listed in the config file, filter_played and filter_downloaded, which are used to toggle the new filters on and off. By default, they are toggled with the "1" and "2" keys, respectively (see default config)
  • Some of the available crate features have changed: "wide" and "win32" are no longer available (and should no longer be necessary), due to the switch to crossterm
  • In addition, the HTTP client that shellcaster uses did some significant refactoring, resulting in a few other changes in shellcaster's features as a result. The "rustls" feature has been removed -- the app now uses the rustls crate by default. However, you can still choose to use the native-tls crate instead by enabling the "native_tls" feature (note that the name has changed from "native-tls" to "native_tls"). In addition, by default shellcaster will use your OS's native certificate roots (via the "native_certs" feature), but if you wish to turn this off, you can instead use a bundled copy of the Mozilla Root program by building shellcaster with the --no-default-features flag

Release v1.2.1

08 Sep 22:53
Compare
Choose a tag to compare

v1.2.1 (2021-09-08)

  • This is a simple patch release to fix a compilation issue resulting from the update to rustc v1.54.0.

Release v1.2.0

11 May 21:40
Compare
Choose a tag to compare

v1.2.0 (2021-05-11)

  • Adds new keybindings for scrolling up/down a quarter of the page,
    scrolling a full page up/down, and scrolling to the top or bottom
    (thanks to contributor a-kenji)
  • Adds support for customizable colors
    • This is a backwards-compatible change and does not require any
      modification; however, if you wish to customize the colors after
      upgrading, you will need to update your config.toml file
      to add the new options under the "colors" section
  • Filenames of downloaded files now include the publication date, which
    reduces potential conflicts with rebroadcasted episodes
  • Bug fix:
    • Fixed issue with "removed" episodes reappearing after syncing the
      podcast again
  • Some minor performance improvements, particularly when loading the app

Release v1.1.0

01 Dec 23:29
Compare
Choose a tag to compare

v1.1.0 (2020-12-01)

  • Help menu showing the current keybindings (accessible by pressing
    "?" by default)
  • New options for downloading new episodes:
    • Can select whether to always download new episodes when syncing
      podcasts, to never download, or to pop up with a window allowing
      you to select which new episodes to download
  • Will now ask for confirmation before removing podcasts/episodes
    (thanks to contributor dougli1sqrd)
  • Bug fixes:
    • Border gets redrawn properly when scrolling (thanks to contributor a-kenji)
    • Messages at the bottom of the screen properly reset cursor
      position, so they always show up on the far left
  • Other notes:
    • Added consistent code formatting style with rustfmt (thanks to
      contributor thunderbiscuit

Release v1.0.1

18 Aug 23:05
Compare
Choose a tag to compare

v1.0.1 (2020-08-18)

  • This is a patch release to fix some minor bugs
  • Bug fixes:
    • Better tracking of current downloads to avoid re-downloading the same episode twice
    • Fix decoding of HTML entities in episode descriptions to avoid getting cut off in certain cases
    • Properly import OPML v1.0 files
    • Correctly segment titles with Unicode letters

Release v1.0.0

13 Aug 23:33
Compare
Choose a tag to compare

v1.0.0 (2020-08-13)

  • Adjusted the criteria for checking existing episodes when syncing, which results in a dramatic speedup in the syncing process
  • New command line options:
    • shellcaster sync performs a full sync of all podcasts and then exits without starting the UI
    • shellcaster import imports a list of podcasts from an OPML file
    • shellcaster export exports the list of podcasts in the database to an OPML file for easy transfer to other podcast managers
  • Support for episodes that are not .mp3 files (e.g., video episodes)
  • Bug fixes:
    • HTML entities (e.g., &) in episode descriptions are now decoded
    • Podcasts/episodes referred to internally by ID rather than position in the list, which avoids errors when items are added/removed

Release v0.8.2

24 Jul 17:28
Compare
Choose a tag to compare

v0.8.2 (2020-07-24)

  • Adds details panel on the right-hand side when the screen is large enough, providing more information about the selected episode
  • Better notifications for syncing and downloading files
  • New config option: Adjust the maximum number of retries to connect when syncing podcasts or downloading episodes
  • Changed from reqwest package to ureq package, which simplifies some things, and also cuts out numerous other dependencies (meaning a smaller binary size!)
  • Syncing podcasts now uses the same threadpool as downloading, leading to some efficiencies and somewhat simpler code
  • Bug fixes:
    • Creates directory for database if it does not exist
    • Mark episode as played when user plays the episode