Colas por usuario y sin pantalla negra mientras carga la página siguiente

- Descargas y reescalados tienen usuarios (download_users): Colas y la biblioteca descargada muestran
  solo lo de cada uno. Un manga ya descargado por otro se lee desde el disco y entra en tu biblioteca
  al empezar a leerlo; borrar uno compartido solo lo quita de la tuya. Lo anterior se asigna a quien lo
  lee, sigue o tiene en una lista (o al primer usuario).
- Lector: si la página siguiente no ha llegado, la actual se queda con un indicador hasta que llega
  (máx. 4 s); si no, la nueva aparece con fundido y un indicador en vez de negro. Precarga de 6
  páginas por delante, ya decodificadas.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-01 16:20:09 -06:00
co-authored by Claude Opus 5.5
parent 84a60a6501
commit 09354f675e
4 changed files with 114 additions and 20 deletions
+2 -1
View File
@@ -6,7 +6,7 @@ const REC_TTL = 6 * 3600e3
import { genreName } from './features.js'
const norm = s => String(s).trim().toLowerCase().normalize('NFD').replace(/[̀-ͯ]/g, '')
export function setupLibrary({ db, HttpError, json, readBody, MANGA_ID, fetchMangaFull, enqueueDownload, upscale, stats, searchManga, mdCategories, net }) {
export function setupLibrary({ db, HttpError, json, readBody, MANGA_ID, fetchMangaFull, enqueueDownload, linkDownload, upscale, stats, searchManga, mdCategories, net }) {
db.exec(`
CREATE TABLE IF NOT EXISTS lists (
id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -69,6 +69,7 @@ export function setupLibrary({ db, HttpError, json, readBody, MANGA_ID, fetchMan
const missing = next.filter(id => !have.has(id))
if (missing.length) {
enqueueDownload(b.mangaId, manga.title, lang, missing)
linkDownload(userId, b.mangaId)
console.log(`Descarga anticipada: ${manga.title} → ${missing.length} cap(s).`)
}
if (cfg.hd && upscale.available()) upscale.request(next)