From 05a68f2eccde7cfa96259d3ac3bc675828e2cf62 Mon Sep 17 00:00:00 2001 From: ThaUnknown <6506529+ThaUnknown@users.noreply.github.com> Date: Sun, 5 Jun 2022 23:00:24 +0200 Subject: [PATCH] fix: minor filename parsing improvements --- package.json | 2 +- src/renderer/src/lib/RSSView.svelte | 4 +-- src/renderer/src/modules/anime.js | 38 ++++++++++++++++++++++------- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 7a4ad7f..9b70e67 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Miru", - "version": "2.4.2", + "version": "2.4.3", "author": "ThaUnknown_ ", "main": "src/index.js", "homepage": "https://github.com/ThaUnknown/miru#readme", diff --git a/src/renderer/src/lib/RSSView.svelte b/src/renderer/src/lib/RSSView.svelte index 0c6294c..fb6abe9 100644 --- a/src/renderer/src/lib/RSSView.svelte +++ b/src/renderer/src/lib/RSSView.svelte @@ -123,7 +123,7 @@ const quality = `"${settings.rssQuality}"` || '"1080p"' const trusted = settings.rssTrusted === true ? 2 : 0 const url = new URL( - `https://${media.isAdult ? 'sukebei.nyaa.si/?page=rss&c=1_1' : 'nyaa.si/?page=rss&c=1_2'}&f=${trusted}&s=seeders&o=desc&q=(${titles})${ep}${quality}-(${excl})` + `https://nyaa.si/?page=rss&c=1_2&f=${trusted}&s=seeders&o=desc&q=(${titles})${ep}${quality}-(${excl})` ) let nodes = [...(await getRSSContent(url)).querySelectorAll('item')] @@ -133,7 +133,7 @@ const ep = `"+${episodes[1] > 9 ? episodes[1] : `0${episodes[1]}`}+"|"+${episodes[1] > 9 ? episodes[1] : `0${episodes[1]}`}v"` const url = new URL( - `https://${media.isAdult ? 'sukebei.nyaa.si/?page=rss&c=1_1' : 'nyaa.si/?page=rss&c=1_2'}&f=${trusted}&s=seeders&o=desc&q=(${titles})${ep}${quality}-(${excl})` + `https://nyaa.si/?page=rss&c=1_2&f=${trusted}&s=seeders&o=desc&q=(${titles})${ep}${quality}-(${excl})` ) nodes = [...nodes, ...(await getRSSContent(url)).querySelectorAll('item')] } diff --git a/src/renderer/src/modules/anime.js b/src/renderer/src/modules/anime.js index f5904d3..55dc55f 100644 --- a/src/renderer/src/modules/anime.js +++ b/src/renderer/src/modules/anime.js @@ -96,16 +96,21 @@ async function resolveTitle (name) { // inefficient but readable let media = null - // change S2 into Season 2 or 2nd Season - const match = method.name.match(/ S(\d)$/) - const oldname = method.name try { + // change S2 into Season 2 or 2nd Season + const match = method.name.match(/ S(\d+)/) + const oldname = method.name if (match) { - method.name = method.name.replace(/ S(\d)$/, ` ${match[1]}${postfix[match[1]] || 'th'} Season`) - media = (await alRequest(method)).data.Page.media[0] - if (!media) { - method.name = oldname.replace(/ S(\d)$/, ` Season ${match[1]}`) + if (Number(match[1]) === 1) { // if this is S1, remove the " S1" or " S01" + method.name = method.name.replace(/ S(\d+)/, '') media = (await alRequest(method)).data.Page.media[0] + } else { + method.name = method.name.replace(/ S(\d+)/, ` ${Number(match[1])}${postfix[Number(match[1])] || 'th'} Season`) + media = (await alRequest(method)).data.Page.media[0] + if (!media) { + method.name = oldname.replace(/ S(\d+)/, ` Season ${Number(match[1])}`) + media = (await alRequest(method)).data.Page.media[0] + } } } else { media = (await alRequest(method)).data.Page.media[0] @@ -115,7 +120,15 @@ async function resolveTitle (name) { if (!media) { const match = method.name.match(/\(TV\)/) if (match) { - method.name = name.replace('(TV)', '').replace('-', '') + method.name = method.name.replace('(TV)', '') + media = (await alRequest(method)).data.Page.media[0] + } + } + // remove - : + if (!media) { + const match = method.name.match(/[-:]/g) + if (match) { + method.name = method.name.replace(/[-:]/g, '') media = (await alRequest(method)).data.Page.media[0] } } @@ -134,7 +147,14 @@ async function resolveTitle (name) { function getParseObjTitle (obj) { let title = obj.anime_title - if (obj.anime_season) title += ' S' + obj.anime_season + const match = title.match(/ S(\d{1,2})E(\d{1,2})v\d/) + if (match) { + obj.episode_number = match[2] + obj.anime_season = match[1] + obj.anime_title = title.replace(/ S(\d{1,2})E(\d{1,2})v\d/, '') + title = obj.anime_title + } + if (obj.anime_season > 1) title += ' S' + obj.anime_season return title }