# castero changelog This changelog generally follows the principles outlined at , although the format may differ slightly. Version listings include the following sections, if applicable: * Added - for new features * Changed - for changes to existing functionality * Deprecated - for pre-existing features made obsolete or unsupported * Removed - for removed features or functionality * Fixed - for bugs fixed See also . ## 0.9.5 - 2021-04-02 **Added** * Added the `default_layout` config setting. **Fixed** * Fixed a crash when opening the help page with a very small window. * Various minor dependency updates. ## 0.9.4 - 2021-09-17 **Fixed** * Fixed a crash when adding series with empty copyright or builddate tags. ## 0.9.3 - 2021-06-20 **Added** * Added a perspective (accessible by pressing `5`) that displays episodes from all feeds chronologically. **Fixed** * Fixed an issue with parsing timestamps from some (invalid) feeds. * Fixed an issue with parsing titles/descriptions from some feeds. ## 0.9.2 - 2021-05-09 **Fixed** * Fixed reloading feeds not propagating saved playback position. ## 0.9.1 - 2021-03-23 **Added** * @tistatos - Playback position is saved/restored when restarting the client. * @tistatos - Created add_only_unplayed_episodes config option for playing/queueing a feed. * @DGambrinus - Maintain playback speed when playing different episodes. **Changed** * To improve performance, the client now (by default) uses an in-memory database, which is only saved to disk when the client is closed. This can be disabled with the restrict_memory_usage config option. * Improved the performance of importing subscriptions (especially those with many feeds). **Fixed** * @tistatos - Fixed episode data not being deleted when removing feeds. * Fixed player volume occasionally not being retained when switching between episodes. * Fixed exception with terminals that don't support an invisible cursor mode. * Fixed reload operation failing when reloading one feed would fail in a specific way. ## 0.8.2 - 2020-08-23 **Added** * Added a config option for the default playback volume. **Fixed** * Fixed new episodes not being properly sorted in the menu. * Fixed detection for feeds with an empty title tag (they still aren't allowed, but we explicitly check for this now). ## 0.8.1 - 2020-07-26 **Added** * Added the `e` key to execute a system command on an episode. Command can be configured with the `execute_command` option. * Added volume control keybinds. * Added config options to use a proxy. **Changed** * Made the help menu scrollable. * Made separate keybinds for saving/deleting episodes for offline playback (`s` and `x` by default). Existing configs will be migrated. **Fixed** * Fixed an issue where feeds would, on some systems, not be displayed in order. * Fixed poor UI performance when reloading feeds. * Fixed time/duration display not being properly justified - Thanks @buck10! * Fixed an issue importing a certain structure of OPML subscriptions. * Fixed an issue with episode IDs being reset when feeds are reloaded. ## 0.8.0 - 2020-02-22 **Added** * Made database operations multi-threaded to improve performance, especially for users with many feeds. * Added the `u` key for displaying an episode URL in the status bar - Thanks @jose1711! * Added a perspective to display downloaded episodes. Press `4` to access it. **Changed** * Reduced the default input timeout, which is tied to the display refresh rate. This will somewhat increase standby CPU usage. Users with low-end systems may wish to increase this timeout with the `refresh_delay` config setting. * Improved reporting of errors when importing OPML files - Thanks @hebecked! * Improved the overall UX of importing OPML files, with "live" database changes and status reports. * Changed the file naming format for downloaded episodes. Episodes downloaded in earlier versions of castero will not be detected and must be re-downloaded. **Fixed** * Fixed stderr file descriptor not being found on macOS, causing a crash. * Fixed the reloading status message to properly show the current feed number. ## 0.7.0 - 2019-12-13 **Added** * Added support for filtering menus with the `/` key. * Added individual config options for foreground text colors. * Added an option for default playback speed. * Added the number of unplayed episodes to the menu header. **Fixed** * Fixed support for OPML v2. * Fixed menu headers using the wrong background color. * Fixed the metadata window not properly filling the screen height. * Fixed the selected menu index being offscreen when resizing the window. * Fixed menu selections not being sanitized in the correct sequence. * Fixed menus not visually updating when modified. * Fixed ffmpeg output appearing in the client - Thanks @rien333 and @jaseg! * Fixed a crash when resizing the window at some ratios. * Fixed a crash when trying to invert menus. * Fixed a crash when an episode had no audio enclosure. * Fixed a crash when episode enclosure caused a request exception. * Fixed a crash when trying to play the current episode in the queue. ## 0.6.0 - 2019-06-10 **Added** * Added support for importing/exporting subscriptions to and from OPML files. Many other clients support this format, so you are now able to easily move your feeds between clients. To use this feature, run castero with the `--import` or `--export` flag (or run `castero -h` for more info). * Added support for preserving the queue when restarting the client. * Added support for 256 colors - Thanks @arza-zara! * Added controls for playback speed - **[** and **]** by default. **Fixed** * Fixed a crash when viewing metadata for a feed with no description. * Fixed custom_download_dir config option not being an absolute path. * Improved scroll performance of episode menu with many episodes. * Fixed a crash when vertically shrinking the client. ## 0.5.5 - 2019-05-18 **Added** * Added the name of the feed to episodes in the queue menu/perspective. **Fixed** * Fixed client not adhering to the max_episodes config option when reloading. * Fixed the queue not progressing automatically on episode completion. * Fixed a Python 3.5 compatibility issue. ## 0.5.4 - 2019-04-13 **Added** * Added download status "\[D\]" metadata tag to episode menu. **Fixed** * Fixed a crash when queueing a large number of episodes with the VLC player. * Fixed delay when skipping ahead in queue. * Fixed a crash when running with Python 3.5. * Fixed crash when trying to create database file in nonexistant directory. * Fixed episode menu not updating on feed delete. * Fixed menus not updating when terminal dimensions change. * Fixed user metadata (i.e. played status) being overwritten when reloading. ## 0.5.3 - 2019-03-19 **Fixed** * Fixed some files not being properly linked on install. ## 0.5.0 - 2019-03-19 **Added** * The client now uses an sqlite database file for storing data (sqlite added as a dependency). * Added support for marking episodes as played. * Added a metadata-less perspective (SimplePerspective) accessed with `3`. **Changed** * Menus are now able to update dynamically from the database. **Deprecated** * The old JSON `feeds` file is no longer used, in favor of a `castero.db` file in the same location. The client will migrate your `feeds` file to the new database upon starting if necessary. There are no known issues with this process, but your original file is not modified regardless (please create an Issue if you have any problems!). **Fixed** * Fixed a crash when trying to view the metadata of 0 episodes. ## 0.4.2 - 2019-03-02 **Added** * Added a separate config option for seeking forwards/backwards - Thanks @mtostenson! **Changed** * FeedErrors will give more descriptive information in the status bar. **Fixed** * Fixed a potential crash when trying to run without libmpv. * Fixed a crash when an unused player library is uninstalled. * Fixed an issue where some websites would block the client since it did not send requests with a user agent. ## 0.4.1 - 2019-02-12 **Added** * Added support for extracting plaintext from HTML metadata descriptions (can be disabled in config). * Added an option for right-aligning episode time/duration. * Added an option to limit the number of episodes in a feed. * Added an option to disable the default status message. * Added perspective keys to help menu. **Fixed** * mpv support now uses the python-mpv library instead of pympv, which may fix installation problems for some users. * Fixed an issue where client could crash when adding episodes to queue while using mpv. * Fixed a crash when trying to determine whether mpv/libmpv was available. * Fixed a crash when trying to delete nothing on queuelisting perspective. * Fixed a crash when going to episodes menu for a feed with no episodes. * Fixed incomplete metadata being displayed when viewing a feed with a single episode. ## 0.4.0 - 2019-01-26 **Added** * Added support for playback with mpv as an alternative to VLC. * Added foundational support for displaying metadata in menus (i.e. download status) - Thanks @nbastin! * Added support for background transparency (if available on your terminal emulator) - Thanks @aneum7! * Added an option for disabling vertical bars/borders between menus. **Fixed** * Fixed an issue where the client would attempt to download remote media while offline - Thanks @nbastin! * Fixed an issue where the client would sometimes break your config while trying to migrate items with blank values. * Prevented crashing on some download errors; instead, a status/error message is displayed - Thanks @nbastin! * Improved wrapping support for CJK text - Thanks @Rand01ph! * Updated Requests version in response to CVE-2018-18074. ## 0.3.1 - 2018-09-15 **Fixed** * Fixed an issue where config files would not properly migrate when a new config section was added. ## 0.3.0 - 2018-09-15 **Added** * Added a new "perspective" - a separate page for viewing your current queue. You can switch through perspectives by using number keys -- 1 is the primary perspective, 2 is the queue perspective. * Added support for a custom download directory. * Added support for text entry beyond the window width. **Changed** * The menu no longer automatically scrolls when playing an episode/feed (but it still does when you only add the episode/feed to the queue). **Fixed** * Fixed a crash when opening the help menu with a short terminal. ## 0.2.6 - 2018-08-15 **Added** * Added support for custom keybindings in the config. **Fixed** * Fixed an issue where the client would crash if a feed's description or title field was missing. ## 0.2.5 - 2018-06-15 **Added** * Added j/k/l as aliases for seek backward, pause/play, and seek forward, respectively. * Added support for inverting the list of feeds or episodes by pressing 'i' in the corresponding menu. The order of episode lists is preserved, but the order of the feeds list is not. **Changed** * Feeds are now ordered alphabetically. ## 0.2.4 - 2018-05-10 **Added** * Added support for saving an entire feed at once. * Handle -v or --version flag to display version instead of starting the client. **Changed** * Deleting a feed will now delete all of its downloaded/saved episodes. ## 0.2.3 - 2018-05-03 **Added** * Downloads will now be handled sequentially rather than in parallel. **Changed** * The client now explicitly requires VLC >= 2.2.3 * Revised text description for episodes/feeds with missing copyright tags. **Fixed** * Fixed an issue where pressing pause before the media had loaded would not properly pause it. ## 0.2.2 - 2018-04-24 **Added** * You can now delete a downloaded episode by pressing the save key again. * Added a config option for asking for confirmation before deleting a feed. * An error will now be raised on startup if dependencies are not met (VLC). * Number of episodes are now shown in feed metadata. **Changed** * The client will no longer try to load media when a player is created. This substantially improves performance when adding many episodes to a queue. **Fixed** * Fixed an issue where config files would not be properly migrated. ## 0.2.1 - 2018-04-22 **Added** * Automatically migrate users' config file when the client updates and adds or removes a new config option. * The client will now properly resize when the size of the terminal changes. **Changed** * Metadata window will now properly extend to the right edge of the terminal. **Fixed** * Fixed an issue where the queue would not properly recognize that the current episode had finished. * Fixed footer text not being truncated, which caused errors if the screen size was too small. ## 0.2.0 - 2018-04-20 **Added** * Added support for downloading episodes for offline playback. **Fixed** * Fixed the description of some fields in the default config file. * Fixed an issue where the client would not properly obey the reload_on_start config option. * Fixed an issue where pressing enter or space with no feeds would crash the client. ## 0.1.3 - 2018-04-19 **Added** * Added config options for client colors. * Added config option to automatically reload feeds on startup. * Handle -h or --help flag to display help text instead of starting the client. ## 0.1.2 - 2018-04-13 **Added** * You can now add entire feeds to the queue. * Running the client with too small a screen (minimum arbitrarily defined at 20 cols and 8 lines) will now raise an error. **Changed** * Reloading feeds now runs on a separate thread to allow the user to continue interacting with the client. * Refactored setup.py with additional args in preparation for PyPi upload. **Fixed** * Fixed an issue where reloading feeds caused the user's selection to remain in the episodes menu, resulting in strange behavior. * Fixed an issue where status messages would overlap with each other after being replaced. ## 0.1.1 - 2018-04-12 **Added** * Pressing 'r' will now reload/refresh your feeds list. * Added support for showing status messages in the footer, and certain commands will now display status messages after running (or if an error occurs). **Fixed** * Fixed an issue where recreating menus often caused them to be smaller than normal. * Fixed an issue where a feeds file with duplicate keys would not load.