From c2919d7298a21fc49b284f2b80c072e45d8bb3c0 Mon Sep 17 00:00:00 2001 From: RndDev123 Date: Fri, 29 Nov 2024 04:09:52 +0100 Subject: [PATCH 1/6] Aniworld: New Host & Language preference filters + lib update Aniworld: - New Host: Luluvdo - Language preference filters Lib: - New Host: Luluvdo --- javascript/anime/src/de/aniworld.js | 50 ++++++++++++++++++++++----- javascript/anime/src/es/animefenix.js | 16 ++++++++- javascript/anime/src/es/jkanime.js | 16 ++++++++- javascript/anime/src/es/tioanime.js | 16 ++++++++- javascript/anime/src/it/animeworld.js | 16 ++++++++- 5 files changed, 102 insertions(+), 12 deletions(-) diff --git a/javascript/anime/src/de/aniworld.js b/javascript/anime/src/de/aniworld.js index 2032e284..fd2e5572 100644 --- a/javascript/anime/src/de/aniworld.js +++ b/javascript/anime/src/de/aniworld.js @@ -136,17 +136,20 @@ class DefaultExtension extends MProvider { let promises = []; const videos = []; + const preferences = new SharedPreferences(); + const hostFilter = preferences.get("host_filter"); + const langFilter = preferences.get("lang_filter"); + const redirectsElements = document.select("ul.row li"); - const hostFilter = new SharedPreferences().get("host_filter"); const dartClient = new Client({ 'useDartHttpClient': true, "followRedirects": false }); for (const element of redirectsElements) { + const langkey = element.attr("data-lang-key"); + const lang = (langkey == 1 || langkey == 3) ? 'Deutscher' : 'Englischer'; + const type = (langkey == 1) ? 'Dub' : 'Sub'; const host = element.selectFirst("a h4").text; - if (hostFilter.includes(host)) { - const langkey = element.attr("data-lang-key"); - const lang = (langkey == 1 || langkey == 3) ? 'Deutscher' : 'Englischer'; - const type = (langkey == 1) ? 'Dub' : 'Sub'; + if (/*hostFilter.includes(host) && */langFilter.includes(`${lang} ${type}`)) { const redirect = baseUrl + element.selectFirst("a.watchEpisode").attr("href"); promises.push((async (redirect, lang, type, host) => { const location = (await dartClient.get(redirect)).headers.location; @@ -166,7 +169,14 @@ class DefaultExtension extends MProvider { const languageValues = ['Deutscher', 'Englischer']; const types = ['Dub', 'Sub']; const resolutions = ['1080p', '720p', '480p']; - const hosts = ['Doodstream', 'Filemoon', 'SpeedFiles', 'Streamtape', 'Vidoza', 'VOE']; + const hosts = ['Doodstream', 'Filemoon', 'Luluvdo', 'SpeedFiles', 'Streamtape', 'Vidoza', 'VOE']; + const languageFilters = []; + + for (const lang of languageValues) { + for (const type of types) { + languageFilters.push(`${lang} ${type}`); + } + } return [ { @@ -209,11 +219,21 @@ class DefaultExtension extends MProvider { entryValues: hosts } }, + { + key: "lang_filter", + multiSelectListPreference: { + title: "Sprachen auswählen", + summary: "Wähle aus welche Sprachen dir angezeigt werden sollen. Weniger streams zu laden beschleunigt den Start der Videos.", + entries: languageFilters, + entryValues: languageFilters, + values: languageFilters + } + }, { key: "host_filter", multiSelectListPreference: { title: "Hoster auswählen", - summary: "Wähle aus welche Hoster dir angezeigt werden sollen. Weniger hoster zu laden beschleunigt den Start der Videos.", + summary: "Wähle aus welche Hoster dir angezeigt werden sollen. Weniger streams zu laden beschleunigt den Start der Videos.", entries: hosts, entryValues: hosts, values: hosts @@ -225,7 +245,7 @@ class DefaultExtension extends MProvider { /*************************************************************************************************** * -* mangayomi-js-helpers v1.1 +* mangayomi-js-helpers v1.2 * * # Video Extractors * - vidGuardExtractor @@ -237,6 +257,7 @@ class DefaultExtension extends MProvider { * - filemoonExtractor * - mixdropExtractor * - speedfilesExtractor +* - luluvdoExtractor * - burstcloudExtractor (not working, see description) * * # Video Extractor Wrappers @@ -426,6 +447,14 @@ async function speedfilesExtractor(url) { return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: null}]; } +async function luluvdoExtractor(url) { + const client = new Client(); + const match = url.match(/(.*?:\/\/.*?)\/.*\/(.*)/); + const headers = {'user-agent': 'Mangayomi'}; + const res = await client.get(`${match[1]}/dl?op=embed&file_code=${match[2]}`, headers); + return await jwplayerExtractor(res.body, headers); +} + /** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ async function burstcloudExtractor(url) { let client = new Client(); @@ -527,6 +556,7 @@ extractAny.methods = { 'burstcloud': burstcloudExtractor, 'doodstream': doodExtractor, 'filemoon': filemoonExtractor, + 'luluvdo': luluvdoExtractor, 'mixdrop': mixdropExtractor, 'mp4upload': mp4UploadExtractor, 'okru': okruExtractor, @@ -578,6 +608,10 @@ async function m3u8Extractor(url, headers = null) { const res = await new Client().get(url, headers); const text = res.body; + if (res.statusCode != 200) { + return []; + } + // collect media for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { const info = match[1], medium = {}; diff --git a/javascript/anime/src/es/animefenix.js b/javascript/anime/src/es/animefenix.js index 2d6dc699..713823c1 100644 --- a/javascript/anime/src/es/animefenix.js +++ b/javascript/anime/src/es/animefenix.js @@ -293,7 +293,7 @@ class DefaultExtension extends MProvider { /*************************************************************************************************** * -* mangayomi-js-helpers v1.1 +* mangayomi-js-helpers v1.2 * * # Video Extractors * - vidGuardExtractor @@ -305,6 +305,7 @@ class DefaultExtension extends MProvider { * - filemoonExtractor * - mixdropExtractor * - speedfilesExtractor +* - luluvdoExtractor * - burstcloudExtractor (not working, see description) * * # Video Extractor Wrappers @@ -494,6 +495,14 @@ async function speedfilesExtractor(url) { return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: null}]; } +async function luluvdoExtractor(url) { + const client = new Client(); + const match = url.match(/(.*?:\/\/.*?)\/.*\/(.*)/); + const headers = {'user-agent': 'Mangayomi'}; + const res = await client.get(`${match[1]}/dl?op=embed&file_code=${match[2]}`, headers); + return await jwplayerExtractor(res.body, headers); +} + /** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ async function burstcloudExtractor(url) { let client = new Client(); @@ -595,6 +604,7 @@ extractAny.methods = { 'burstcloud': burstcloudExtractor, 'doodstream': doodExtractor, 'filemoon': filemoonExtractor, + 'luluvdo': luluvdoExtractor, 'mixdrop': mixdropExtractor, 'mp4upload': mp4UploadExtractor, 'okru': okruExtractor, @@ -646,6 +656,10 @@ async function m3u8Extractor(url, headers = null) { const res = await new Client().get(url, headers); const text = res.body; + if (res.statusCode != 200) { + return []; + } + // collect media for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { const info = match[1], medium = {}; diff --git a/javascript/anime/src/es/jkanime.js b/javascript/anime/src/es/jkanime.js index cc070395..0bd1f3c0 100644 --- a/javascript/anime/src/es/jkanime.js +++ b/javascript/anime/src/es/jkanime.js @@ -388,7 +388,7 @@ class DefaultExtension extends MProvider { /*************************************************************************************************** * -* mangayomi-js-helpers v1.1 +* mangayomi-js-helpers v1.2 * * # Video Extractors * - vidGuardExtractor @@ -400,6 +400,7 @@ class DefaultExtension extends MProvider { * - filemoonExtractor * - mixdropExtractor * - speedfilesExtractor +* - luluvdoExtractor * - burstcloudExtractor (not working, see description) * * # Video Extractor Wrappers @@ -589,6 +590,14 @@ async function speedfilesExtractor(url) { return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: null}]; } +async function luluvdoExtractor(url) { + const client = new Client(); + const match = url.match(/(.*?:\/\/.*?)\/.*\/(.*)/); + const headers = {'user-agent': 'Mangayomi'}; + const res = await client.get(`${match[1]}/dl?op=embed&file_code=${match[2]}`, headers); + return await jwplayerExtractor(res.body, headers); +} + /** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ async function burstcloudExtractor(url) { let client = new Client(); @@ -690,6 +699,7 @@ extractAny.methods = { 'burstcloud': burstcloudExtractor, 'doodstream': doodExtractor, 'filemoon': filemoonExtractor, + 'luluvdo': luluvdoExtractor, 'mixdrop': mixdropExtractor, 'mp4upload': mp4UploadExtractor, 'okru': okruExtractor, @@ -741,6 +751,10 @@ async function m3u8Extractor(url, headers = null) { const res = await new Client().get(url, headers); const text = res.body; + if (res.statusCode != 200) { + return []; + } + // collect media for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { const info = match[1], medium = {}; diff --git a/javascript/anime/src/es/tioanime.js b/javascript/anime/src/es/tioanime.js index 14beccb1..80d082a0 100644 --- a/javascript/anime/src/es/tioanime.js +++ b/javascript/anime/src/es/tioanime.js @@ -158,7 +158,7 @@ class DefaultExtension extends MProvider { /*************************************************************************************************** * -* mangayomi-js-helpers v1.1 +* mangayomi-js-helpers v1.2 * * # Video Extractors * - vidGuardExtractor @@ -170,6 +170,7 @@ class DefaultExtension extends MProvider { * - filemoonExtractor * - mixdropExtractor * - speedfilesExtractor +* - luluvdoExtractor * - burstcloudExtractor (not working, see description) * * # Video Extractor Wrappers @@ -359,6 +360,14 @@ async function speedfilesExtractor(url) { return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: null}]; } +async function luluvdoExtractor(url) { + const client = new Client(); + const match = url.match(/(.*?:\/\/.*?)\/.*\/(.*)/); + const headers = {'user-agent': 'Mangayomi'}; + const res = await client.get(`${match[1]}/dl?op=embed&file_code=${match[2]}`, headers); + return await jwplayerExtractor(res.body, headers); +} + /** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ async function burstcloudExtractor(url) { let client = new Client(); @@ -460,6 +469,7 @@ extractAny.methods = { 'burstcloud': burstcloudExtractor, 'doodstream': doodExtractor, 'filemoon': filemoonExtractor, + 'luluvdo': luluvdoExtractor, 'mixdrop': mixdropExtractor, 'mp4upload': mp4UploadExtractor, 'okru': okruExtractor, @@ -511,6 +521,10 @@ async function m3u8Extractor(url, headers = null) { const res = await new Client().get(url, headers); const text = res.body; + if (res.statusCode != 200) { + return []; + } + // collect media for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { const info = match[1], medium = {}; diff --git a/javascript/anime/src/it/animeworld.js b/javascript/anime/src/it/animeworld.js index 47fedf3c..b447bca6 100644 --- a/javascript/anime/src/it/animeworld.js +++ b/javascript/anime/src/it/animeworld.js @@ -314,7 +314,7 @@ class DefaultExtension extends MProvider { /*************************************************************************************************** * -* mangayomi-js-helpers v1.1 +* mangayomi-js-helpers v1.2 * * # Video Extractors * - vidGuardExtractor @@ -326,6 +326,7 @@ class DefaultExtension extends MProvider { * - filemoonExtractor * - mixdropExtractor * - speedfilesExtractor +* - luluvdoExtractor * - burstcloudExtractor (not working, see description) * * # Video Extractor Wrappers @@ -515,6 +516,14 @@ async function speedfilesExtractor(url) { return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: null}]; } +async function luluvdoExtractor(url) { + const client = new Client(); + const match = url.match(/(.*?:\/\/.*?)\/.*\/(.*)/); + const headers = {'user-agent': 'Mangayomi'}; + const res = await client.get(`${match[1]}/dl?op=embed&file_code=${match[2]}`, headers); + return await jwplayerExtractor(res.body, headers); +} + /** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ async function burstcloudExtractor(url) { let client = new Client(); @@ -616,6 +625,7 @@ extractAny.methods = { 'burstcloud': burstcloudExtractor, 'doodstream': doodExtractor, 'filemoon': filemoonExtractor, + 'luluvdo': luluvdoExtractor, 'mixdrop': mixdropExtractor, 'mp4upload': mp4UploadExtractor, 'okru': okruExtractor, @@ -667,6 +677,10 @@ async function m3u8Extractor(url, headers = null) { const res = await new Client().get(url, headers); const text = res.body; + if (res.statusCode != 200) { + return []; + } + // collect media for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { const info = match[1], medium = {}; From debf4f485ce703d7ed699cb24621d79e584b561b Mon Sep 17 00:00:00 2001 From: RndDev123 Date: Fri, 29 Nov 2024 08:54:17 +0100 Subject: [PATCH 2/6] Fix Filemoon extractor on Android --- javascript/anime/src/de/aniworld.js | 8 ++++++-- javascript/anime/src/es/animefenix.js | 8 ++++++-- javascript/anime/src/es/jkanime.js | 8 ++++++-- javascript/anime/src/es/tioanime.js | 8 ++++++-- javascript/anime/src/it/animeworld.js | 8 ++++++-- 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/javascript/anime/src/de/aniworld.js b/javascript/anime/src/de/aniworld.js index fd2e5572..7ad60271 100644 --- a/javascript/anime/src/de/aniworld.js +++ b/javascript/anime/src/de/aniworld.js @@ -384,15 +384,19 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { + headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; + delete headers['user-agent']; + let res = await new Client().get(url, headers); const src = res.body.match(/iframe src="(.*?)"/)?.[1]; if (src) { res = await new Client().get(src, { 'Referer': url, - 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3', + 'User-Agent': headers['User-Agent'] }); } - return await jwplayerExtractor(res.body); + return await jwplayerExtractor(res.body, headers); } async function mixdropExtractor(url) { diff --git a/javascript/anime/src/es/animefenix.js b/javascript/anime/src/es/animefenix.js index 713823c1..ca8c7499 100644 --- a/javascript/anime/src/es/animefenix.js +++ b/javascript/anime/src/es/animefenix.js @@ -432,15 +432,19 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { + headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; + delete headers['user-agent']; + let res = await new Client().get(url, headers); const src = res.body.match(/iframe src="(.*?)"/)?.[1]; if (src) { res = await new Client().get(src, { 'Referer': url, - 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3', + 'User-Agent': headers['User-Agent'] }); } - return await jwplayerExtractor(res.body); + return await jwplayerExtractor(res.body, headers); } async function mixdropExtractor(url) { diff --git a/javascript/anime/src/es/jkanime.js b/javascript/anime/src/es/jkanime.js index 0bd1f3c0..8f05c473 100644 --- a/javascript/anime/src/es/jkanime.js +++ b/javascript/anime/src/es/jkanime.js @@ -527,15 +527,19 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { + headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; + delete headers['user-agent']; + let res = await new Client().get(url, headers); const src = res.body.match(/iframe src="(.*?)"/)?.[1]; if (src) { res = await new Client().get(src, { 'Referer': url, - 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3', + 'User-Agent': headers['User-Agent'] }); } - return await jwplayerExtractor(res.body); + return await jwplayerExtractor(res.body, headers); } async function mixdropExtractor(url) { diff --git a/javascript/anime/src/es/tioanime.js b/javascript/anime/src/es/tioanime.js index 80d082a0..acbe4114 100644 --- a/javascript/anime/src/es/tioanime.js +++ b/javascript/anime/src/es/tioanime.js @@ -297,15 +297,19 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { + headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; + delete headers['user-agent']; + let res = await new Client().get(url, headers); const src = res.body.match(/iframe src="(.*?)"/)?.[1]; if (src) { res = await new Client().get(src, { 'Referer': url, - 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3', + 'User-Agent': headers['User-Agent'] }); } - return await jwplayerExtractor(res.body); + return await jwplayerExtractor(res.body, headers); } async function mixdropExtractor(url) { diff --git a/javascript/anime/src/it/animeworld.js b/javascript/anime/src/it/animeworld.js index b447bca6..11b7b332 100644 --- a/javascript/anime/src/it/animeworld.js +++ b/javascript/anime/src/it/animeworld.js @@ -453,15 +453,19 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { + headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; + delete headers['user-agent']; + let res = await new Client().get(url, headers); const src = res.body.match(/iframe src="(.*?)"/)?.[1]; if (src) { res = await new Client().get(src, { 'Referer': url, - 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3', + 'User-Agent': headers['User-Agent'] }); } - return await jwplayerExtractor(res.body); + return await jwplayerExtractor(res.body, headers); } async function mixdropExtractor(url) { From d6c5fd1a90ca83144502c53c84b4bb08ddd96405 Mon Sep 17 00:00:00 2001 From: RndDev123 Date: Fri, 29 Nov 2024 08:59:30 +0100 Subject: [PATCH 3/6] + --- javascript/anime/src/de/aniworld.js | 2 +- javascript/anime/src/es/animefenix.js | 2 +- javascript/anime/src/es/jkanime.js | 2 +- javascript/anime/src/es/tioanime.js | 2 +- javascript/anime/src/it/animeworld.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/javascript/anime/src/de/aniworld.js b/javascript/anime/src/de/aniworld.js index 7ad60271..c1944ac9 100644 --- a/javascript/anime/src/de/aniworld.js +++ b/javascript/anime/src/de/aniworld.js @@ -7,7 +7,7 @@ const mangayomiSources = [{ "typeSource": "single", "isManga": false, "isNsfw": false, - "version": "0.3.0", + "version": "0.3.1", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/de/aniworld.js" diff --git a/javascript/anime/src/es/animefenix.js b/javascript/anime/src/es/animefenix.js index ca8c7499..967343fb 100644 --- a/javascript/anime/src/es/animefenix.js +++ b/javascript/anime/src/es/animefenix.js @@ -6,7 +6,7 @@ const mangayomiSources = [{ "iconUrl": "https://www3.animefenix.tv/themes/fenix-neo/images/AveFenix.png", "typeSource": "single", "isManga": false, - "version": "0.1.12", + "version": "0.1.13", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/es/animefenix.js" diff --git a/javascript/anime/src/es/jkanime.js b/javascript/anime/src/es/jkanime.js index 8f05c473..0101a481 100644 --- a/javascript/anime/src/es/jkanime.js +++ b/javascript/anime/src/es/jkanime.js @@ -6,7 +6,7 @@ const mangayomiSources = [{ "iconUrl": "https://cdn.jkanime.net/logo_jk.png", "typeSource": "single", "isManga": false, - "version": "0.1.12", + "version": "0.1.13", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/es/jkanime.js" diff --git a/javascript/anime/src/es/tioanime.js b/javascript/anime/src/es/tioanime.js index acbe4114..67e41f43 100644 --- a/javascript/anime/src/es/tioanime.js +++ b/javascript/anime/src/es/tioanime.js @@ -6,7 +6,7 @@ const mangayomiSources = [{ "iconUrl": "https://tioanime.com/assets/img/tio_fb.jpg", "typeSource": "single", "isManga": false, - "version": "0.1.11", + "version": "0.1.12", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/es/tioanime.js" diff --git a/javascript/anime/src/it/animeworld.js b/javascript/anime/src/it/animeworld.js index 11b7b332..8657f46b 100644 --- a/javascript/anime/src/it/animeworld.js +++ b/javascript/anime/src/it/animeworld.js @@ -6,7 +6,7 @@ const mangayomiSources = [{ "iconUrl": "https://i.postimg.cc/RFRGfBvP/FVLyB1I.png", "typeSource": "single", "isManga": false, - "version": "0.0.11", + "version": "0.0.12", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/it/animeworld.js" From 9086d486bbf353927b67613ac6e4e54b6c1c05ac Mon Sep 17 00:00:00 2001 From: RndDev123 Date: Fri, 29 Nov 2024 09:14:12 +0100 Subject: [PATCH 4/6] Filemoon init headers --- javascript/anime/src/de/aniworld.js | 1 + javascript/anime/src/es/animefenix.js | 1 + javascript/anime/src/es/jkanime.js | 1 + javascript/anime/src/es/tioanime.js | 1 + javascript/anime/src/it/animeworld.js | 1 + 5 files changed, 5 insertions(+) diff --git a/javascript/anime/src/de/aniworld.js b/javascript/anime/src/de/aniworld.js index c1944ac9..41d0f5a6 100644 --- a/javascript/anime/src/de/aniworld.js +++ b/javascript/anime/src/de/aniworld.js @@ -384,6 +384,7 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { + headers = headers ?? {}; headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; delete headers['user-agent']; diff --git a/javascript/anime/src/es/animefenix.js b/javascript/anime/src/es/animefenix.js index 967343fb..7965a0eb 100644 --- a/javascript/anime/src/es/animefenix.js +++ b/javascript/anime/src/es/animefenix.js @@ -432,6 +432,7 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { + headers = headers ?? {}; headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; delete headers['user-agent']; diff --git a/javascript/anime/src/es/jkanime.js b/javascript/anime/src/es/jkanime.js index 0101a481..4a16f28b 100644 --- a/javascript/anime/src/es/jkanime.js +++ b/javascript/anime/src/es/jkanime.js @@ -527,6 +527,7 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { + headers = headers ?? {}; headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; delete headers['user-agent']; diff --git a/javascript/anime/src/es/tioanime.js b/javascript/anime/src/es/tioanime.js index 67e41f43..ed8c7150 100644 --- a/javascript/anime/src/es/tioanime.js +++ b/javascript/anime/src/es/tioanime.js @@ -297,6 +297,7 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { + headers = headers ?? {}; headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; delete headers['user-agent']; diff --git a/javascript/anime/src/it/animeworld.js b/javascript/anime/src/it/animeworld.js index 8657f46b..cce61e6e 100644 --- a/javascript/anime/src/it/animeworld.js +++ b/javascript/anime/src/it/animeworld.js @@ -453,6 +453,7 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { + headers = headers ?? {}; headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; delete headers['user-agent']; From 4d75787237d26d53aa08eb1d7137b74a372ff76c Mon Sep 17 00:00:00 2001 From: RndDev123 Date: Fri, 29 Nov 2024 09:58:02 +0100 Subject: [PATCH 5/6] Update aniworld.js --- javascript/anime/src/de/aniworld.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/anime/src/de/aniworld.js b/javascript/anime/src/de/aniworld.js index 41d0f5a6..6594cf21 100644 --- a/javascript/anime/src/de/aniworld.js +++ b/javascript/anime/src/de/aniworld.js @@ -149,7 +149,7 @@ class DefaultExtension extends MProvider { const type = (langkey == 1) ? 'Dub' : 'Sub'; const host = element.selectFirst("a h4").text; - if (/*hostFilter.includes(host) && */langFilter.includes(`${lang} ${type}`)) { + if (hostFilter.includes(host) && langFilter.includes(`${lang} ${type}`)) { const redirect = baseUrl + element.selectFirst("a.watchEpisode").attr("href"); promises.push((async (redirect, lang, type, host) => { const location = (await dartClient.get(redirect)).headers.location; From 3b6fba15c2d2dfb1325c3170025fe50a70a105cf Mon Sep 17 00:00:00 2001 From: RndDev123 Date: Sat, 30 Nov 2024 05:53:01 +0100 Subject: [PATCH 6/6] Another Filemoon fix --- javascript/anime/src/de/aniworld.js | 2 +- javascript/anime/src/es/animefenix.js | 2 +- javascript/anime/src/es/jkanime.js | 2 +- javascript/anime/src/es/tioanime.js | 2 +- javascript/anime/src/it/animeworld.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/javascript/anime/src/de/aniworld.js b/javascript/anime/src/de/aniworld.js index 6594cf21..ae60b0e4 100644 --- a/javascript/anime/src/de/aniworld.js +++ b/javascript/anime/src/de/aniworld.js @@ -385,7 +385,7 @@ async function vidHideExtractor(url) { async function filemoonExtractor(url, headers) { headers = headers ?? {}; - headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; + headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'; delete headers['user-agent']; let res = await new Client().get(url, headers); diff --git a/javascript/anime/src/es/animefenix.js b/javascript/anime/src/es/animefenix.js index 7965a0eb..659dd575 100644 --- a/javascript/anime/src/es/animefenix.js +++ b/javascript/anime/src/es/animefenix.js @@ -433,7 +433,7 @@ async function vidHideExtractor(url) { async function filemoonExtractor(url, headers) { headers = headers ?? {}; - headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; + headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'; delete headers['user-agent']; let res = await new Client().get(url, headers); diff --git a/javascript/anime/src/es/jkanime.js b/javascript/anime/src/es/jkanime.js index 4a16f28b..0806650b 100644 --- a/javascript/anime/src/es/jkanime.js +++ b/javascript/anime/src/es/jkanime.js @@ -528,7 +528,7 @@ async function vidHideExtractor(url) { async function filemoonExtractor(url, headers) { headers = headers ?? {}; - headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; + headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'; delete headers['user-agent']; let res = await new Client().get(url, headers); diff --git a/javascript/anime/src/es/tioanime.js b/javascript/anime/src/es/tioanime.js index ed8c7150..dfdf0592 100644 --- a/javascript/anime/src/es/tioanime.js +++ b/javascript/anime/src/es/tioanime.js @@ -298,7 +298,7 @@ async function vidHideExtractor(url) { async function filemoonExtractor(url, headers) { headers = headers ?? {}; - headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; + headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'; delete headers['user-agent']; let res = await new Client().get(url, headers); diff --git a/javascript/anime/src/it/animeworld.js b/javascript/anime/src/it/animeworld.js index cce61e6e..a73df289 100644 --- a/javascript/anime/src/it/animeworld.js +++ b/javascript/anime/src/it/animeworld.js @@ -454,7 +454,7 @@ async function vidHideExtractor(url) { async function filemoonExtractor(url, headers) { headers = headers ?? {}; - headers['User-Agent'] = headers['User-Agent'] ?? 'Mangayomi'; + headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'; delete headers['user-agent']; let res = await new Client().get(url, headers);