#5: Support subtitle-less videos

This commit is contained in:
Roel van Uden 2015-03-06 21:58:31 +01:00
parent a98ed223c6
commit 2f1858cde7
2 changed files with 6 additions and 4 deletions

View File

@ -63,8 +63,9 @@ function download(config: typings.IConfig, page: typings.IEpisodePage, player: t
/** /**
* Saves the subtitles to disk. * 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; var enc = player.subtitle;
if (!enc) return done();
subtitle.decode(enc.id, enc.iv, enc.data, (err, data) => { subtitle.decode(enc.id, enc.iv, enc.data, (err, data) => {
if (err) return done(err); if (err) return done(err);
var formats = subtitle.formats; var formats = subtitle.formats;
@ -151,12 +152,13 @@ function scrapePlayer(config: typings.IConfig, address: string, id: number, done
}, (err: Error, player: typings.IEpisodePlayerConfig) => { }, (err: Error, player: typings.IEpisodePlayerConfig) => {
if (err) return done(err); if (err) return done(err);
try { try {
var isSubtitled = Boolean(player['default:preload'].subtitle);
done(null, { done(null, {
subtitle: { subtitle: isSubtitled ? {
id: parseInt(player['default:preload'].subtitle.$.id, 10), id: parseInt(player['default:preload'].subtitle.$.id, 10),
iv: player['default:preload'].subtitle.iv, iv: player['default:preload'].subtitle.iv,
data: player['default:preload'].subtitle.data data: player['default:preload'].subtitle.data
}, } : null,
video: { video: {
file: player['default:preload'].stream_info.file, file: player['default:preload'].stream_info.file,
host: player['default:preload'].stream_info.host host: player['default:preload'].stream_info.host

View File

@ -33,7 +33,7 @@ export interface IEpisodePage {
} }
export interface IEpisodePlayer { export interface IEpisodePlayer {
subtitle: { subtitle?: {
id: number; id: number;
iv: string; iv: string;
data: string; data: string;