Add custom domain URL preference

This commit is contained in:
xMohnad
2025-06-15 16:57:03 +03:00
parent 7410d56c60
commit fa29d90dc7

View File

@@ -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) { mangaFromElement(doc) {
const list = []; const list = [];
for (const el of doc.select( for (const el of doc.select(
@@ -40,9 +52,8 @@ class DefaultExtension extends MProvider {
} }
async getPopular(page) { async getPopular(page) {
const baseUrl = this.source.baseUrl;
const res = await new Client().get( const res = await new Client().get(
`${baseUrl}/${this.langCode()}/originals`, `${this.getBaseUrl()}/${this.langCode()}/originals`,
); );
const doc = new Document(res.body); const doc = new Document(res.body);
@@ -53,9 +64,8 @@ class DefaultExtension extends MProvider {
} }
async getLatestUpdates(page) { async getLatestUpdates(page) {
const baseUrl = this.source.baseUrl;
const res = await new Client().get( 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); const doc = new Document(res.body);
@@ -67,8 +77,7 @@ class DefaultExtension extends MProvider {
async search(query, page, filters) { async search(query, page, filters) {
const keyword = query.trim().replace(/\s+/g, "+"); const keyword = query.trim().replace(/\s+/g, "+");
const baseurl = this.source.baseUrl; let url = `${this.getBaseUrl()}/${this.langCode()}`;
let url = `${baseurl}/${this.langCode()}`;
let hasNextPage = false; let hasNextPage = false;
const getFilterValue = (type, defaultValue = "") => { 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: "",
},
},
];
}
} }