@heknon/node-webtop
Version:
A Backend for an unofficial WebTop (SmartSchool - Israel) API.
28 lines (27 loc) • 1.56 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const cheerio_1 = require("cheerio");
const moment_1 = __importDefault(require("moment"));
const utils_1 = require("../utils");
exports.constructInbox = (html) => {
const $ = cheerio_1.load(html);
const messageItems = $('.message-item');
const inbox = [];
messageItems.each((messageNum, message$) => {
const message = {};
const date = $(message$.children[2].children[0].children[0].children[1]).text().match(/\d+/g);
const sender = $(message$.children[2].children[0].children[0].children[0]).text().match(/(\((.*?)\))|(.+(?= \())/g);
message.id = Number.parseInt(message$.children[0].children[0].children[0].attribs.value);
message.read = message$.children[1].children[0].attribs.class.includes("hidden");
message.hasAttachments = message$.children[1].children.length > 1;
message.url = message$.children[2].children[0].attribs.href;
message.subject = $(message$.children[2].children[0].children[1]).text();
message.date = moment_1.default({ year: Number.parseInt('20' + date[2]), month: Number.parseInt(date[1]), day: Number.parseInt(date[0]) });
message.sender = { name: sender[0], type: utils_1.inboxSenderTypeFromString(sender[1].replace(/\(|\)/g, '')) };
inbox.push(message);
});
return inbox;
};