From fa29d90dc7903b12cc7deb2a8e079d2a6d6a1ae0 Mon Sep 17 00:00:00 2001 From: xMohnad Date: Sun, 15 Jun 2025 16:57:03 +0300 Subject: [PATCH] Add custom domain URL preference --- javascript/manga/src/all/webtoons.js | 36 +++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/javascript/manga/src/all/webtoons.js b/javascript/manga/src/all/webtoons.js index 7f691770..60264402 100644 --- a/javascript/manga/src/all/webtoons.js +++ b/javascript/manga/src/all/webtoons.js @@ -25,6 +25,18 @@ class DefaultExtension extends MProvider { }; } + getBaseUrl() { + const preference = new SharedPreferences(); + var base_url = preference.get("domain_url"); + if (base_url.length == 0) { + return this.source.baseUrl; + } + if (base_url.endsWith("/")) { + return base_url.slice(0, -1); + } + return base_url; + } + mangaFromElement(doc) { const list = []; for (const el of doc.select( @@ -40,9 +52,8 @@ class DefaultExtension extends MProvider { } async getPopular(page) { - const baseUrl = this.source.baseUrl; const res = await new Client().get( - `${baseUrl}/${this.langCode()}/originals`, + `${this.getBaseUrl()}/${this.langCode()}/originals`, ); const doc = new Document(res.body); @@ -53,9 +64,8 @@ class DefaultExtension extends MProvider { } async getLatestUpdates(page) { - const baseUrl = this.source.baseUrl; const res = await new Client().get( - `${baseUrl}/${this.langCode()}/originals?sortOrder=UPDATE`, + `${this.getBaseUrl()}/${this.langCode()}/originals?sortOrder=UPDATE`, ); const doc = new Document(res.body); @@ -67,8 +77,7 @@ class DefaultExtension extends MProvider { async search(query, page, filters) { const keyword = query.trim().replace(/\s+/g, "+"); - const baseurl = this.source.baseUrl; - let url = `${baseurl}/${this.langCode()}`; + let url = `${this.getBaseUrl()}/${this.langCode()}`; let hasNextPage = false; const getFilterValue = (type, defaultValue = "") => { @@ -578,4 +587,19 @@ class DefaultExtension extends MProvider { }, ]; } + // Preferences + getSourcePreferences() { + return [ + { + key: "domain_url", + editTextPreference: { + title: "Override BaseUrl", + summary: "", + value: this.source.baseUrl, + dialogTitle: "URL", + dialogMessage: "", + }, + }, + ]; + } }