diff --git a/javascript/anime/src/de/aniworld.js b/javascript/anime/src/de/aniworld.js index 7f8e5bd4..275bdb2d 100644 --- a/javascript/anime/src/de/aniworld.js +++ b/javascript/anime/src/de/aniworld.js @@ -69,6 +69,16 @@ class DefaultExtension extends MProvider { hasNextPage: false } } + cleanHtmlString(input) { + if (!input) return ""; + return input + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/
/g, '\n') + .replace(//g, '\n') + .replace(/"/g, '"') + .replace(/.*?<\/a>/g, '$1'); + } async getDetail(url) { const baseUrl = this.source.baseUrl; const res = await this.client.get(baseUrl + url); @@ -77,7 +87,7 @@ class DefaultExtension extends MProvider { document.selectFirst("div.seriesCoverBox img").attr("data-src"); const name = document.selectFirst("div.series-title h1 span").text; const genre = document.select("div.genres ul li").map(e => e.text); - const description = document.selectFirst("p.seri_des").attr("data-full-description"); + const description = this.cleanHtmlString(document.selectFirst("p.seri_des").attr("data-full-description")); const produzent = document.select("div.cast li") .filter(e => e.outerHtml.includes("Produzent:")); let author = ""; @@ -104,7 +114,7 @@ class DefaultExtension extends MProvider { const url = titleAnchor.attr("href"); const dateUpload = await this.getUploadDateFromEpisode(url); const episodeSeasonId = element.attr("data-episode-season-id"); - let episode = episodeSpan.text.replace(/'/g, "'"); + let episode = this.cleanHtmlString(episodeSpan.text); let name = ""; if (url.includes("/film")) { name = `Film ${episodeSeasonId} : ${episode}`; @@ -905,4 +915,4 @@ function absUrl(url, base) { } else { return base.slice(0, base.lastIndexOf('/') + 1) + url; } -} \ No newline at end of file +} diff --git a/javascript/anime/src/de/serienstream.js b/javascript/anime/src/de/serienstream.js index e85ae73a..4de35f1b 100644 --- a/javascript/anime/src/de/serienstream.js +++ b/javascript/anime/src/de/serienstream.js @@ -69,6 +69,16 @@ class DefaultExtension extends MProvider { hasNextPage: false } } + cleanHtmlString(input) { + if (!input) return ""; + return input + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/
/g, '\n') + .replace(//g, '\n') + .replace(/"/g, '"') + .replace(/.*?<\/a>/g, '$1'); + } async getDetail(url) { const baseUrl = this.source.baseUrl; const res = await this.client.get(baseUrl + url); @@ -77,7 +87,7 @@ class DefaultExtension extends MProvider { document.selectFirst("div.seriesCoverBox img").attr("data-src"); const name = document.selectFirst("div.series-title h1 span").text; const genre = document.select("div.genres ul li").map(e => e.text); - const description = document.selectFirst("p.seri_des").attr("data-full-description"); + const description = this.cleanHtmlString(document.selectFirst("p.seri_des").attr("data-full-description")); const produzent = document.select("div.cast li") .filter(e => e.outerHtml.includes("Produzent:")); let author = ""; @@ -104,7 +114,7 @@ class DefaultExtension extends MProvider { const url = titleAnchor.attr("href"); const dateUpload = await this.getUploadDateFromEpisode(url); const episodeSeasonId = element.attr("data-episode-season-id"); - let episode = episodeSpan.text.replace(/'/g, "'"); + let episode = this.cleanHtmlString(episodeSpan.text); let name = ""; if (url.includes("/film")) { name = `Film ${episodeSeasonId} : ${episode}`; @@ -905,4 +915,4 @@ function absUrl(url, base) { } else { return base.slice(0, base.lastIndexOf('/') + 1) + url; } -} \ No newline at end of file +}