fix: minor filename parsing improvements

This commit is contained in:
ThaUnknown 2022-06-05 23:00:24 +02:00
parent a57491a1f5
commit 05a68f2ecc
3 changed files with 32 additions and 12 deletions

View file

@ -1,6 +1,6 @@
{
"name": "Miru",
"version": "2.4.2",
"version": "2.4.3",
"author": "ThaUnknown_ <ThaUnknown@users.noreply.github.com>",
"main": "src/index.js",
"homepage": "https://github.com/ThaUnknown/miru#readme",

View file

@ -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')]
}

View file

@ -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
}