mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-14 10:51:17 +00:00
extension(Autoembed): Added series support
This commit is contained in:
@@ -6,7 +6,7 @@ const mangayomiSources = [{
|
|||||||
"iconUrl": "https://www.google.com/s2/favicons?sz=64&domain=https://autoembed.cc/",
|
"iconUrl": "https://www.google.com/s2/favicons?sz=64&domain=https://autoembed.cc/",
|
||||||
"typeSource": "multi",
|
"typeSource": "multi",
|
||||||
"isManga": false,
|
"isManga": false,
|
||||||
"version": "0.0.1",
|
"version": "0.0.2",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
"dateFormatLocale": "",
|
"dateFormatLocale": "",
|
||||||
"pkgPath": ""
|
"pkgPath": ""
|
||||||
@@ -68,34 +68,64 @@ class DefaultExtension extends MProvider {
|
|||||||
async getDetail(url) {
|
async getDetail(url) {
|
||||||
var parts = url.split("/");
|
var parts = url.split("/");
|
||||||
var media_type = parts[0];
|
var media_type = parts[0];
|
||||||
var tmdbId = parts[1];
|
var id = parts[1];
|
||||||
var api = `${this.tmdb_api}/meta/${media_type}/${tmdbId}.json`
|
var api = `${this.tmdb_api}/meta/${media_type}/${id}.json`
|
||||||
const response = await new Client().get(api);
|
const response = await new Client().get(api);
|
||||||
const body = JSON.parse(response.body);
|
const body = JSON.parse(response.body);
|
||||||
var result = body.meta;
|
var result = body.meta;
|
||||||
|
|
||||||
var release = result.released ? new Date(result.released) : Date.now();
|
var tmdb_id = id.substring(5, )
|
||||||
|
var imdb_id = result.imdb_id
|
||||||
|
var dateNow = Date.now().valueOf();
|
||||||
|
var release = result.released ? new Date(result.released).valueOf() : dateNow
|
||||||
|
var chaps = [];
|
||||||
|
|
||||||
var item = {
|
var item = {
|
||||||
name: result.name,
|
name: result.name,
|
||||||
imageUrl: result.poster,
|
imageUrl: result.poster,
|
||||||
link: `${media_type}/${tmdbId}`,
|
link: `https://imdb.com/title/${imdb_id}`,
|
||||||
description: result.description,
|
description: result.description,
|
||||||
genre: result.genre,
|
genre: result.genre,
|
||||||
};
|
};
|
||||||
var chaps = [];
|
|
||||||
|
|
||||||
chaps.push({
|
if (media_type == "series") {
|
||||||
name: "Movie",
|
|
||||||
url: `${media_type}/${result.imdb_id}`,
|
var videos = result.videos
|
||||||
dateUpload: release.valueOf().toString(),
|
for (var i in videos) {
|
||||||
})
|
var video = videos[i];
|
||||||
|
var seasonNum = video.season;
|
||||||
|
|
||||||
|
if (!seasonNum) continue;
|
||||||
|
|
||||||
|
var episodeNum = video.episode
|
||||||
|
|
||||||
|
var eplink = `tv||${tmdb_id}/${seasonNum}/${episodeNum}`
|
||||||
|
release = video.released ? new Date(video.released).valueOf() : dateNow
|
||||||
|
|
||||||
|
|
||||||
|
if (release < dateNow) {
|
||||||
|
var name = video.name
|
||||||
|
chaps.push({
|
||||||
|
name: name,
|
||||||
|
url: eplink,
|
||||||
|
dateUpload: release.toString(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (release < dateNow) {
|
||||||
|
chaps.push({
|
||||||
|
name: "Movie",
|
||||||
|
url: `${media_type}||${tmdb_id}`,
|
||||||
|
dateUpload: release.toString(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
item.chapters = chaps;
|
item.chapters = chaps;
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
async extractStreams(url) {
|
async extractStreams(url) {
|
||||||
const response = await new Client().get(url);
|
const response = await new Client().get(url);
|
||||||
const body = response.body;
|
const body = response.body;
|
||||||
@@ -113,21 +143,27 @@ class DefaultExtension extends MProvider {
|
|||||||
quality: resolution,
|
quality: resolution,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return streams;
|
return streams;
|
||||||
}
|
}
|
||||||
|
|
||||||
// For anime episode video list
|
// For anime episode video list
|
||||||
async getVideoList(url) {
|
async getVideoList(url) {
|
||||||
var parts = url.split("/");
|
var parts = url.split("||");
|
||||||
var media_type = parts[0];
|
var media_type = parts[0];
|
||||||
var imdbId = parts[1];
|
var id = parts[1];
|
||||||
var api = `${this.source.apiUrl}/api/getVideoSource?type=${media_type}&id=${imdbId}`
|
var api = `${this.source.apiUrl}/api/getVideoSource?type=${media_type}&id=${id}`
|
||||||
const response = await new Client().get(api, this.getHeaders());
|
const response = await new Client().get(api, this.getHeaders());
|
||||||
const body = JSON.parse(response.body);
|
const body = JSON.parse(response.body);
|
||||||
|
|
||||||
|
if (response.statusCode == 404) {
|
||||||
|
throw new Error("Video unavailable");
|
||||||
|
|
||||||
|
}
|
||||||
var link = body.videoSource
|
var link = body.videoSource
|
||||||
|
|
||||||
var subtitles = body.subtitles
|
var subtitles = body.subtitles
|
||||||
var streams = await this.extractStreams(link);
|
var streams = await this.extractStreams(link);
|
||||||
streams.push({
|
streams.push({
|
||||||
url: link,
|
url: link,
|
||||||
originalUrl: link,
|
originalUrl: link,
|
||||||
@@ -153,7 +189,7 @@ class DefaultExtension extends MProvider {
|
|||||||
summary: '',
|
summary: '',
|
||||||
valueIndex: 0,
|
valueIndex: 0,
|
||||||
entries: ["Movies", "TV Shows"],
|
entries: ["Movies", "TV Shows"],
|
||||||
entryValues: ["movie", "tv"]
|
entryValues: ["movie", "series"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user