diff --git a/src/episode.ts b/src/episode.ts index 22cfa91..32c1226 100644 --- a/src/episode.ts +++ b/src/episode.ts @@ -186,7 +186,7 @@ function downloadSubtitle(config: IConfig, player: IEpisodePlayer, filePath: str const formats = subtitle.formats; const format = formats[config.format] ? config.format : 'ass'; - formats[format](data, (errF: Error, decodedSubtitle: string) => + formats[format](config, data, (errF: Error, decodedSubtitle: string) => { if (errF) { diff --git a/src/interface/IFormatterTable.d.ts b/src/interface/IFormatterTable.d.ts index a0ca4c1..2c22f3f 100644 --- a/src/interface/IFormatterTable.d.ts +++ b/src/interface/IFormatterTable.d.ts @@ -1,3 +1,3 @@ interface IFormatterTable { - [key: string]: (input: string|Buffer, done: (err: Error, subtitle?: string) => void) => void; + [key: string]: (config: IConfig, input: string|Buffer, done: (err: Error, subtitle?: string) => void) => void; } diff --git a/src/subtitle/formats/ass.ts b/src/subtitle/formats/ass.ts index 4d9e977..2d96997 100644 --- a/src/subtitle/formats/ass.ts +++ b/src/subtitle/formats/ass.ts @@ -4,7 +4,7 @@ import xml2js = require('xml2js'); /** * Converts an input buffer to a SubStation Alpha subtitle. */ -export default function(input: string|Buffer, done: (err: Error, subtitle?: string) => void) +export default function(config: IConfig, input: string|Buffer, done: (err: Error, subtitle?: string) => void) { xml2js.parseString(input.toString(), { explicitArray: false, @@ -18,9 +18,9 @@ export default function(input: string|Buffer, done: (err: Error, subtitle?: stri try { - done(null, script(xml) + '\n' + + done(null, script(config, xml) + '\n' + style(xml.styles) + '\n' + - event(xml.events)); + event(config, xml.events)); } catch (err) { done(err); @@ -31,7 +31,7 @@ export default function(input: string|Buffer, done: (err: Error, subtitle?: stri /** * Converts the event block. */ -function event(block: ISubtitleEvent): string +function event(config: IConfig, block: ISubtitleEvent): string { const format = 'Layer,Start,End,Style,Name,MarginL,MarginR,MarginV,Effect,Text'; @@ -51,10 +51,11 @@ function event(block: ISubtitleEvent): string /** * Converts the script block. */ -function script(block: ISubtitle): string +function script(config: IConfig, block: ISubtitle): string { return '[Script Info]\n' + + 'Origin: Downloaded from Crunchyroll.com by ' + config.user + '\n' + 'Title: ' + block.$.title + '\n' + 'ScriptType: v4.00+\n' + 'WrapStyle: ' + block.$.wrap_style + '\n' + diff --git a/src/subtitle/formats/srt.ts b/src/subtitle/formats/srt.ts index 99ef2b7..30d9ea8 100644 --- a/src/subtitle/formats/srt.ts +++ b/src/subtitle/formats/srt.ts @@ -4,7 +4,7 @@ import xml2js = require('xml2js'); /** * Converts an input buffer to a SubRip subtitle. */ -export default function(input: Buffer|string, done: (err: Error, subtitle?: string) => void) +export default function(config: IConfig, input: Buffer|string, done: (err: Error, subtitle?: string) => void) { const options = {explicitArray: false, explicitRoot: false};