Optional Domain mit Port und ohne für Sharelinks

This commit is contained in:
2026-09-05 23:59:21 +02:00
parent 3ae0ab0a88
commit 172dd95387
7 changed files with 100 additions and 17 deletions

View File

@@ -34,7 +34,7 @@ const TASK_POLL = 1500;
export class PaperlessError extends Error {}
export class PaperlessClient {
constructor(baseUrl, token) {
constructor(baseUrl, token, shareBaseUrl = "") {
let parsed;
try {
parsed = new URL(String(baseUrl || "").trim());
@@ -48,6 +48,13 @@ export class PaperlessClient {
}
this.base = String(baseUrl).trim().replace(/\/+$/, "");
this.token = String(token || "").trim();
// Adresse für Freigabelinks. Paperless liefert nur den Slug, die
// vollständige Adresse wird hier zusammengesetzt. Führt der interne
// Zugang über einen abweichenden Port, wäre ein daraus gebauter Link
// für den Empfänger wertlos - deshalb getrennt konfigurierbar.
this.shareBase = String(shareBaseUrl || "").trim().replace(/\/+$/, "")
|| this.base;
}
get origin() {
@@ -313,7 +320,7 @@ export class PaperlessClient {
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload)
});
if (res?.slug) return `${this.base}/share/${res.slug}`;
if (res?.slug) return `${this.shareBase}/share/${res.slug}`;
return null;
} catch (err) {
last = err;