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
+}