Give access to the config objet to the subtitles for future changes.

This commit is contained in:
Godzil 2018-07-14 20:40:08 +01:00
parent f10bead0dc
commit 6c2100fbff
4 changed files with 9 additions and 8 deletions

View File

@ -186,7 +186,7 @@ function downloadSubtitle(config: IConfig, player: IEpisodePlayer, filePath: str
const formats = subtitle.formats; const formats = subtitle.formats;
const format = formats[config.format] ? config.format : 'ass'; 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) if (errF)
{ {

View File

@ -1,3 +1,3 @@
interface IFormatterTable { 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;
} }

View File

@ -4,7 +4,7 @@ import xml2js = require('xml2js');
/** /**
* Converts an input buffer to a SubStation Alpha subtitle. * 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(), { xml2js.parseString(input.toString(), {
explicitArray: false, explicitArray: false,
@ -18,9 +18,9 @@ export default function(input: string|Buffer, done: (err: Error, subtitle?: stri
try try
{ {
done(null, script(xml) + '\n' + done(null, script(config, xml) + '\n' +
style(xml.styles) + '\n' + style(xml.styles) + '\n' +
event(xml.events)); event(config, xml.events));
} catch (err) } catch (err)
{ {
done(err); done(err);
@ -31,7 +31,7 @@ export default function(input: string|Buffer, done: (err: Error, subtitle?: stri
/** /**
* Converts the event block. * 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'; 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. * Converts the script block.
*/ */
function script(block: ISubtitle): string function script(config: IConfig, block: ISubtitle): string
{ {
return '[Script Info]\n' + return '[Script Info]\n' +
'Origin: Downloaded from Crunchyroll.com by ' + config.user + '\n' +
'Title: ' + block.$.title + '\n' + 'Title: ' + block.$.title + '\n' +
'ScriptType: v4.00+\n' + 'ScriptType: v4.00+\n' +
'WrapStyle: ' + block.$.wrap_style + '\n' + 'WrapStyle: ' + block.$.wrap_style + '\n' +

View File

@ -4,7 +4,7 @@ import xml2js = require('xml2js');
/** /**
* Converts an input buffer to a SubRip subtitle. * 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}; const options = {explicitArray: false, explicitRoot: false};