mirror of
https://github.com/Viren070/AIOStreams.git
synced 2025-12-01 23:14:04 +01:00
fix: add custom handlers for 3 digit season numbers
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { PARSE_REGEX } from './regex';
|
||||
import * as PTT from 'parse-torrent-title';
|
||||
import { ParsedFile } from '../db';
|
||||
import ptt from './ptt';
|
||||
|
||||
function matchPattern(
|
||||
filename: string,
|
||||
@@ -22,7 +22,7 @@ function matchMultiplePatterns(
|
||||
|
||||
class FileParser {
|
||||
static parse(filename: string): ParsedFile {
|
||||
const parsed = PTT.parse(filename);
|
||||
const parsed = ptt.parse(filename);
|
||||
// prevent the title from being parsed for info
|
||||
if (parsed.title && parsed.title.length > 4) {
|
||||
filename = filename.replace(parsed.title, '').trim();
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
import * as PTT from 'parse-torrent-title';
|
||||
|
||||
const array = (chain: (input: string) => number) => (input: string) => [
|
||||
chain ? chain(input) : input,
|
||||
];
|
||||
const integer = (input: string) => parseInt(input, 10);
|
||||
|
||||
const parser = new PTT.Parser();
|
||||
PTT.addDefaults(parser);
|
||||
parser.addHandler(
|
||||
'seasons',
|
||||
/(?:s)(\d{3})[. ]?[xх-]?[. ]?(?:e|x|х|ep|-|\.)[. ]?\d{1,4}(?:[abc]|v0?[1-4]|\D|$)/i,
|
||||
array(integer)
|
||||
);
|
||||
parser.addHandler(
|
||||
'seasons',
|
||||
/(?:so?|t)(\d{3})[. ]?[xх-]?[. ]?(?:e|x|х|ep|-|\.)[. ]?\d{1,4}(?:[abc]|v0?[1-4]|\D|$)/i,
|
||||
array(integer)
|
||||
);
|
||||
parser.addHandler(
|
||||
'seasons',
|
||||
/(?:(?:\bthe\W)?\bcomplete\W)?(?:saison|seizoen|sezon(?:SO?)?|stagione|season|series|temp(?:orada)?):?[. ]?(\d{3})/i,
|
||||
array(integer)
|
||||
);
|
||||
parser.addHandler(
|
||||
'seasons',
|
||||
/(?:(?:\bthe\W)?\bcomplete\W)?(?:\W|^)(\d{3})[. ]?(?:st|nd|rd|th)[. ]*season/i,
|
||||
array(integer)
|
||||
);
|
||||
parser.addHandler(
|
||||
'seasons',
|
||||
/(\d{3})(?:-?й)?[. _]?(?:[Сс]езон|sez(?:on)?)(?:\W?\D|$)/i,
|
||||
array(integer)
|
||||
);
|
||||
parser.addHandler(
|
||||
'seasons',
|
||||
/(?:\D|^)(\d{3})[Xxх]\d{1,3}(?:\D|$)/,
|
||||
array(integer)
|
||||
);
|
||||
parser.addHandler('seasons', /[[(](\d{3})\.\d{1,3}[)\]]/, array(integer));
|
||||
parser.addHandler('seasons', /-\s?(\d{3})\.\d{2,3}\s?-/, array(integer));
|
||||
parser.addHandler('seasons', /^(\d{3})\.\d{2,3} - /, array(integer), {
|
||||
skipIfBefore: ['year, source', 'resolution'],
|
||||
});
|
||||
|
||||
parser.addHandler('seasons', /\bS(\d{3})E\d{1,2}\b/i, array(integer));
|
||||
|
||||
parser.addHandler('episodes', /\bS\d{3}E(\d{1,2})\b/i, array(integer));
|
||||
parser.addHandler(
|
||||
'episodes',
|
||||
/(?:so?|t)\d{3}[. ]?[xх-]?[. ]?(?:e|x|х|ep)[. ]?(\d{1,4})(?:[abc]|v0?[1-4]|\D|$)/i,
|
||||
array(integer)
|
||||
);
|
||||
|
||||
export default parser;
|
||||
Reference in New Issue
Block a user