Sanitize filename parts; Fix #335
This commit is contained in:
parent
250709dc1d
commit
936f86b1f0
3 changed files with 21 additions and 16 deletions
15
crunchy.ts
15
crunchy.ts
|
|
@ -913,16 +913,17 @@ export default class Crunchy implements ServiceClass {
|
|||
const pbData = JSON.parse(playbackReq.res.body) as PlaybackData;
|
||||
|
||||
variables.push(...([
|
||||
['title', medias.episodeTitle],
|
||||
['episode', isNaN(parseInt(medias.episodeNumber)) ? medias.episodeNumber : parseInt(medias.episodeNumber)],
|
||||
['service', 'CR'],
|
||||
['showTitle', medias.seasonTitle],
|
||||
['season', medias.season]
|
||||
] as [AvailableFilenameVars, string|number][]).map((a): Variable => {
|
||||
['title', medias.episodeTitle, true],
|
||||
['episode', isNaN(parseInt(medias.episodeNumber)) ? medias.episodeNumber : parseInt(medias.episodeNumber), false],
|
||||
['service', 'CR', false],
|
||||
['showTitle', medias.seasonTitle, true],
|
||||
['season', medias.season, false]
|
||||
] as [AvailableFilenameVars, string|number, boolean][]).map((a): Variable => {
|
||||
return {
|
||||
name: a[0],
|
||||
replaceWith: a[1],
|
||||
type: typeof a[1]
|
||||
type: typeof a[1],
|
||||
sanitize: a[2]
|
||||
} as Variable;
|
||||
}));
|
||||
|
||||
|
|
|
|||
17
funi.ts
17
funi.ts
|
|
@ -638,18 +638,19 @@ export default class Funi implements ServiceClass {
|
|||
}
|
||||
|
||||
fnOutput = parseFileName(data.fileName, ([
|
||||
['episode', isNaN(parseInt(fnEpNum as string)) ? fnEpNum : parseInt(fnEpNum as string)],
|
||||
['title', epsiode.title],
|
||||
['showTitle', epsiode.showTitle],
|
||||
['season', season],
|
||||
['width', plLayersRes[selectedQuality].width],
|
||||
['height', plLayersRes[selectedQuality].height],
|
||||
['service', 'Funimation']
|
||||
] as [AvailableFilenameVars, string|number][]).map((a): Variable => {
|
||||
['episode', isNaN(parseInt(fnEpNum as string)) ? fnEpNum : parseInt(fnEpNum as string), true],
|
||||
['title', epsiode.title, true],
|
||||
['showTitle', epsiode.showTitle, true],
|
||||
['season', season, false],
|
||||
['width', plLayersRes[selectedQuality].width, false],
|
||||
['height', plLayersRes[selectedQuality].height, false],
|
||||
['service', 'Funimation', false]
|
||||
] as [AvailableFilenameVars, string|number, boolean][]).map((a): Variable => {
|
||||
return {
|
||||
name: a[0],
|
||||
replaceWith: a[1],
|
||||
type: typeof a[1],
|
||||
sanitize: a[2]
|
||||
} as Variable;
|
||||
}), data.numbers, data.override);
|
||||
if (fnOutput.length < 1)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@ export type Variable<T extends string = AvailableFilenameVars> = ({
|
|||
type: 'string',
|
||||
replaceWith: string
|
||||
}) & {
|
||||
name: T
|
||||
name: T,
|
||||
sanitize?: boolean
|
||||
}
|
||||
|
||||
const parseFileName = (input: string, variables: Variable[], numbers: number, override: string[]): string[] => {
|
||||
|
|
@ -33,6 +34,8 @@ const parseFileName = (input: string, variables: Variable[], numbers: number, ov
|
|||
const replaceStr = len < numbers ? '0'.repeat(numbers - len) + use.replaceWith : use.replaceWith.toFixed(0);
|
||||
input = input.replace(type, replaceStr);
|
||||
} else {
|
||||
if (use.sanitize)
|
||||
use.replaceWith = shlp.cleanupFilename(use.replaceWith);
|
||||
input = input.replace(type, use.replaceWith);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue