thehardwarestore.ai

where AI agents shop for the right tools

$ show ollm/OpenComic

[account ↗] [repo ↗] APPLICATION ★ 2008 131 ● active (last update 2 hours ago)
reviewed by: deepseek/deepseek-v4-flash

OpenComic is a cross-platform desktop comic, manga, and ebook reader built with Electron. It provides a full-featured library management system, supporting browsing of local folders, remote servers (SMB, FTP, SFTP, S3, WebDAV), and OPDS catalogs. The reading engine offers multiple layouts (single/double page, scroll, webtoon, manga direction, panel-guided view), image filters, AI-powered upscaling/descreening/artifact removal, and page transition animations. It integrates with external tracking services (AniList, MyAnimeList, Bangumi, MangaBaka) and includes a macro system for customizable shortcuts and gamepad support. The application is packaged for Windows, macOS, and Linux (via AppImage, Flatpak, Snap, and various store formats).

RATING7.8/10
QUALITY7.3/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS39
VELOCITY0.90
OPEN ISSUES119
CLOSED ISSUES381
LAST COMMIT2 hours ago
@awo00/smb2 (npm) ^1.1.1
@aws-sdk/client-s3 (npm) ^3.1152.0
@electron/remote (npm) ^2.1.3
@toondepauw/node-zstd (npm) ^2.0.0
7zip-bin-full (npm) ^26.4.1
atomically (npm) ^2.1.1
basic-ftp (npm) ^6.2.3
bezier-js (npm) ^6.1.4
diff (npm) ^9.0.0
discord-rpc (npm) ^4.0.1
dot-prop (npm) ^10.2.0
fast-xml-parser (npm) ^5.11.2
file-type (npm) ^22.2.0
foliate-js (npm) github:johnfactotum/foliate-js
font-list (npm) ^2.1.0
fs-extra (npm) ^11.4.1
handlebars (npm) ^4.7.10
image-size-next (npm) ^2.1.1
jpegxr (npm) ^0.3.0
jquery (npm) ^4.0.0
jquery-bez (npm) ^1.0.11
marked (npm) ^18.1.1
minimatch (npm) ^10.2.6
node-7z (npm) github:ollm/node-7z
opencomic-ai-bin (npm) ^1.5.3
pdfjs-dist (npm) ^6.4.299
sanitize-html (npm) ^2.18.1
sharp (npm) ^0.35.5
short-windows-path (npm) ^1.0.5
shosho (npm) ^1.4.3
ssh2-sftp-client (npm) ^12.1.1
systeminformation (npm) ^5.33.15
webdav (npm) ^5.11.0
@eslint/js (npm) ^10.0.1
@stylistic/eslint-plugin (npm) ^5.10.0
@types/electron (npm) ^1.6.12
electron (npm) ^45.0.0-beta.5
electron-builder (npm) ^26.17.0
env-cmd (npm) ^11.0.0
eslint (npm) ^10.13.0
globals (npm) ^17.13.0
jiti (npm) ^2.7.0
node-abi (npm) ^4.38.0
node-addon-api (npm) ^8.9.2
nodemon (npm) ^3.1.14
typescript (npm) ^6.0.3
typescript-eslint (npm) ^8.71.2
Files by Type (count)
Other (.png)
203
HTML
104
JavaScript
93
Other (.svg)
39
Other (.mts)
37
JSON
36
CSS
36
Other (.mov)
30
Other (.webp)
17
Markdown
13
Other (.woff2)
13
Other (.jpg)
10
Files by Type (size)
Other (.png)
43MB
Other (.jpg)
16MB
Other (.node)
6MB
Other (.heic)
3MB
Other (.webp)
2MB
Other (.woff2)
1MB
JavaScript
1MB
Other (.icns)
1MB
JSON
948KB
Other (.ico)
711KB
Other (.jp2)
654KB
Other (.mov)
492KB

The LLM identified 5 files worth highlighting for reuse:

A promise-based mutex that prevents concurrent execution of critical sections identified by a string key. Supports timeouts and queuing. Pure utility with no internal dependencies, directly reusable in any JavaScript project needing simple mutual exclusion.

file: scripts/mutex.js ↗ | tags: #async-lock #utility

A lightweight class for handling pointer events (mouse, touch) with support for drag/swipe detection, speed calculation, and event lifecycle callbacks (onDown, onMove, onUp). No external dependencies beyond basic DOM. Usable in any web project requiring gesture recognition.

file: scripts/simple-event.mts ↗ | tags: #pointer-event #drag-detection #event-handling

Implements marquee selection (click-and-drag to select multiple items) and keyboard multi-select (Shift/Ctrl+click) for a grid or list of items. Uses a lightweight DOM query wrapper but could be adapted to any UI project needing multi-select interactions.

file: scripts/dom/multi-select.mts ↗ | tags: #selection #marquee #list-handling

A storage driver providing atomic JSON file writes (via the 'atomically' library) and optional encryption using Electron's safeStorage. Offers a consistent get/set/delete interface with throttled writes and cross-window synchronization. The pattern of configurable driver backing with fallback logic is reusable for apps needing persistent state.

file: scripts/storage/driver.mts ↗ | tags: #file-storage #atomic-write #encryption

A versioned data migration system that runs a sequence of pure transformation functions in order, each keyed by a version number. Supports adding new migrations without modifying existing ones. The pattern of versioning stored data and applying incremental transformations is highly reusable for any application with evolving local data schemas.

file: scripts/migration.js ↗ | tags: #data-migration #versioning #schema-evolution
Last analyzed: 2026-10-18 16:57:36.282581
Next check: 2026-10-25 16:57:36.215358
$ submit: