feat: add EPG grid view, search IPC, and channel favoriting #1

Open
crashmedia wants to merge 0 commits from feat/epg-favorites-search into main
Owner

Changes

Part A: XMLTV EPG fetching

  • Added XmltvEpg struct in crates/crashfin-xtream/src/xmltv.rs
  • Parses XMLTV format EPG data from Xtream servers
  • Added get_epg() method with channel filtering and time range support

Part B: Favorites storage

  • Created FavoriteStore in crates/crashfin-core/src/favorites.rs
  • Persists favorites to ~/.config/crashfin/favorites.json
  • Supports toggle, get_all, and is_favorite operations

Part C: IPC methods

  • search: Searches both Jellyfin and Xtream providers
  • getEpg: Fetches XMLTV EPG data for a channel
  • toggleFavorite: Adds/removes item from favorites
  • getFavorites: Returns all favorited item IDs

Part D: AppState integration

  • Added favorites field to AppState
  • Initialized in AppState::load()

Commit: feat: add EPG fetching, favorites storage, search IPC, favorite toggle

## Changes ### Part A: XMLTV EPG fetching - Added `XmltvEpg` struct in `crates/crashfin-xtream/src/xmltv.rs` - Parses XMLTV format EPG data from Xtream servers - Added `get_epg()` method with channel filtering and time range support ### Part B: Favorites storage - Created `FavoriteStore` in `crates/crashfin-core/src/favorites.rs` - Persists favorites to `~/.config/crashfin/favorites.json` - Supports toggle, get_all, and is_favorite operations ### Part C: IPC methods - `search`: Searches both Jellyfin and Xtream providers - `getEpg`: Fetches XMLTV EPG data for a channel - `toggleFavorite`: Adds/removes item from favorites - `getFavorites`: Returns all favorited item IDs ### Part D: AppState integration - Added `favorites` field to `AppState` - Initialized in `AppState::load()` Commit: feat: add EPG fetching, favorites storage, search IPC, favorite toggle
Some checks failed
CI / Build & Test (pull_request) Failing after 1m18s
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/epg-favorites-search:feat/epg-favorites-search
git switch feat/epg-favorites-search

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feat/epg-favorites-search
git switch feat/epg-favorites-search
git rebase main
git switch main
git merge --ff-only feat/epg-favorites-search
git switch feat/epg-favorites-search
git rebase main
git switch main
git merge --no-ff feat/epg-favorites-search
git switch main
git merge --squash feat/epg-favorites-search
git switch main
git merge --ff-only feat/epg-favorites-search
git switch main
git merge feat/epg-favorites-search
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
crashmedia/crashfin!1
No description provided.