diff --git a/javascript/anime/src/all/autoembed.js b/javascript/anime/src/all/autoembed.js index 8631878a..d371f056 100644 --- a/javascript/anime/src/all/autoembed.js +++ b/javascript/anime/src/all/autoembed.js @@ -7,7 +7,7 @@ const mangayomiSources = [{ "typeSource": "multi", "isManga": false, "itemType": 1, - "version": "1.1.4", + "version": "1.1.5", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/all/autoembed.js" @@ -21,7 +21,7 @@ class DefaultExtension extends MProvider { } } - async getPreference(key) { + getPreference(key) { const preferences = new SharedPreferences(); return preferences.get(key); } @@ -62,7 +62,7 @@ class DefaultExtension extends MProvider { var fullList = []; - var priority = await this.getPreference("pref_content_priority"); + var priority = this.getPreference("pref_content_priority"); if (priority === "series") { fullList = [...popSeries, ...popMovie]; } else { @@ -85,7 +85,7 @@ class DefaultExtension extends MProvider { throw new Error("supportsLatest not implemented"); } async getLatestUpdates(page) { - var trend_window = await this.getPreference("pref_latest_time_window"); + var trend_window = this.getPreference("pref_latest_time_window"); var skip = (page - 1) * 20; return await this.getSearchInfo(`tmdb.trending/genre=${trend_window}&skip=${skip}.json`); } @@ -208,7 +208,7 @@ class DefaultExtension extends MProvider { var sortedStreams = []; var copyStreams = streams.slice() - var pref = await this.getPreference("pref_video_resolution"); + var pref = this.getPreference("pref_video_resolution"); for (var i in streams) { var stream = streams[i]; if (stream.quality.indexOf(pref) > -1) { @@ -225,9 +225,19 @@ class DefaultExtension extends MProvider { // Gets subtitles based on TMDB id. async getSubtitleList(id, s, e) { + var subPref = parseInt(this.getPreference("autoembed_pref_subtitle_source")); + var api = `https://sub.wyzie.ru/search?id=${id}` - if (s != "0") api = `${api}&season=${s}&episode=${e}` - var response = await new Client().get(api); + var hdr = {} + + if (subPref === 2) { + api = `https://sources.hexa.watch/subs/${id}` + hdr = { "Origin": "https://api.hexa.watch" } + if (s != "0") api = `${api}/${s}/${e}` + } else { + if (s != "0") api = `${api}&season=${s}&episode=${e}` + } + var response = await new Client().get(api, hdr); var body = JSON.parse(response.body); var subs = [] @@ -243,21 +253,25 @@ class DefaultExtension extends MProvider { // For anime episode video list async getVideoList(url) { - var streamAPI = parseInt(await this.getPreference("pref_stream_source")) + var streamAPI = parseInt(this.getPreference("pref_stream_source")) var parts = url.split("||"); var media_type = parts[0]; var id = parts[1]; + + var s = "0" + var e = "0" + if (media_type == "tv") { + s = parts[2] + e = parts[3] + } + var tmdb = id var streams = [] var subtitles = [] switch (streamAPI) { case 2: { - var s = "0" - var e = "0" if (media_type == "tv") { - s = parts[2] - e = parts[3] id = `${id}/${s}/${e}` } var api = `https://play2.123embed.net/server/3?path=/${media_type}/${id}` @@ -278,11 +292,7 @@ class DefaultExtension extends MProvider { break; } case 3: { - var s = "0" - var e = "0" if (media_type == "tv") { - s = parts[2] - e = parts[3] id = `${id}&s=${s}&e=${e}` } var api = `https://autoembed.cc/embed/player.php?id=${id}` @@ -313,11 +323,7 @@ class DefaultExtension extends MProvider { break; } case 4: { - var s = "0" - var e = "0" if (media_type == "tv") { - s = parts[2] - e = parts[3] id = `${id}&season=${s}&episode=${e}` } var api = `https://player.flicky.host/Server-main.php?id=${id}` @@ -349,7 +355,7 @@ class DefaultExtension extends MProvider { } case 5: { if (media_type == "tv") { - id = `${id}/${parts[2]}/${parts[3]}` + id = `${id}/${s}/${e}` } var api = `https://vidapi.click/api/video/${media_type}/${id}` var response = await new Client().get(api); @@ -360,14 +366,13 @@ class DefaultExtension extends MProvider { var body = JSON.parse(response.body); var link = body.sources[0].file - subtitles = body.tracks streams = await this.extractStreams(link); break; } default: { if (media_type == "tv") { - id = `${id}/${parts[2]}/${parts[3]}` + id = `${id}/${s}/${e}` } var api = `${this.source.apiUrl}/api/getVideoSource?type=${media_type}&id=${id}` var response = await new Client().get(api, this.getHeaders()); @@ -378,7 +383,6 @@ class DefaultExtension extends MProvider { var body = JSON.parse(response.body); var link = body.videoSource - subtitles = body.subtitles streams = await this.extractStreams(link); break; } @@ -388,13 +392,12 @@ class DefaultExtension extends MProvider { throw new Error("Video unavailable"); } - if (subtitles.length < 1) { - subtitles = await this.getSubtitleList(tmdb, s, e) - } - streams[0].subtitles = subtitles + + streams[0].subtitles = await this.getSubtitleList(tmdb, s, e) return await this.sortStreams(streams) } + // For manga chapter pages async getPageList() { throw new Error("getPageList not implemented"); @@ -442,6 +445,16 @@ class DefaultExtension extends MProvider { entryValues: ["1", "2", "3", "4", "5"] } }, + { + key: 'autoembed_pref_subtitle_source', + listPreference: { + title: 'Preferred subtitle source', + summary: '', + valueIndex: 0, + entries: ["sub.wyzie.ru", "hexa.watch"], + entryValues: ["1", "2"] + } + }, ]; }