node-webplay
Version:
A nodejs streaming server implementation
132 lines (89 loc) • 3.71 kB
JavaScript
;
var _express = require("express");
var _express2 = _interopRequireDefault(_express);
var _server = require("../uploader/server.js");
var _server2 = _interopRequireDefault(_server);
var _procman = require("../processor/procman.js");
var _procman2 = _interopRequireDefault(_procman);
var _path = require("path");
var _path2 = _interopRequireDefault(_path);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function optval(name, def) {
if (null == process.env[name]) {
return def;
}
return process.env[name];
}
var status_man_use = optval("NODEPLAYSTATUSMAN", "../processor/statmanfs.js");
var processor_use = optval("NODEPLAYPROCESSOR", "../processor/index.js");
var def_owner = optval("NODEPLAYDEFOWNER", "uploader");
var port = optval("NODEPLAYPORT", 3000);
var statusman = new _procman2.default({ statusman: status_man_use, processor: processor_use });
_express2.default.static.mime.define({ "application/dash+xml": ["mpd"] });
var app = (0, _express2.default)();
var env_path = process.env.PATH;
var rootdir = _path2.default.normalize(_path2.default.join(__dirname, "../.."));
var dirname = _path2.default.normalize(_path2.default.join(rootdir, "./bin"));
var distdir = _path2.default.normalize(_path2.default.join(rootdir, "./dist"));
process.env.PATH = dirname + _path2.default.delimiter + env_path;
/*
console.log("PATH: ", dirname, " ", env_path);
console.log("---------------------");
console.log(process.env.PATH);
console.log("---------------------");
*/
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
app.use("/play", _express2.default.static(rootdir));
app.use("/upload", (0, _server2.default)());
app.get("/clientaccesspolicy.xml", function (req, res) {
var clientaccesspolicy = "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \n<access-policy>\n<cross-domain-access>\n<policy>\n<allow-from http-methods=\"*\" http-request-headers=\"*\">\n<domain uri=\"http://*\" /> \n</allow-from>\n<grant-to>\n<resource path=\"/\" include-subpaths=\"true\" /> \n</grant-to>\n</policy>\n</cross-domain-access>\n</access-policy>\n";
res.send(clientaccesspolicy);
});
app.get("/api/list", function (req, res, next) {
statusman.list(def_owner).then(function (list) {
res.json(list);
}, function (err) {
next(err);
});
});
app.get("/api/status/:id", function (req, res, next) {
var id = req.params.id;
statusman.status(def_owner, id).then(function (stat) {
res.json(stat);
}, function (err) {
next(err);
});
});
app.get("/api/upload/:name", function (req, res, next) {
var name = req.params.name;
statusman.reserve_name(def_owner, name).then(function (id) {
return res.json({ id: id });
}, function (err) {
return next(err);
});
});
app.put("/upload/:id?", function (req, res) {
console.log("-------------****");
//console.log(JSON.stringify(req.headers));
console.log(req.uploader);
console.log("-------------**--");
var id = req.params.id;
if (null != id) {
statusman.queue_job(def_owner, id //, path.basename(req.uploader)
, req.uploader).then(function () {}, function (err) {
console.log("QYE", err.toString());
statusman.record_error(def_owner, id, err, "QUEUE JOB ERROR");
});
}
res.send("OK");
});
app.use(_express2.default.static(distdir));
app.listen(port, function () {
console.log("app listening on port " + port + "!");
});
//# sourceMappingURL=index.js.map