Skip to content

Commit b527cb8

Browse files
authored
Add files via upload
1 parent e6487a1 commit b527cb8

20 files changed

Lines changed: 3486 additions & 246 deletions

README.md

Lines changed: 63 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ Track, organize, rate and launch every game you own — Steam, Epic, GOG, and cu
1010
<p>
1111
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-7c3aed?style=flat-square" alt="MIT License"/></a>
1212
<img src="https://img.shields.io/badge/Platform-Windows%2010%2F11-0078D4?style=flat-square&logo=windows" alt="Windows"/>
13-
<img src="https://img.shields.io/badge/Version-0.7.0-22c55e?style=flat-square" alt="v0.7.0"/>
13+
<img src="https://img.shields.io/badge/Version-0.8.0-22c55e?style=flat-square" alt="v0.8.0"/>
1414
<a href="https://tauri.app"><img src="https://img.shields.io/badge/Built%20with-Tauri%202-FFC131?style=flat-square" alt="Tauri 2"/></a>
1515
<img src="https://img.shields.io/badge/React-18-61DAFB?style=flat-square&logo=react" alt="React 18"/>
1616
<img src="https://img.shields.io/badge/Rust-backend-CE422B?style=flat-square&logo=rust" alt="Rust"/>
1717
</p>
1818

1919
<p>
2020
<a href="https://zsync.eu/zgamelib/"><strong>🌐 Website</strong></a> &nbsp;·&nbsp;
21-
<a href="https://zsync.eu/zgamelib/app/ZGameLib_0.7.0_x64_en-US.msi"><strong>⬇ Download MSI</strong></a> &nbsp;·&nbsp;
22-
<a href="https://zsync.eu/zgamelib/app/ZGameLib_0.7.0_x64-setup.exe"><strong>⬇ Download EXE</strong></a> &nbsp;·&nbsp;
21+
<a href="https://zsync.eu/zgamelib/app/ZGameLib_0.8.0_x64_en-US.msi"><strong>⬇ Download MSI</strong></a> &nbsp;·&nbsp;
22+
<a href="https://zsync.eu/zgamelib/app/ZGameLib_0.8.0_x64-setup.exe"><strong>⬇ Download EXE</strong></a> &nbsp;·&nbsp;
2323
<a href="https://github.com/TheHolyOneZ/ZGameLib"><strong>GitHub</strong></a>
2424
</p>
2525

@@ -29,11 +29,11 @@ Track, organize, rate and launch every game you own — Steam, Epic, GOG, and cu
2929

3030
## Preview
3131

32-
> Recorded on v0.7.0. Newer versions include per-page search, mod loader, cleaner layout, and more improvements.
32+
> Recorded on v0.3.0. Newer versions include per-page search, mod loader, cleaner layout, and more improvements.
3333
3434
<div align="center">
3535

36-
[![ZGameLib Preview](https://img.youtube.com/vi/4L1U4SOJrQg/maxresdefault.jpg)](https://www.youtube.com/watch?v=4L1U4SOJrQg)
36+
[![ZGameLib Preview](https://img.youtube.com/vi/rlqUUqAPOxU/maxresdefault.jpg)](https://www.youtube.com/watch?v=rlqUUqAPOxU)
3737

3838
</div>
3939

@@ -43,8 +43,8 @@ Track, organize, rate and launch every game you own — Steam, Epic, GOG, and cu
4343

4444
| Installer | Format | Notes |
4545
|-----------|--------|-------|
46-
| [ZGameLib_0.7.0_x64_en-US.msi](https://zsync.eu/zgamelib/app/ZGameLib_0.7.0_x64_en-US.msi) | `.msi` | **Recommended** — Windows Installer |
47-
| [ZGameLib_0.7.0_x64-setup.exe](https://zsync.eu/zgamelib/app/ZGameLib_0.7.0_x64-setup.exe) | `.exe` | NSIS alternative installer |
46+
| [ZGameLib_0.8.0_x64_en-US.msi](https://zsync.eu/zgamelib/app/ZGameLib_0.8.0_x64_en-US.msi) | `.msi` | **Recommended** — Windows Installer |
47+
| [ZGameLib_0.8.0_x64-setup.exe](https://zsync.eu/zgamelib/app/ZGameLib_0.8.0_x64-setup.exe) | `.exe` | NSIS alternative installer |
4848

4949
> **Windows SmartScreen:** On first launch you may see *"Windows protected your PC"* — click **More info → Run anyway**. This is expected for unsigned indie apps.
5050
@@ -59,7 +59,7 @@ Track, organize, rate and launch every game you own — Steam, Epic, GOG, and cu
5959
- [Mod Loader](#-mod-loader)
6060
- [Game Spin Wheel](#-game-spin-wheel)
6161
- [Statistics](#-statistics)
62-
- [Themes](#-themes--7-built-in)
62+
- [Themes](#-themes--7-built-in--custom)
6363
- [System Integration](#-system-integration)
6464
- [Data & Privacy](#-data--privacy)
6565
- [Keyboard Shortcuts](#keyboard-shortcuts)
@@ -129,10 +129,15 @@ Track, organize, rate and launch every game you own — Steam, Epic, GOG, and cu
129129
- Scroll-to-top floating button after 400 px of scroll
130130

131131
**Context Menu & Health**
132-
- **Right-click** any game card or list row → Play · Open Folder · Favorite · Pin · Copy Name · View Details · **Delete**
132+
- **Right-click** any game card or list row → Play · Open Folder · Favorite · Pin · Copy Name · View Details · **Collections** (submenu) · **Delete**
133133
- **Exe health badge** — amber warning icon on cards when the executable is missing
134134
- Loading skeleton grid while library loads
135135

136+
**Bulk IGDB Scan**
137+
- Sparkle button (✦) in the Topbar scans every game that has no IGDB data and is not flagged
138+
- Spins while running; a live `X/Y` counter badge shows progress
139+
- Games flagged after clearing wrong IGDB data are silently skipped
140+
136141
**Command Palette** (`Ctrl+K`)
137142
- Centered overlay with fuzzy search across all game names
138143
- Results show cover thumbnail and platform badge; keyboard navigation (↑ ↓ Enter Escape)
@@ -141,9 +146,18 @@ Track, organize, rate and launch every game you own — Steam, Epic, GOG, and cu
141146
**Batch Multi-Select**
142147
- Checkbox appears top-left on game cards (visible on hover or when selected) and in list rows
143148
- Select multiple games; a **BatchActionBar** slides up from the bottom
144-
- Apply a status, set a rating (clamped 1–10), or add a tag to all selected games at once
149+
- Apply a status, set a rating (clamped 1–10), add a tag, or **add to a Collection**all applied to every selected game at once
145150
- Delete all selected games with one click; × clears the selection
146151

152+
**Collections**
153+
- Create named collections to group games any way you like
154+
- Grid/list view toggle, search bar, and click-to-edit description per collection
155+
- Right-click a collection to rename or delete it
156+
- Open a collection to browse its games with search and grid/list toggle
157+
- Right-click any game (anywhere) → **Collections submenu** — checkmarks show which collections it belongs to; click to add or remove
158+
- A game can belong to multiple collections simultaneously
159+
- **Remove from Collection** option appears in the right-click menu when browsing a collection
160+
147161
**Weekly Playtime Goal**
148162
- Set a weekly playtime target in hours at the top of the Library page
149163
- Animated progress bar with current week's playtime
@@ -212,10 +226,12 @@ A slide-in drawer (500 px wide) that opens without navigating away from your lib
212226
- **10-star rating** (interactive, 1–10 scale; fire icon 🔥 appears when rating ≥ 8)
213227
- **Quick rate** — 10-button rating row appears on game card hover (no need to open the panel)
214228
- **Custom status buttons** — your defined statuses, color-coded
215-
- **Tags** — add/remove inline; comma or Enter to confirm
229+
- **Tags** — add/remove inline; comma or Enter to confirm; removing a tag shows a **5-second undo countdown** with strikethrough — click the tag to cancel before it commits
216230
- **Description** — freeform textarea, editable inline; truncated at 200 chars with "Show more / Show less"
217231
- **Custom fields** — add arbitrary key/value metadata per game; stored per-game in the database
218232
- **Time-to-beat** — click the clock icon to fetch HowLongToBeat data; main story and completionist hours shown in the stats grid; cached in DB
233+
- **IGDB Metadata** — click the sparkle icon to fetch genre, developer, publisher, and release year from IGDB; shown in a modern card with custom SVG icons; (i) button warns about potential name-match inaccuracy; trash button clears data and flags the game so future fetches prompt for confirmation
234+
- **Collections**`+` button opens a dropdown to add/remove the game from any of your collections; checkmarks show current membership
219235
- **Notes** section (see below)
220236

221237
</td>
@@ -245,6 +261,7 @@ A slide-in drawer (500 px wide) that opens without navigating away from your lib
245261
**Notes**
246262
- Timestamped notes per game — full history preserved
247263
- Inline editor per note (edit / delete)
264+
- **Markdown preview** — per-note toggle between edit (pencil) and rendered preview (eye icon); renders full Markdown with sanitization
248265
- New note textarea at the bottom
249266
- <kbd>Ctrl</kbd> + <kbd>Enter</kbd> to save a new note
250267

@@ -362,6 +379,7 @@ All stat cards are **clickable** — each navigates to the Library with the rele
362379
- **Playtime — Last 12 Weeks** — bar chart grouped by ISO week; bars grow from bottom with staggered entrance animation; hover for exact hours; weeks labeled every other column to avoid crowding
363380
- **Lowest Rated** — up to 5 games with a rating ≤ 4, scores highlighted in red
364381
- **Most Neglected** — up to 5 games with zero recorded playtime, sorted by time in library, with "Added X days ago" label
382+
- **Library Growth** — stacked bar chart showing how many games were added per calendar month, bars colored by platform; legend at the bottom
365383
- Staggered entrance animations
366384

367385
</td>
@@ -370,7 +388,7 @@ All stat cards are **clickable** — each navigates to the Library with the rele
370388

371389
---
372390

373-
### 🎨 Themes — 7 Built-In
391+
### 🎨 Themes — 7 Built-In + Custom
374392

375393
| # | Theme | Accent | Base Background |
376394
|---|-------|--------|----------------|
@@ -381,6 +399,9 @@ All stat cards are **clickable** — each navigates to the Library with the rele
381399
| 5 | **Dracula** | 🌸 Pink / Red | `#282a36` |
382400
| 6 | **Gruvbox** | 🟠 Warm orange | `#282828` |
383401
| 7 | **Tokyo Night** | 💙 Blue cyan | `#1a1b26` |
402+
| + | **Custom** | Any color | Any color |
403+
404+
**Custom Theme Creator** — pick one accent color and a background; ZGameLib auto-generates all 8 accent shades (200–900) via HSL math. The entire app previews live as you adjust colors. Save with a name, edit or delete anytime. Stored as JSON in the `custom_themes` setting.
384405

385406
All themes are implemented as **CSS custom properties** (`--accent-200` through `--accent-900`). Every accent color, gradient, glow, glass effect, and border throughout the entire UI responds to the active theme — not just backgrounds.
386407

@@ -448,7 +469,8 @@ All themes are implemented as **CSS custom properties** (`--accent-200` through
448469
3. Launch the app — the database and settings will now be stored in the same folder as the exe
449470
> Make sure the file is named exactly `portable.flag` with no `.txt` extension. If Windows is hiding extensions, check via View → Show → File name extensions.
450471
- **Zero telemetry. Zero accounts. Zero cloud.**
451-
- The only network calls made are: cover art fetching (Steam CDN / GOG / Steam SearchApps), HLTB lookup (on user request), mod installer downloads from GitHub, and the update check against `zsync.eu` — all explicitly user-initiated or one-time at startup
472+
- **Export library** JSON now uses v3 format — includes `collections` and `collection_games`; backwards-compatible with older exports on import
473+
- The only network calls made are: cover art fetching (Steam CDN / GOG / Steam SearchApps), HLTB lookup (on user request), IGDB metadata fetch via Twitch OAuth (on user request), mod installer downloads from GitHub, and the update check against `zsync.eu` — all explicitly user-initiated or one-time at startup
452474

453475
---
454476

@@ -694,9 +716,32 @@ setCommandPaletteOpen
694716
| `custom_fields` | TEXT | NOT NULL DEFAULT '{}' | JSON map of user-defined key/value metadata |
695717
| `hltb_main_mins` | INTEGER | | HowLongToBeat main story time in minutes |
696718
| `hltb_extra_mins` | INTEGER | | HowLongToBeat completionist time in minutes |
719+
| `genre` | TEXT | | IGDB genre (first match) |
720+
| `developer` | TEXT | | IGDB developer company name |
721+
| `publisher` | TEXT | | IGDB publisher company name |
722+
| `release_year` | INTEGER | | IGDB first release year |
723+
| `igdb_skipped` | INTEGER | NOT NULL DEFAULT 0 | 1 when user cleared IGDB data — prompts confirmation before re-fetch |
697724

698725
Indexes: `platform` · `is_favorite` · `status` · `last_played`
699726

727+
### `collections`
728+
729+
| Column | Type | Constraint | Description |
730+
|--------|------|-----------|-------------|
731+
| `id` | TEXT | PK | UUID |
732+
| `name` | TEXT | NOT NULL | Display name (max 100 chars) |
733+
| `created_at` | TEXT | NOT NULL | ISO 8601 |
734+
| `description` | TEXT | | Optional notes / description |
735+
736+
### `collection_games`
737+
738+
| Column | Type | Constraint | Description |
739+
|--------|------|-----------|-------------|
740+
| `collection_id` | TEXT | FK → `collections.id` ON DELETE CASCADE | |
741+
| `game_id` | TEXT | FK → `games.id` ON DELETE CASCADE | |
742+
743+
Primary key: `(collection_id, game_id)`
744+
700745
### `notes`
701746

702747
| Column | Type | Description |
@@ -725,7 +770,8 @@ Index: `game_id`
725770

726771
| Key | Values | Default | Description |
727772
|-----|--------|---------|-------------|
728-
| `theme` | `dark` \| `amoled` \| `nord` \| `catppuccin` \| `dracula` \| `gruvbox` \| `tokyonight` | `dark` | UI theme |
773+
| `theme` | `dark` \| `amoled` \| `nord` \| `catppuccin` \| `dracula` \| `gruvbox` \| `tokyonight` \| `custom-{id}` | `dark` | UI theme |
774+
| `custom_themes` | JSON array | `[]` | User-created themes (id, name, accent, bg, sidebar) |
729775
| `default_view` | `grid` \| `list` | `grid` | Default library view |
730776
| `grid_columns` | `3``6` | `4` | Grid column count |
731777
| `steam_path` | path string | auto | Steam install override |
@@ -792,6 +838,7 @@ Walks up to **6 directory levels deep** looking for executables using this prior
792838
| GitHub Releases API | Latest BepInEx x64 ZIP download | User clicks Install BepInEx |
793839
| GitHub Releases API | Latest MelonLoader x64 ZIP download | User clicks Install MelonLoader |
794840
| HowLongToBeat | Time-to-beat estimates (main story + completionist) | User clicks clock icon in Game Detail |
841+
| IGDB (via Twitch OAuth) | Genre · developer · publisher · release year | User clicks IGDB button in Game Detail or bulk scan in Topbar |
795842
| Tauri Updater | Checks `https://zsync.eu/zgamelib/update.json` with Minisign public key | App startup |
796843

797844
---
@@ -939,9 +986,8 @@ Output directory: `src-tauri/target/release/bundle/`
939986

940987
```
941988
bundle/
942-
├── msi/ ZGameLib_0.7.0_x64_en-US.msi
943-
└── nsis/ ZGameLib_0.7.0_x64-setup.exe
944-
989+
├── msi/ ZGameLib_0.8.0_x64_en-US.msi
990+
└── nsis/ ZGameLib_0.8.0_x64-setup.exe
945991
```
946992

947993
### Frontend Only

0 commit comments

Comments
 (0)