$ show moshstudio/wuji-tauri
A cross-platform media aggregation desktop and mobile application built with Tauri v2 and Vue 3. It allows users to create, import, and manage custom JavaScript-based source extensions that scrape or fetch content from websites for books, comics, videos, photos, and music. The app includes a built-in code editor (Monaco) for authoring extensions, a download manager with HTTP and M3U8 support, text-to-speech (Edge TTS), cloud synchronization with conflict resolution (tombstones, incremental sync), DLNA casting (Android), and a source marketplace. The architecture is plugin-heavy, with many custom Tauri plugins for web scraping, media session, and command bridges. While the core functionality is comprehensive and actively maintained, the codebase exhibits tight coupling to custom plugins, limited test coverage, and security concerns from dynamic code execution of user-provided source scripts.
The LLM identified 4 files worth highlighting for reuse:
Defines the abstract BookExtension class that all book source extensions must implement. Uses a @transformResult decorator to auto-assign IDs to items and chapters. This pattern is cleanly separated into a standalone package and can serve as a reference for designing extensible content source systems.
Implements a WebSocket client for Microsoft Edge TTS service. Handles connection, sending SSML, receiving binary audio data and text events, and parsing server-driven messages. The session management and event dispatching are self-contained and reusable for any WebSocket-based streaming interaction.
Implements merge logic for cloud sync using tombstones, version cursors, and last-writer-wins. Handles resurrection of deleted items and incremental push/pull with fine-grained operation tracking. The pattern is extracted from a specific sync system but the core algorithm is applicable to any collaborative or offline-first application.
The download engine module provides an asynchronous, chunked download system supporting HTTP streaming, M3U8 segment downloading, and collection-based downloads (e.g., book chapters). It manages progress, concurrency, and error recovery independently of the Tauri commands, making it a candidate for extraction into a standalone Rust crate.