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) {