|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- var OpenSubtitles = require("opensubtitles-api");
- var fs = require("fs");
- var http = require("http");
- var urllib = require("url");
-
- var subs = new OpenSubtitles({ useragent: "mmpc-media-streamer" });
-
- var conf;
-
- exports.init = function(app, _conf) {
- conf = _conf;
- }
-
- exports.find = function(filesize, filename, cb) {
- if (!conf.subtitles)
- return cb();
-
- var subFile = conf.tmpdir+"/subs.srt";
- try {
- fs.unlinkSync(subFile);
- } catch (err) {}
-
- subs.search({
- sublanguageid: conf.subtitles,
- filesize: filesize,
- filename: filename
- }).then(subtitles => {
- var sub = subtitles[conf.subtitles];
- if (!sub || !sub.url)
- return cb();
-
- try {
- var ws = fs.createWriteStream(subFile);
- } catch (err) {
- console.trace(err);
- cb();
- }
-
- http.request(urllib.parse(sub.url), res => {
- res.pipe(ws);
-
- res
- .on("error", err => {
- console.trace(err);
- cb();
- })
- .on("end", () => {
- ws.close();
- cb(subFile);
- });
- }).end();
- });
- }
|