A terminal-based application to explore the Dragon Ball series, including episodes, movies, and characters.
- Browse episodes by series (Dragon Ball, Dragon Ball Z, etc.)
- View detailed information about each episode
- Browse and view details of Dragon Ball movies
- Browse and view details of Dragon Ball characters
- User-friendly terminal interface with keyboard navigation
- Search functionality for episodes, movies, and characters
- Sorting options for episodes, movies, and characters
- Pagination for navigating large datasets efficiently
- Fuzzy search to find content even with typos
- Customizable themes with multiple color schemes
- Configuration system for user preferences
-
Make sure you have Rust installed on your system. If not, you can install it from https://www.rust-lang.org/.
-
Clone this repository:
git clone https://github.com/Pewpenguin/DragonBallTUI cd dragon-ball-guide -
Build the application:
cargo build --release
Run the application using:
cargo run --release
- Use
Tabto switch between Episodes, Movies, and Characters tabs - Use
LeftandRightarrow keys to navigate between different series in the Episodes tab - Use
UpandDownarrow keys to navigate through episodes, movies, or characters - Press
Enterto view details of a selected episode, movie, or character - Press
Escto go back from details view to list view - Press
qto quit the application - Press
sto enter search mode - Press
mto change sort method - Press
oto toggle sort order - Press
hto view help screen - Press
tto cycle through themes
- Press
norNto go to the next page - Press
porPto go to the previous page - Press
forFto go to the first page - Press
lorLto go to the last page
The application features a powerful fuzzy search capability:
- Press
sto enter search mode - Type your search query (fuzzy matching will find results even with typos)
- Use pagination controls (
n,p,f,l) to navigate through search results - Press
Enterto select a search result - Press
Escto exit search mode
Search results are highlighted to show matching characters, making it easy to see why a particular item was included in the results.
- Press
mto cycle through sort methods (Number/Title/Release Date) - Press
oto toggle sort order (Ascending/Descending)
The application uses a config.json file for customization. You can modify the following settings:
theme: Current theme name (default, dark, light)themes: Color configurations for each themeitems_per_page: Number of items to display per pageshow_keyboard_shortcuts: Whether to display keyboard shortcutsenable_animations: Enable/disable UI animationsdefault_sort_method: Default method for sorting itemsdefault_sort_order: Default order for sorting (ascending/descending)enable_fuzzy_search: Enable/disable fuzzy search capability
The application uses three JSON files to store data:
episodes.json: Contains information about all episodesmovies.json: Contains information about all moviescharacters.json: Contains information about all characters
If these files don't exist, the application will create them with default data.
You can modify the episodes.json, movies.json, and characters.json files to add, remove, or update information about episodes, movies, and characters.
- tui: Terminal user interface library
- crossterm: Terminal manipulation library
- serde: Serialization and deserialization library for JSON
- fuzzy_matcher: Library for fuzzy text matching
- chrono: Date and time library
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.
- Implement the Characters tab functionality
- Add search functionality
- Implement sorting options
- Add pagination controls
- Implement fuzzy search