mythtv-event-emitter
Version:
Event Emitter for MythTV system events.
53 lines • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.scrubPayload = exports.router = void 0;
const express_1 = require("express");
const events_1 = require("./events");
const messages_1 = require("./messages");
const bodyParser = require("body-parser");
const moment = require("moment");
exports.router = express_1.Router();
exports.router.use(bodyParser.json())
.put('/', (req, res) => {
const payload = scrubPayload(req.body);
res.end(() => {
events_1.notifyEvent(payload.EVENTNAME, payload.HOSTNAME || payload.SENDER, payload);
});
});
const utcDateFields = messages_1.dateFields.map(field => {
return field + 'UTC';
});
const isoFields = messages_1.dateFields.map(field => {
return field + 'ISO';
});
const isoUtcFields = isoFields.map(field => {
return field + 'UTC';
});
const mythDateFormat = 'YYYYMMDDHHmmss';
function scrubPayload(message) {
Object.keys(message).forEach((key) => {
const value = message[key];
if (key != 'SENDER' && key != 'EVENTNAME') {
if (value && ('%' + key + '%' == value || value.trim() == "")) {
message[key] = undefined;
}
else {
if (isoFields.includes(key) || isoUtcFields.includes(key)) {
message[key] = new Date(value);
}
else if (messages_1.dateFields.includes(key)) {
message[key] = moment(value, mythDateFormat).toDate();
}
else if (utcDateFields.includes(key)) {
message[key] = moment.utc(value, mythDateFormat).toDate();
}
else if (key == 'ORIGINALAIRDATE') {
message[key] = moment(value, 'YYYY-MM-DD').toDate();
}
}
}
});
return message;
}
exports.scrubPayload = scrubPayload;
//# sourceMappingURL=router.js.map