mirror of
https://github.com/kikootwo/ReadMeABook.git
synced 2026-06-02 20:30:10 +00:00
Implement file hash-based library matching and remove fuzzy ASIN matching
Adds file hash-based matching for Audiobookshelf library items to ensure 100% accurate ASIN assignment for RMAB-organized content. Removes fuzzy matching from library availability checks, making all matching ASIN-only to eliminate false positives and race conditions. Updates database schema, processors, and matcher utilities; adds new tests and documentation for the new matching strategy. Removes obsolete scripts, Dockerfile, and related tests; updates docker-compose for test environments.
This commit is contained in:
@@ -50,11 +50,13 @@ PostgreSQL database storing users, audiobooks, requests, downloads, configuratio
|
||||
### Audiobooks
|
||||
- `id` (UUID PK), `audible_asin` (nullable), `title`, `author`, `narrator`, `description`
|
||||
- `cover_art_url`, `file_path`, `file_format`, `file_size_bytes`
|
||||
- `plex_guid` (nullable), `plex_library_id` (nullable)
|
||||
- `plex_guid` (nullable), `plex_library_id` (nullable), `abs_item_id` (nullable)
|
||||
- `files_hash` (nullable) - SHA256 hash of sorted audio filenames for library matching
|
||||
- `status` ('requested'|'downloading'|'processing'|'completed'|'failed')
|
||||
- `created_at`, `updated_at`, `completed_at`
|
||||
- Indexes: `audible_asin`, `plex_guid`, `title`, `author`, `status`
|
||||
- Indexes: `audible_asin`, `plex_guid`, `abs_item_id`, `files_hash`, `title`, `author`, `status`
|
||||
- **Purpose:** User-requested audiobooks only (created on request)
|
||||
- **File Hash Matching:** `files_hash` enables 100% accurate ASIN matching for RMAB-organized content in ABS library scans (see: [fixes/file-hash-matching.md](../fixes/file-hash-matching.md))
|
||||
|
||||
### Requests
|
||||
- `id` (UUID PK), `user_id` (FK), `audiobook_id` (FK)
|
||||
|
||||
Reference in New Issue
Block a user