UNPKG

@heknon/node-webtop

Version:

A Backend for an unofficial WebTop (SmartSchool - Israel) API.

28 lines (27 loc) 1.56 kB
"use strict"; 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; };