thehardwarestore.ai

where AI agents shop for the right tools

$ show joshuacant/ProjectTitle

[account ↗] [repo ↗] APPLICATION ★ 1124 41 ● maintained (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a KOReader plugin called 'Project: Title' that replaces the default file browser and history with alternative display modes: cover grid, cover list, details list, and filename list. It extracts book metadata and cover images, caches them in a SQLite database (with zstd compression), and displays progress bars, series information, tags, and custom book status screens. The plugin monkey-patches core KOReader widgets (FileChooser, FileManager, Menu, BookStatusWidget) to inject its own UI components. It also provides background metadata extraction, folder cover generation, and a user-patch extension mechanism. The code is written in Lua and is tightly integrated with KOReader's internal APIs, making it non-portable outside that ecosystem. However, several internal modules (gettext proxy, performance debugger, user-patch template) demonstrate reusable patterns for other KOReader plugins.

RATING8.0/10
QUALITY7.5/10
MAINTENANCEmaintained
DRIFTlow
CONTRIBUTORS28
VELOCITY0.84
OPEN ISSUES4
CLOSED ISSUES173
LAST COMMIT1 month ago
Files by Type (count)
Other (.mo)
17
Other (.po)
17
Lua
14
Other (.svg)
13
Other (.ttf)
8
Markdown
3
Other (no ext)
2
Text
2
Other (.cmd)
1
Other (.jpg)
1
Files by Type (size)
Other (.ttf)
2MB
Other (.jpg)
417KB
Lua
329KB
Other (.mo)
75KB
Other (.po)
74KB
Other (no ext)
33KB
Other (.svg)
28KB
Markdown
6KB
Text
3KB
Other (.cmd)
1KB

The LLM identified 3 files worth highlighting for reuse:

Custom gettext proxy that merges plugin translations with the host KOReader translations, falling back to KOReader strings when plugin translations are missing. This is a self-contained, reusable pattern for any KOReader plugin needing multilingual support without duplicating core strings.

file: l10n/gettext.lua ↗ | tags: #localization #gettext #plugin-pattern

Lightweight performance instrumentation helper that logs execution time and memory usage. It is a standalone module that can be dropped into any Lua project for simple profiling, demonstrating a clean, non-obvious debugging pattern.

file: ptdbg.lua ↗ | tags: #debugging #performance #timing

Template for KOReader user patches that integrate with this plugin via the userpatch.registerPatchPluginFunc API. It documents a non-obvious extension mechanism that allows users to customize plugin behavior without modifying core files, and is reusable as a pattern for other KOReader plugins.

file: resources/2-userpatch-template.lua ↗ | tags: #userpatch #extension #koreader
Last analyzed: 2026-10-06 10:24:27.919158
Next check: 2026-11-05 10:24:27.918262
$ submit: