Skip to content

Commit

Permalink
modify README to state forking status
Browse files Browse the repository at this point in the history
  • Loading branch information
gilcu3 committed Mar 14, 2024
1 parent 76afe9c commit 816318a
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 33 deletions.
8 changes: 4 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
- Bug fix release to handle improper timeouts on HTTP requests

## 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
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/gilcu3/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
Expand All @@ -17,8 +17,8 @@ Shellcaster version 2.0.0 brings many added features and performance improvement
- 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](https://raw.githubusercontent.com/jeff-hughes/shellcaster/master/config.toml))
- 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](https://raw.githubusercontent.com/jeff-hughes/shellcaster/master/config.toml))
- 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](https://raw.githubusercontent.com/gilcu3/shellcaster/master/config.toml))
- 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](https://raw.githubusercontent.com/gilcu3/shellcaster/master/config.toml))
- 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

Expand All @@ -32,7 +32,7 @@ Shellcaster version 2.0.0 brings many added features and performance improvement
- 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](https://github.com/jeff-hughes/shellcaster/blob/master/config.toml)
upgrading, you will need to [update your config.toml file](https://github.com/gilcu3/shellcaster/blob/master/config.toml)
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
Expand Down
6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ description = "A terminal-based podcast manager to subscribe to and play podcast
keywords = ["podcast", "terminal", "TUI", "curses"]
categories = ["multimedia::audio", "command-line-interface"]

homepage = "https://github.com/jeff-hughes/shellcaster"
repository = "https://github.com/jeff-hughes/shellcaster"
documentation = "https://github.com/jeff-hughes/shellcaster"
homepage = "https://github.com/gilcu3/shellcaster"
repository = "https://github.com/gilcu3/shellcaster"
documentation = "https://github.com/gilcu3/shellcaster"
readme = "README.md"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
Expand Down
33 changes: 8 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,19 @@
<div align="center"><img alt="shellcaster logo: Ferris the crab with headphones" src="https://raw.githubusercontent.com/jeff-hughes/shellcaster/master/img/shellcaster-logo_smol.png"/></div>
<div align="center"><img alt="shellcaster logo: Ferris the crab with headphones" src="https://raw.githubusercontent.com/gilcu3/shellcaster/master/img/shellcaster-logo_smol.png"/></div>

# Note

This project is no longer maintained. I no longer have the time, nor the motivation, to maintain it. It may still work for you, but I make no guarantees. I may come back to it at some point in the future, but no guarantees on that either.
This is a fork of the original [shellcaster](https://github.com/jeff-hughes/shellcaster), which is no longer maintained. Currently I am planning to implement the features states in `TODO.md`, while learning `rust` at the same time.

# Shellcaster

Shellcaster is a terminal-based podcast manager, built in Rust. It provides a terminal UI (i.e., an ncurses-like interface) to allow users to subscribe to podcast feeds, and sync feeds to check for new episodes. Episodes may be downloaded locally, played with an external media player, and marked as played/unplayed. Keybindings and other options are configurable via a config file.

<div align="center"><img alt="screenshot of shellcaster" src="https://raw.githubusercontent.com/jeff-hughes/shellcaster/master/img/screenshot.png"/></div>
<div align="center"><img alt="screenshot of shellcaster" src="https://raw.githubusercontent.com/gilcu3/shellcaster/master/img/screenshot.png"/></div>

## Installing shellcaster

### On Arch Linux

There are packages available for shellcaster in the Arch User Repository (AUR). Use `makepkg -si` ([see further details](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_and_upgrading_packages)) or your favourite AUR helper program to install one of the following packages:

* [Stable source package](https://aur.archlinux.org/packages/shellcaster/)
* [Stable binary package](https://aur.archlinux.org/packages/shellcaster-bin/)
* [Latest development package](https://aur.archlinux.org/packages/shellcaster-git/)

### On other Linux distributions and MacOS
### On Linux distributions and MacOS

Currently the only option is to build from source.

Expand Down Expand Up @@ -52,7 +45,7 @@ cargo install shellcaster --no-track --root "$HOME/.local"
2. You can clone the Github repo and compile it yourself:

```bash
git clone https://github.com/jeff-hughes/shellcaster.git
git clone https://github.com/gilcu3/shellcaster.git
cd shellcaster
cargo build --release # add or remove any features with --features

Expand Down Expand Up @@ -130,7 +123,7 @@ shellcaster export > /path/to/output/file.opml

## Configuring shellcaster

If you want to change configuration settings, the sample `config.toml` file can be copied from [here](https://raw.githubusercontent.com/jeff-hughes/shellcaster/master/config.toml). Download it, edit it to your fancy, and place it in the following location:
If you want to change configuration settings, the sample `config.toml` file can be copied from [here](https://raw.githubusercontent.com/gilcu3/shellcaster/master/config.toml). Download it, edit it to your fancy, and place it in the following location:

```bash
# on Linux
Expand Down Expand Up @@ -209,18 +202,8 @@ The sample file above provides comments that should walk you through all the ava

#### Customizable colors

You can set the colors in the app with either built-in terminal colors or (provided your terminal supports it) customizable colors as well. See the "colors" section in the [config.toml](https://github.com/jeff-hughes/shellcaster/blob/master/config.toml) for details about how to specify these colors!
You can set the colors in the app with either built-in terminal colors or (provided your terminal supports it) customizable colors as well. See the "colors" section in the [config.toml](https://github.com/gilcu3/shellcaster/blob/master/config.toml) for details about how to specify these colors!

## Syncing without the UI

Some users may wish to sync their podcasts automatically on a regular basis, e.g., every morning. The `shellcaster sync` subcommand can be used to do this without opening up the UI, and does a full sync of all podcasts in the database. This could be used to set up a cron job or systemd timer, for example. Please refer to the relevant documentation for these systems for setting it up on the schedule of your choice.

## Contributing

Contributions from others are welcome! If you wish to contribute, feel free to clone the repo and submit pull requests. **Please ensure you are on the `develop` branch when making your edits**, as this is where the continued development of the app is taking place. Pull requests will only be merged to the `develop` branch, so you can help to avoid merge conflicts by doing your work on that branch in the first place.

Thanks to these fine folks who have made contributions: [a-kenji](https://github.com/a-kenji), [dougli1sqrd](https://github.com/dougli1sqrd), [dwvisser](https://github.com/dwvisser), [thunderbiscuit](https://github.com/thunderbiscuit)

## Why "shellcaster"?

I was trying to come up with a play on the word "podcast", and I liked the use of the word "shell" for several reasons. "Shell" is a synonym for the word "pod". The terminal is also referred to as a shell (and shellcaster is a terminal-based program). In addition, the program is built on Rust, whose mascot is Ferris the crab. Finally, I just personally enjoy that "shellcaster" sounds a lot like "spellcaster", so you can feel like a wizard when you use the program...
Some users may wish to sync their podcasts automatically on a regular basis, e.g., every morning. The `shellcaster sync` subcommand can be used to do this without opening up the UI, and does a full sync of all podcasts in the database. This could be used to set up a cron job or systemd timer, for example. Please refer to the relevant documentation for these systems for setting it up on the schedule of your choice.
6 changes: 6 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Planned changes

- [ ] Option to avoid marking as read when playing
- [ ] Syncing with gpodder api
- [ ] Queue
- [ ] Internal Player
2 changes: 1 addition & 1 deletion src/ui/popup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ impl<'a> PopupWin<'a> {
);
let _ = welcome_win.write_wrap_line(
row + 1,
"https://github.com/jeff-hughes/shellcaster",
"https://github.com/gilcu3/shellcaster",
None,
);

Expand Down

0 comments on commit 816318a

Please sign in to comment.