Skip to content

kellylford/rssquick

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RSS Quick - Accessible WPF RSS Reader

Get Involved / Feedback

We welcome feedback, suggestions, and contributions! If you have ideas, bug reports, or want to help improve RSS Quick, please visit our GitHub Issues page.

  • Suggest features or improvements
  • Report bugs or accessibility issues
  • Ask questions or get help

Your input helps make RSS Quick better for everyone!

A fast, accessible RSS reader built with WPF for efficient headline browsing. Features a clean 2-panel interface optimized for screen readers and keyboard navigation.

Getting RSS Quick

You can download the latest version of RSS Quick in two ways:

Which Package Should I Use?

  • win-x64: For most Intel/AMD Windows computers
  • win-arm64: For ARM-based Windows devices (Surface Pro X, etc)

How to Run

  1. Download the ZIP file for your computer's architecture.
  2. Unzip the contents to any folder (e.g., your Desktop or Documents).
  3. Run RSSQuick.exe inside the unzipped folder.
    • If you do not have the .NET 8.0 Runtime installed, Windows will prompt you to download it automatically.
    • No installation is requiredβ€”just unzip and run!

Quick Start

  1. Run the application (RSSQuick.exe or dotnet run)
  • By default, RSS Quick will automatically load any file named rss.opml in the same directory where the program is launched.
  • A default rss.opml file is included for you to try out right away.
  1. Import feeds: Activate "Import OPML File" button
  2. Browse feeds: Use arrow keys to navigate, Enter to load headlines
  3. Read articles: Tab to headlines, browse with arrows, Alt+B to open in browser

Key Features

Simple & Fast

  • 2-Panel Layout: Feeds list β†’ Headlines list β†’ External browser
  • No Persistent Storage: Always fetches fresh content, no cache management
  • OPML Import: Load comprehensive feed collections instantly
  • Lightweight: No database overhead or complex configuration

Smart Content Handling

  • Title Cleaning: Automatically removes problematic characters that cause braille display issues
  • External Browser: Articles open in your preferred browser with full accessibility
  • Feed Organization: Hierarchical categories with clear navigation structure

Navigation & Keyboard Shortcuts

Tab Navigation Flow

  1. Import OPML File button (top)
  2. RSS Feeds tree (left panel)
  3. Headlines list (right panel)
  4. Open in Browser button

Within Each Panel

  • Arrow Keys: Navigate items within current panel
  • Enter: Activate selected item (load feed or open article)
  • Tab/Shift+Tab: Move between panels
  • Alt+B: Open selected headline in browser

Feed Tree (Left Panel)

  • Arrow Keys: Navigate between feeds and categories
  • Enter: Load headlines for selected feed
  • Expand/Collapse: Standard TreeView navigation

Headlines List (Right Panel)

  • Arrow Keys: Browse through headlines
  • Enter: Open article in external browser
  • Alt+B: Alternative to Enter for opening articles

Status Bar Information

The status bar provides contextual information that screen readers can access:

  • Loading: "Loading feed: BBC News..."
  • Loaded: "Loaded 45 articles from BBC News"
  • Navigation: "BBC News - 12 of 45" (current position)
  • Focus Changes: "Feed Tree - Reuters selected"

OPML File Support

RSS Quick supports standard OPML files with hierarchical organization:

<?xml version="1.0" encoding="UTF-8"?>
<opml version="2.0">
  <head>
    <title>My RSS Feeds</title>
  </head>
  <body>
    <outline text="News" title="News">
      <outline text="BBC News" title="BBC News" 
               type="rss" xmlUrl="http://feeds.bbci.co.uk/news/rss.xml"/>
      <outline text="Reuters" title="Reuters" 
               type="rss" xmlUrl="http://feeds.reuters.com/reuters/topNews"/>
    </outline>
    <outline text="Technology" title="Technology">
      <outline text="Ars Technica" title="Ars Technica" 
               type="rss" xmlUrl="http://feeds.arstechnica.com/arstechnica/index"/>
    </outline>
  </body>
</opml>

Included Sample OPML

The application includes RSS.opml with curated feeds across categories:

  • Global News: NYT, Guardian, Reuters, AP News
  • Technology: General tech news, development, AI/ML
  • Science: General science, space, medical research
  • Culture: Arts, books, entertainment
  • Sports: General sports, leagues (NFL, NBA, MLB, etc.)
  • Accessibility: Focused accessibility and inclusive design news

Accessibility Features

Screen Reader Support

  • Clean Announcements: Headlines without clutter or excessive whitespace
  • Contextual Information: Feed name and position counters in status bar
  • Logical Focus Flow: Predictable Tab navigation between interface elements
  • Live Regions: Status updates announced automatically

Technical Requirements

  • Platform: Windows 10/11 (WPF requirement)
  • Runtime: .NET 8.0 or later
  • Network: Internet connection for RSS feed fetching
  • Browser: Default web browser for article viewing

πŸ› οΈ Development Workflow

Daily Development:

# Quick test
run.cmd

# Or manual
dotnet run

For Distribution:

  1. Most common: Double-click build-simple.cmd
  2. Multi-platform: Double-click build-multi-small.cmd
  3. Zero-setup: Double-click distribute.cmd

πŸ“‹ Requirements

For Building:

  • Windows 10/11 (WPF requirement)
  • .NET 8.0 SDK (for development)
  • Internet connection (to restore packages)

For End Users:

  • Windows 10/11
  • .NET 8.0 Runtime (for small distributions)
  • Nothing additional (for self-contained distributions)

Get .NET 8.0: https://dotnet.microsoft.com/download/dotnet/8.0

πŸš€ Complete Build Reference

All build scripts work from File Explorer (double-click) or command line:

  • run.cmd - Quick development testing
  • build.cmd - Advanced development options
  • build-simple.cmd - Standard distribution (recommended)
  • build-multi-small.cmd - Multi-platform small distribution
  • distribute.cmd - Self-contained distribution
  • distribute-small.cmd - Single-platform small distribution

See HOW-TO-BUILD.md for detailed instructions.

Troubleshooting

Common Issues

Application won't start

  • Ensure Windows 10/11 compatibility
  • Install .NET 8.0 SDK if building from source

OPML import fails

  • Verify file is valid XML format
  • Check that RSS feed URLs are accessible
  • Ensure file contains type="rss" attributes

Headlines don't load

  • Verify internet connection
  • Try different feed (some may be temporarily unavailable)
  • Check that you pressed Enter on feed, not just selected it

Navigation feels unresponsive

  • Use Tab/Shift+Tab to move between panels
  • Use arrow keys within each panel
  • Remember that feed selection doesn't auto-load headlines

Accessibility Troubleshooting

Screen reader not announcing properly

  • Check status bar for current context
  • Use Insert+Page Down (NVDA/JAWS) to read status bar
  • Verify focus is in expected panel

Tab navigation issues

  • Use standard Tab/Shift+Tab for panel navigation
  • Arrow keys for navigation within panels
  • Avoid custom keyboard shortcuts that might interfere

License

MIT License - See LICENSE file for details.

Contributing

Issues and pull requests welcome. Focus areas:

  • Additional RSS feed sources
  • Accessibility improvements
  • Performance optimizations
  • Cross-platform compatibility

RSS Quick v1.0 - Built for accessibility, optimized for efficiency

For Developers

Prerequisites

Verify Prerequisites

Open Command Prompt or PowerShell and check:

dotnet --version

Should show version 8.0.x or higher.

Building the Application

Quick Build Scripts (Recommended)

The project includes convenient batch files for easy building:

run.cmd - Simple Build and Run

Just launch to build and run:

run.cmd
  • Builds in Release mode for optimal performance
  • Runs the application immediately after building
  • Shows clear error messages if build fails
  • Perfect for quick testing
build.cmd - Advanced Build Options

Multiple build modes and options:

# Default: Debug build and run
build.cmd

# Release build and run
build.cmd release

# Create standalone executable (no .NET required)
build.cmd publish

# Clean all build artifacts
build.cmd clean

# Show all available options
build.cmd help

Key Features:

  • βœ… Standalone Executable: build.cmd publish creates RSSQuick.exe that runs without .NET installed
  • βœ… Error Handling: Stops on build failures with clear messages
  • βœ… Multiple Configurations: Debug for development, Release for distribution
  • βœ… Easy Cleanup: build.cmd clean removes all build files
  • βœ… User-Friendly: Progress messages and help documentation

Standalone Distribution:

build.cmd publish

Creates: bin\Release\net8.0-windows\win-x64\publish\RSSQuick.exe

  • Copy this exe anywhere and run without installing .NET
  • Perfect for distributing to end users
  • Self-contained with all dependencies included

Manual Build Options

Option 1: Command Line (Manual)
  1. Open Terminal/Command Prompt
  2. Navigate to the project folder:
    cd path\to\RSSReaderWPF
  3. Build the application:
    dotnet build
  4. Run the application:
    dotnet run
Option 2: Visual Studio
  1. Open RSSReaderWPF.csproj in Visual Studio 2022
  2. Build β†’ Build Solution (Ctrl+Shift+B)
  3. Run β†’ Start Without Debugging (Ctrl+F5)
Option 3: Visual Studio Code
  1. Open the RSSReaderWPF folder in VS Code
  2. Terminal β†’ New Terminal
  3. Run:
    dotnet build
    dotnet run

Build Comparison Guide

Method Best For Pros Cons
run.cmd Quick testing One-click, Release mode, error handling Windows only
build.cmd Development Multiple options, standalone exe, cleanup Windows only
Manual dotnet Cross-platform Works everywhere, direct control More typing
Visual Studio Full IDE Debugging, IntelliSense, project management Requires VS install
VS Code Lightweight Fast, extensions, integrated terminal Less IDE features

Distribution Options

For End Users:

  1. build.cmd publish β†’ Creates standalone executable
  2. Copy RSSQuick.exe + distribute
  3. No .NET installation required for end users

For Developers:

  1. Share source code + run.cmd for easy building
  2. Use build.cmd clean before committing to remove build artifacts
  3. build.cmd debug for development, build.cmd release for testing

Advanced Build Commands

If you need manual control beyond the batch files:

# Manual standalone executable creation
dotnet publish -c Release -r win-x64 --self-contained true

# For 32-bit Windows  
dotnet publish -c Release -r win-x86 --self-contained true

# Clean manually
dotnet clean

# Restore packages
dotnet restore

Output Location: bin\Release\net8.0-windows\win-x64\publish\

Build Troubleshooting

"SDK not found":

  • Install .NET 8.0 SDK from Microsoft
  • Restart terminal/IDE after installation

"Package restore failed":

dotnet restore
dotnet build

Build Troubleshooting

"SDK not found":

  • Install .NET 8.0 SDK from Microsoft
  • Restart terminal/IDE after installation

"Package restore failed":

dotnet restore
dotnet build

Project Structure

RSSReaderWPF/
β”œβ”€β”€ MainWindow.xaml          # UI layout
β”œβ”€β”€ MainWindow.xaml.cs       # Main logic and event handling
β”œβ”€β”€ Models/
β”‚   β”œβ”€β”€ Feed.cs             # Feed data model
β”‚   β”œβ”€β”€ FeedItem.cs         # News item model
β”‚   └── MainViewModel.cs    # MVVM view model
β”œβ”€β”€ Converters/
β”‚   └── Converters.cs       # UI value converters
└── RSSReaderWPF.csproj     # Project configuration

Dependencies

  • .NET 8.0 WPF: UI framework
  • System.ServiceModel.Syndication: RSS/Atom parsing
  • System.Text.Json: JSON handling
  • System.Xml: OPML parsing

Quick Reference for Developers

# Quick build and run
run.cmd

# Development workflow
build.cmd debug           # Debug build and run
build.cmd release         # Release build and run  
build.cmd clean          # Clean build artifacts

# Distribution
build.cmd publish        # Create standalone executable
build.cmd help           # Show all options

# Manual commands (if needed)
dotnet build             # Build only
dotnet run               # Run only  
dotnet clean             # Clean only
dotnet restore           # Restore packages

File Structure:

  • run.cmd β†’ Simple one-click build and run
  • build.cmd β†’ Advanced build options with help
  • MainWindow.xaml β†’ UI layout
  • MainWindow.xaml.cs β†’ Main application logic
  • Models/ β†’ Data models and MVVM classes

License

This project is for experimentation and learning purposes.

Support

For end users: The application is designed to be simple - just run the executable and import your OPML file.

For developers: Check .NET installation with dotnet --version, then dotnet build and dotnet run.

About

RSSQuick - Accessible WPF RSS Reader

Resources

Stars

Watchers

Forks

Packages

No packages published