Beispiel #1
0
                    function(results){
                        for(var i=0; i < results.length; i++)
                        {
                            var result = results[i];
                            if(result.SubFormat === 'srt')
                            {
                                var found = false;
                                for(var a = 0; a < manager.list.length; a++) {
                                    if (manager.list[a].iso639 == result.ISO639) {
                                        found = true;
                                        break;
                                    }
                                }

                                if(!found) {
                                    var subtitle = new Subtitle(result.LanguageName, result.ISO639, result.SubDownloadLink);
                                    manager.list.push(subtitle);
                                }
                            }
                        }

                        console.log(manager.list);
                        openSubs.api.logout(token);
                        cb(true);
                    }
Beispiel #2
0
                opensubtitles.api.search(token, opts.lang, opts.title).done(function(results){
                    console.log('Subs results len: ' + results.length);

                    if(results.length < 1)
                        return callback(false);

                    var suitableSubs = [];
                    var minDiffLen = 1000000;
                    var minDiffResult;
                    for(var i=0;i<results.length;i++){
                        if(results[i].MovieReleaseName){
                            var diffLen = getStringDistance(results[i].MovieReleaseName, fileName);
                            if(diffLen < 3){
                                suitableSubs.push(results[i]);
                                console.log("Best match found: " + results[i].MovieReleaseName + " : " + fileName);
                                break;
                            }else{
                                if(diffLen < minDiffLen){
                                    minDiffLen = diffLen;
                                    minDiffResult = results[i];
                                }
                            }
                        }
                    }
                    // console.log(suitableSubs);
                    if(suitableSubs.length < 1)
                        suitableSubs.push(minDiffResult);

                    console.log('Downloading subtitle..');

                    opensubtitles.downloader.download(suitableSubs, 1, srtFilePath, null);
                    opensubtitles.api.logout(token);
                });
Beispiel #3
0
    .done(function(token){
      opensubtitles.api.search(token, subtitle_language, torrent_title)
      .done(
        function(results){
          if (typeof results[0] != "undefined") {
            console.log(chalk.green.bold("Subtitles found!"));
            console.log(chalk.green.bold("Downloading..."));

            //download file
            var url = results[0].SubDownloadLink.split('.gz').join('.srt');
            var dest = os.tmpdir() + "/sub.srt";
            var cb;

            var download = function(url, dest, cb) {
              var file = fs.createWriteStream(dest);
              var request = http.get(url, function(response) {
                response.pipe(file);
                file.on('finish', function() {
                  file.close(cb);
                  console.log(chalk.green.bold("Subtitles downloaded."));
                  peerflix_subtitle = dest;
                  deferred.resolve(peerflix_subtitle);
                });
              });
            };

            download(url, dest, cb);

          } else {
            console.log(chalk.red.bold("No subtitles found :( Sorry."));
            deferred.resolve(false);
          }
        }
      );
    });
Beispiel #4
0
    manager.searchSubtitles = function (value, cb) {
        manager.list = []; //Clear the subtitle list
        openSubs.api.login().done(
            function(token){
                openSubs.api.search(token, 'all', value).done(
                    function(results){
                        for(var i=0; i < results.length; i++)
                        {
                            var result = results[i];
                            if(result.SubFormat === 'srt')
                            {
                                var found = false;
                                for(var a = 0; a < manager.list.length; a++) {
                                    if (manager.list[a].iso639 == result.ISO639) {
                                        found = true;
                                        break;
                                    }
                                }

                                if(!found) {
                                    var subtitle = new Subtitle(result.LanguageName, result.ISO639, result.SubDownloadLink);
                                    manager.list.push(subtitle);
                                }
                            }
                        }

                        console.log(manager.list);
                        openSubs.api.logout(token);
                        cb(true);
                    }
                );
            }
        );

        //If an error occurs show it in the console
        openSubs.api.on('error', function(e){
            console.log(e);
            cb(false);
        });
    };
Beispiel #5
0
    fs.exists(vttFilePath, function(exists) {
        if (exists) {
            console.log(".srt file already exists for "+ opts.lang);
            callback(strUrl);
        }else if(srtFilePath){

            console.log("OPEN SUBTITLES LOGGING IN..");
            opensubtitles.api.login().done(function(token){
                console.log("OPEN SUBTITLES PARAMS: "+ token, opts.lang, opts.title);
                // opensubtitles.api.searchForFile(token, opts.lang, srtFilename).done(function(results){
                opensubtitles.api.search(token, opts.lang, opts.title).done(function(results){
                    console.log('Subs results len: ' + results.length);

                    if(results.length < 1)
                        return callback(false);

                    var suitableSubs = [];
                    var minDiffLen = 1000000;
                    var minDiffResult;
                    for(var i=0;i<results.length;i++){
                        if(results[i].MovieReleaseName){
                            var diffLen = getStringDistance(results[i].MovieReleaseName, fileName);
                            if(diffLen < 3){
                                suitableSubs.push(results[i]);
                                console.log("Best match found: " + results[i].MovieReleaseName + " : " + fileName);
                                break;
                            }else{
                                if(diffLen < minDiffLen){
                                    minDiffLen = diffLen;
                                    minDiffResult = results[i];
                                }
                            }
                        }
                    }
                    // console.log(suitableSubs);
                    if(suitableSubs.length < 1)
                        suitableSubs.push(minDiffResult);

                    console.log('Downloading subtitle..');

                    opensubtitles.downloader.download(suitableSubs, 1, srtFilePath, null);
                    opensubtitles.api.logout(token);
                });
            });

            opensubtitles.downloader.on("downloaded", function(info){
                console.log("Subtitle downloaded: "+ info.file);
                if(info.file){
                    var strCharset = chardet.detectFileSync(info.file);
                    console.log("Subtitle Charset: "+ strCharset);
                    /*
                    if(strCharset != "utf-8" && strCharset != "UTF-8"){
                        console.log('Converting subtitle charset '+strCharset+' to utf-8');
                        var srtUtf8, srtData = fs.readFileSync(info.file);
                        // if turkish encoding
                        if(strCharset == 'windows-1254' || strCharset == 'WINDOWS-1254' || strCharset == 'win-1254' || strCharset == 'WIN-1254' || strCharset == 'ISO-8859-9' || strCharset == 'iso-8859-9'){
                            console.log('Converting Turkish..');
                            srtUtf8 = turkishencoding(strCharset).toUTF8(srtData);
                        }else{
                            console.log('Converting Others..');
                            srtUtf8 = encoding.convert(srtData, "utf-8", strCharset);
                        }
                        fs.writeFileSync(info.file, srtUtf8);
                    }
                    */

                    if(strCharset == 'windows-1254' || strCharset == 'WINDOWS-1254' || strCharset == 'win-1254' || strCharset == 'WIN-1254' || strCharset == 'ISO-8859-9' || strCharset == 'iso-8859-9'){
                        console.log('Converting Turkish charset to UTF-8..');
                        if(strCharset == 'windows-1254' || strCharset == 'WINDOWS-1254') strCharset = 'win-1254'; //workaround to fix charset name for turkishencoding module.
                        var srtUtf8, srtData = fs.readFileSync(info.file);
                        srtUtf8 = turkishencoding(strCharset).toUTF8(srtData);
                        fs.writeFileSync(info.file, srtUtf8);
                    }

                    // convert str to vtt
                    srt2vtt(fs.readFileSync(info.file), function(err, vttData) {
                        if (err) callback(false);
                        fs.writeFileSync(vttFilePath, vttData);
                        callback(vttUrl);
                    });

                }else{
                    callback(false);
                }
                
            });

        }else{
            callback(false);
        }
    });