From d9c7073a73bdb97d117f591eef1e03aa5fdc96dc Mon Sep 17 00:00:00 2001 From: ThaUnknown Date: Fri, 22 Jan 2021 23:23:27 +0100 Subject: [PATCH] minor fixes and improvements for name resolving, batch support --- app/js/animeHandler.js | 53 ++++++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/app/js/animeHandler.js b/app/js/animeHandler.js index 765dd4b..29646e9 100644 --- a/app/js/animeHandler.js +++ b/app/js/animeHandler.js @@ -454,7 +454,7 @@ function cardCreator(media, name, episode) { ${media.season || media.seasonYear ? "" + ((media.season.toLowerCase() || "") + " ") + (media.seasonYear || "") + "" : ""}

-
+
${media.description}
@@ -556,7 +556,7 @@ async function resolveName(name, method, release) { return store[name] } -async function resolveName2(opts) { +async function resolveFileMedia(opts) { // opts.fileName opts.method opts.isRelease let elems = await anitomyscript(opts.fileName); @@ -570,7 +570,7 @@ async function resolveName2(opts) { } res = await alRequest(method) if (!res.data.Page.media[0]) { - method.name = method.name.replace(" (TV)", "").replace(` (${new Date().getFullYear()})`, "").replace("-", "") + method.name = method.name.replace(" (TV)", "").replace(` (${new Date().getFullYear()})`, "").replace("-", "") // this needs to be improved!!! res = await alRequest(method) } if (res.data.Page.media[0]) store[elems.anime_title] = res.data.Page.media[0] @@ -580,41 +580,64 @@ async function resolveName2(opts) { if (media && media.format != "MOVIE" && elems.episode_number) { async function resolveSeason(opts) { // opts.media, opts.episode, opts.increment, opts.offset + let epMin, epMax + if (opts.episode.constructor == Array) { // support batch episode ranges + epMin = Number(opts.episode[0]) + epMax = Number(opts.episode[opts.episode.length - 1]) + } else { + epMin = epMax = Number(opts.episode) + } if (opts.media.relations.edges.some(edge => edge.relationType == "PREQUEL" && (edge.node.format == "TV" || "TV_SHORT")) && !opts.increment) { // media has prequel and we dont want to move up in the tree let tempMedia = opts.media.relations.edges.filter(edge => edge.relationType == "PREQUEL" && (edge.node.format == "TV" || "TV_SHORT"))[0].node - if (tempMedia.episodes && opts.episode - (opts.offset + tempMedia.episodes) > media.episodes) { + if (tempMedia.episodes && epMax - (opts.offset + tempMedia.episodes) > media.episodes) { // episode is still out of bounds let nextEdge = await alRequest({ method: "SearchIDSingle", id: tempMedia.id }) await resolveSeason({ media: nextEdge.data.Media, episode: opts.episode, offset: opts.offset + nextEdge.data.Media.episodes }) - } else if (tempMedia.episodes && opts.episode - (opts.offset + tempMedia.episodes) < media.episodes && opts.episode - (opts.offset + tempMedia.episodes) > 0) { + } else if (tempMedia.episodes && epMax - (opts.offset + tempMedia.episodes) < media.episodes && epMin - (opts.offset + tempMedia.episodes) > 0) { // episode is in range, seems good! - episode = opts.episode - (opts.offset + tempMedia.episodes) + if (opts.episode.constructor == Array) { + episode = `${elems.episode_number[0] - (opts.offset + tempMedia.episodes)} - ${elems.episode_number[elems.episode_number.length - 1] - (opts.offset + tempMedia.episodes)}` + } else { + episode = opts.episode - (opts.offset + tempMedia.episodes) + } } else { console.log("error in parsing!") // there was an issue in parsing :( forcing display - episode = opts.episode + if (opts.episode.constructor == Array) { + episode = `${Number(elems.episode_number[0])} - ${Number(elems.episode_number[elems.episode_number.length - 1])}` + } else { + episode = Number(opts.episode) + } } } else if (opts.media.relations.edges.some(edge => edge.relationType == "SEQUEL" && (edge.node.format == "TV" || "TV_SHORT"))) { // media doesnt have prequel, or we want to move up in the tree let tempMedia = opts.media.relations.edges.filter(edge => edge.relationType == "SEQUEL" && (edge.node.format == "TV" || "TV_SHORT"))[0].node - if (tempMedia.episodes && opts.episode - (opts.offset + tempMedia.episodes) > media.episodes) { + if (tempMedia.episodes && epMax - (opts.offset + tempMedia.episodes) > media.episodes) { // episode is still out of bounds let nextEdge = await alRequest({ method: "SearchIDSingle", id: tempMedia.id }) await resolveSeason({ media: nextEdge.data.Media, episode: opts.episode, offset: opts.offset + nextEdge.data.Media.episodes }) - } else if (tempMedia.episodes && opts.episode - (opts.offset + tempMedia.episodes) < media.episodes && opts.episode - (opts.offset + tempMedia.episodes) > 0) { + } else if (tempMedia.episodes && epMax - (opts.offset + tempMedia.episodes) < media.episodes && epMin - (opts.offset + tempMedia.episodes) > 0) { // episode is in range, seems good! overwriting media to count up "seasons" - episode = opts.episode - (opts.offset + tempMedia.episodes) + if (opts.episode.constructor == Array) { + episode = `${elems.episode_number[0] - (opts.offset + tempMedia.episodes)} - ${elems.episode_number[elems.episode_number.length - 1] - (opts.offset + tempMedia.episodes)}` + } else { + episode = opts.episode - (opts.offset + tempMedia.episodes) + } let nextEdge = await alRequest({ method: "SearchIDSingle", id: tempMedia.id }) media = nextEdge.data.Media } else { console.log("error in parsing!") // there was an issue in parsing :( forcing display - episode = opts.episode + if (opts.episode.constructor == Array) { + episode = `${Number(elems.episode_number[0])} - ${Number(elems.episode_number[elems.episode_number.length - 1])}` + } else { + episode = Number(opts.episode) + } } } else { // something failed, most likely couldnt find an edge or processing failed, force episode number even if its invalid/out of bounds, better than nothing - episode = opts.episode + episode = Number(opts.episode) } } if (elems.episode_number.constructor == Array) { @@ -624,11 +647,11 @@ async function resolveName2(opts) { episode = `${elems.episode_number[0]} - ${elems.episode_number[elems.episode_number.length - 1]}` } else { if (media.episodes && parseInt(elems.episode_number[elems.episode_number.length - 1]) > media.episodes) { - // if highest value is bigger than episode count + // if highest value is bigger than episode count, parseint to math.floor a number like 12.5 - specials - in 1 go await resolveSeason({ media: media, episode: elems.episode_number, offset: 0 }) } else { // cant find ep count or range seems fine - episode = `${elems.episode_number[0]} - ${elems.episode_number[elems.episode_number.length - 1]}` + episode = `${Number(elems.episode_number[0])} - ${Number(elems.episode_number[elems.episode_number.length - 1])}` } } } else { @@ -637,7 +660,7 @@ async function resolveName2(opts) { await resolveSeason({ media: media, episode: elems.episode_number, offset: 0 }) } else { // cant find ep count or episode seems fine - episode = elems.episode_number + episode = Number(elems.episode_number) } } }