castAway
Project description
🎙️ Cast-Away
Minimalist TUI Podcast Client for Hackers
Cast-Away is a lightweight, keyboard-driven terminal application designed for developers who want to listen to podcasts without leaving their terminal environment. Built with Python and Textual, it provides a distraction-free experience with real-time audio visualization.
✨ Features
- RSS Integration: Add any public podcast RSS feed (NPR, BBC, Darknet Diaries, etc.).
- Dynamic UI: Responsive grid layout that maps your podcast library from a local JSON store.
- Smooth Playback: Non-blocking audio streaming using Pygame.mixer.
- ASCII Visualizer: Real-time audio waveform animation in the terminal.
- Self-Contained: No external dependencies required once compiled.
🛠️ Requirements (TerminalCraft v2)
- Real Problem: Solves the "heavy GUI" problem of modern podcast apps.
- Unix Support: Tested on Linux, macOS, and WSL.
- Open Source: Licensed under MIT for the community.
- No Wrapper: Custom built RSS parser and audio manager (not just a wrapper).
🚀 Quick Start 🚀 Quick Start
-
Installation
Ensure you have Python 3.8+ installed. Clone the repo and install dependencies:
git clone https://github.com/MadushankaRajapaksha/castAway.git cd castAway pip install -e .
-
Run the App
castAway
Or run directly with Python:
python -m castAway
📂 Project Structure
castAway/
├── cli.py # Main entry point and CLI interface
├── core.py # Core RSS parsing and podcast logic
├── db.py # Database management for subscriptions
├── player.py # Audio playback functionality
├── screen.py # TUI interface using Textual
└── test.py # Testing utilities
📸 Screenshots & Demo (Tip: Add a GIF here showing you searching for a podcast and playing it!)
🔧 Development & Contributing
We welcome contributions! Here's how to set up your development environment:
# Clone the repository
git clone https://github.com/MadushankaRajapaksha/castAway.git
cd castAway
# Install in development mode
pip install -e .
# Install development dependencies
pip install pytest pytest-cov flake8 black isort mypy
# Run tests
pytest
# Format code
black castAway/
isort castAway/
📦 Automated Releases
This project uses GitHub Actions for CI/CD:
-
CI Pipeline: Runs on every push and PR with:
- Unit tests across Python 3.8-3.12
- Code linting (flake8, black, isort)
- Type checking (mypy)
- Code coverage reporting
-
PyPI Release: Automatically publishes to PyPI when you push a version tag:
git tag v0.1.0 git push origin v0.1.0
👥 User Testing We are looking for at least 10 active users! If you find a bug or have a feature request, please Open an Issue.
🌍 Open Source & License Distributed under the MIT License. See LICENSE for more information.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file castaway_cli-0.0.2.tar.gz.
File metadata
- Download URL: castaway_cli-0.0.2.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13c77ba03118585d47d5fa3fc4fdfc8d89e5e818805da96d47a5b66a66b5b716
|
|
| MD5 |
e0ec9478ea19b9aa1336a9ed79f43165
|
|
| BLAKE2b-256 |
c5487ee2f1c831be6a250cf549dfb1e7b3d4ca2d5268c8cab7664bef22371908
|
File details
Details for the file castaway_cli-0.0.2-py3-none-any.whl.
File metadata
- Download URL: castaway_cli-0.0.2-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b9a765d9c68568985458503b9fc3af021dad13b28dfc59ef0de9d21cb900212
|
|
| MD5 |
6cb617676176deb502f6f19e54287226
|
|
| BLAKE2b-256 |
6057d044b1347868403625cd6412a838b411ae41c2302e8df6570b248746f2cf
|