nos-cli 0.1.0

A terminal-based RSS feed reader for NOS.nl news
# NOS CLI

A modern, fast terminal-based RSS feed reader specifically designed for NOS.nl (Nederlandse Omroep Stichting) news feeds.

## ✨ Features

- 📰 **Multiple Feed Categories**: Access news, sports, and special programs from NOS
- 🖼️ **Terminal Image Support**: View article images directly in your terminal
-**Fast & Responsive**: Smooth navigation with vi-style keybindings
- 🎨 **Beautiful UI**: Clean interface with official NOS brand colors
- 📱 **Responsive Layout**: Adapts to different terminal sizes
- 🔍 **Article Preview**: Quick preview text in list view
- 📖 **Full Article View**: Read complete articles with proper formatting

## 🚀 Installation

### From Source

```bash
# Clone the repository
git clone https://github.com/thijmen-nos/nos-cli.git
cd nos-cli

# Build and install
cargo install --path .
```

### Prerequisites

- Rust 1.70 or later
- A terminal that supports 256 colors (most modern terminals)
- For optimal image display: A terminal with image protocol support (iTerm2, Kitty, etc.)

## 📖 Usage

Start the application:

```bash
nos-cli
```

### Navigation

The application uses intuitive keybindings:

#### Feed Selection Mode
- `↑/↓` or `j/k`: Navigate between feeds
- `Enter/l/→`: Select a feed
- `q/Esc`: Quit application

#### Article List Mode
- `↑/↓` or `j/k`: Navigate between articles
- `Enter/l/→`: Open article details
- `h/←/Backspace`: Return to feed selection
- `q/Esc`: Quit application

#### Article Detail Mode
- `↑/↓` or `j/k`: Scroll article content
- `J/K`: Jump to next/previous article
- `h/←/Backspace`: Return to article list
- `q/Esc`: Quit application

## 📺 Available Feeds

### News Feeds
- NOS Nieuws Algemeen (General News)
- NOS Nieuws Binnenland (Domestic News)
- NOS Nieuws Buitenland (International News)
- NOS Nieuws Politiek (Politics)
- NOS Nieuws Economie (Economics)
- NOS Nieuws Opmerkelijk (Remarkable News)
- NOS Nieuws Koningshuis (Royal House)
- NOS Nieuws Cultuur en media (Culture & Media)
- NOS Nieuws Tech (Technology)

### Sports Feeds
- NOS Sport Algemeen (General Sports)
- NOS Sport Voetbal (Football)
- NOS Sport Wielrennen (Cycling)
- NOS Sport Schaatsen (Ice Skating)
- NOS Sport Tennis
- NOS Sport Formule 1 (Formula 1)

### Special Programs
- Nieuwsuur
- NOS op 3
- NOS Jeugdjournaal (Youth News)

## 🛠️ Development

### Building

```bash
# Debug build
cargo build

# Release build
cargo build --release
```

### Running

```bash
# Run with cargo
cargo run

# Run with debug logging
RUST_LOG=debug cargo run
```

### Testing

```bash
cargo test
```

## 🤝 Contributing

We welcome contributions! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

### Development Guidelines

1. Follow standard Rust conventions and formatting (`cargo fmt`)
2. Ensure all tests pass (`cargo test`)
3. Add documentation for new features
4. Update README if needed

## 📄 License

This project is licensed under either of

- Apache License, Version 2.0, ([LICENSE-APACHE]LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT]LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

## 🙏 Acknowledgments

- [NOS.nl]https://nos.nl for providing the RSS feeds
- [Ratatui]https://github.com/ratatui-org/ratatui for the excellent TUI framework
- The Rust community for the amazing ecosystem

## 📞 Support

If you encounter any issues or have questions, please [open an issue](https://github.com/thijmen-nos/nos-cli/issues) on GitHub.

---

Made with ❤️ for the Dutch news community