From ca19efd82aca12142feb20d47289d1a363f4897c Mon Sep 17 00:00:00 2001 From: Carlo Baratto Date: Wed, 12 Aug 2026 12:20:01 +0200 Subject: [PATCH] BookDetailPage: riscritte resolveUrl e sanitizeFileName senza regex (backslash doppi rompevano il caricamento pagina) --- qml/pages/BookDetailPage.qml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/qml/pages/BookDetailPage.qml b/qml/pages/BookDetailPage.qml index 15948da..328fb88 100644 --- a/qml/pages/BookDetailPage.qml +++ b/qml/pages/BookDetailPage.qml @@ -122,15 +122,25 @@ Page { return u var base = appSettings.baseUrl // il server dietro sottopath (es. /calibre) emette link che lo includono giĆ : - // evita di raddoppiarlo - var basePath = base.replace(/^https?:\/\/[^\/]+/, "") + // evita di raddoppiarlo (solo operazioni su stringhe, niente regex) + var schemeEnd = base.indexOf("://") + var slash = base.indexOf("/", schemeEnd + 3) + var basePath = slash >= 0 ? base.substring(slash) : "" if (basePath.length > 1 && u.indexOf(basePath) === 0) return base + u.substring(basePath.length) return base + (u.charAt(0) === "/" ? u : "/" + u) } function sanitizeFileName(s) { - return s.replace(/[\\/:*?"<>|]/g, "_").replace(/\s+/g, " ").trim() + var out = "" + for (var i = 0; i < s.length; i++) { + var c = s.charAt(i) + if (c === '/' || c === ':' || c === '*' || c === '?' || c === '"' || c === '<' || c === '>' || c === '|' || c.charCodeAt(0) === 92) + out += '_' + else + out += c + } + return out.trim() } function startDownload(format) {