123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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 => {
- notify("Error finding subtitles", err.toString());
- console.trace(err);
- cb();
- })
- .on("end", () => {
- ws.close();
- setTimeout(() => cb(subFile), 500);
- });
- }).end();
- });
- }
|