From 2f1858cde7816eb13d3cef413e2dfad354c261bb Mon Sep 17 00:00:00 2001 From: Roel van Uden Date: Fri, 6 Mar 2015 21:58:31 +0100 Subject: [PATCH] #5: Support subtitle-less videos --- src/episode.ts | 8 +++++--- src/typings.ts | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/episode.ts b/src/episode.ts index c7135a2..a18c601 100644 --- a/src/episode.ts +++ b/src/episode.ts @@ -63,8 +63,9 @@ function download(config: typings.IConfig, page: typings.IEpisodePage, player: t /** * Saves the subtitles to disk. */ -function downloadSubtitle(config: typings.IConfig, player: typings.IEpisodePlayer, filePath: string, done: (err: Error) => void) { +function downloadSubtitle(config: typings.IConfig, player: typings.IEpisodePlayer, filePath: string, done: (err?: Error) => void) { var enc = player.subtitle; + if (!enc) return done(); subtitle.decode(enc.id, enc.iv, enc.data, (err, data) => { if (err) return done(err); var formats = subtitle.formats; @@ -151,12 +152,13 @@ function scrapePlayer(config: typings.IConfig, address: string, id: number, done }, (err: Error, player: typings.IEpisodePlayerConfig) => { if (err) return done(err); try { + var isSubtitled = Boolean(player['default:preload'].subtitle); done(null, { - subtitle: { + subtitle: isSubtitled ? { id: parseInt(player['default:preload'].subtitle.$.id, 10), iv: player['default:preload'].subtitle.iv, data: player['default:preload'].subtitle.data - }, + } : null, video: { file: player['default:preload'].stream_info.file, host: player['default:preload'].stream_info.host diff --git a/src/typings.ts b/src/typings.ts index cabbb47..11a22d0 100644 --- a/src/typings.ts +++ b/src/typings.ts @@ -33,7 +33,7 @@ export interface IEpisodePage { } export interface IEpisodePlayer { - subtitle: { + subtitle?: { id: number; iv: string; data: string;