mirror of
https://github.com/knightcrawler-stremio/knightcrawler.git
synced 2024-12-20 03:29:51 +00:00
[scraper] popupates anime film/special episode info
This commit is contained in:
@@ -138,14 +138,19 @@ async function mapSeriesEpisode(file, torrent, files) {
|
|||||||
async function mapSeriesMovie(file, torrent) {
|
async function mapSeriesMovie(file, torrent) {
|
||||||
const kitsuId = torrent.type === Type.ANIME ? await findMovieKitsuId(file) : undefined;
|
const kitsuId = torrent.type === Type.ANIME ? await findMovieKitsuId(file) : undefined;
|
||||||
const imdbId = !kitsuId ? await findMovieImdbId(file) : undefined;
|
const imdbId = !kitsuId ? await findMovieImdbId(file) : undefined;
|
||||||
const metadata = await getMetadata(kitsuId || imdbId, Type.MOVIE).catch(() => undefined);
|
const metadata = await getMetadata(kitsuId || imdbId, Type.MOVIE).catch(() => ({}));
|
||||||
|
const episodeIndex = (file.episode || 1) - 1;
|
||||||
|
const episodeVideo = metadata.videos && metadata.videos.length && metadata.videos[episodeIndex];
|
||||||
return [{
|
return [{
|
||||||
infoHash: torrent.infoHash,
|
infoHash: torrent.infoHash,
|
||||||
fileIndex: file.fileIndex,
|
fileIndex: file.fileIndex,
|
||||||
title: file.path || file.name,
|
title: file.path || file.name,
|
||||||
size: file.size,
|
size: file.size,
|
||||||
imdbId: metadata && metadata.imdbId || imdbId,
|
imdbId: metadata.imdbId || imdbId,
|
||||||
kitsuId: metadata && metadata.kitsuId || kitsuId
|
kitsuId: metadata.kitsuId || kitsuId,
|
||||||
|
imdbSeason: episodeVideo && metadata.imdbId ? episodeVideo.imdbSeason || episodeVideo.season : undefined,
|
||||||
|
imdbEpisode: episodeVideo && metadata.imdbId ? episodeVideo.imdbEpisode || episodeVideo.episode : undefined,
|
||||||
|
kitsuEpisode: episodeVideo && metadata.kitsuId ? episodeVideo.kitsuEpisode || episodeVideo.episode : undefined
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,7 +176,7 @@ async function decomposeEpisodes(torrent, files, metadata = { episodeCount: [] }
|
|||||||
} else {
|
} else {
|
||||||
// otherwise for anime type episodes are always absolute and for a single season
|
// otherwise for anime type episodes are always absolute and for a single season
|
||||||
files
|
files
|
||||||
.filter(file => file.episodes)
|
.filter(file => file.episodes && file.season !== 0)
|
||||||
.forEach(file => file.season = 1);
|
.forEach(file => file.season = 1);
|
||||||
return files;
|
return files;
|
||||||
}
|
}
|
||||||
@@ -272,7 +277,7 @@ function decomposeConcatSeasonAndEpisodeFiles(torrent, files, metadata) {
|
|||||||
function decomposeAbsoluteEpisodeFiles(torrent, files, metadata) {
|
function decomposeAbsoluteEpisodeFiles(torrent, files, metadata) {
|
||||||
if (metadata.episodeCount.length === 0) {
|
if (metadata.episodeCount.length === 0) {
|
||||||
files
|
files
|
||||||
.filter(file => !file.season && file.episodes && !file.isMovie)
|
.filter(file => !Number.isInteger(file.season) && file.episodes && !file.isMovie)
|
||||||
.forEach(file => {
|
.forEach(file => {
|
||||||
file.season = 1;
|
file.season = 1;
|
||||||
});
|
});
|
||||||
@@ -373,7 +378,7 @@ function assignKitsuOrImdbEpisodes(torrent, files, metadata) {
|
|||||||
if (metadata.videos.some(video => video.imdbSeason) || !metadata.imdbId) {
|
if (metadata.videos.some(video => video.imdbSeason) || !metadata.imdbId) {
|
||||||
// kitsu episode info is the base
|
// kitsu episode info is the base
|
||||||
files
|
files
|
||||||
.filter(file => file.season && file.episodes)
|
.filter(file => Number.isInteger(file.season) && file.episodes)
|
||||||
.map(file => {
|
.map(file => {
|
||||||
const seasonMapping = seriesMapping[file.season];
|
const seasonMapping = seriesMapping[file.season];
|
||||||
file.kitsuEpisodes = file.episodes;
|
file.kitsuEpisodes = file.episodes;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ const { parse } = require('parse-torrent-title');
|
|||||||
const Promises = require('../lib/promises');
|
const Promises = require('../lib/promises');
|
||||||
const { mostCommonValue } = require('../lib/promises');
|
const { mostCommonValue } = require('../lib/promises');
|
||||||
const repository = require('../lib/repository');
|
const repository = require('../lib/repository');
|
||||||
const { getImdbId } = require('../lib/metadata');
|
const { getImdbId, getKitsuId } = require('../lib/metadata');
|
||||||
const { parseTorrentFiles } = require('../lib/torrentFiles');
|
const { parseTorrentFiles } = require('../lib/torrentFiles');
|
||||||
const { createTorrentContents } = require('../lib/torrentEntries');
|
const { createTorrentContents } = require('../lib/torrentEntries');
|
||||||
const { assignSubtitles } = require('../lib/torrentSubtitles');
|
const { assignSubtitles } = require('../lib/torrentSubtitles');
|
||||||
|
|||||||
Reference in New Issue
Block a user