UNPKG

@fcc-cdc/it-events

Version:
206 lines (205 loc) 10.3 kB
"use strict"; var __asyncValues = (this && this.__asyncValues) || function (o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } }; var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.OSChina = exports.BaiGe = exports.JueJin = exports.SegmentFault = exports.HuoDongXing = void 0; const jsdom_1 = require("jsdom"); const node_fetch_1 = __importDefault(require("node-fetch")); const utility_1 = require("./utility"); function HuoDongXing(all) { return __asyncGenerator(this, arguments, function* HuoDongXing_1() { var _a, e_1, _b, _c; for (let page = 1, empty = true;; page++) { const URL = 'https://www.huodongxing.com/eventlist?' + new URLSearchParams({ orderby: 'n', status: all ? '' : '1', tag: 'IT互联网', city: '全部', page: page + '' }); try { for (var _d = true, _e = (e_1 = void 0, __asyncValues((0, utility_1.eventList)(URL, '.search-tab-content-list .search-tab-content-item', '.item-title', '.item-data', '.item-dress', '.item-logo', '.item-title'))), _f; _f = yield __await(_e.next()), _a = _f.done, !_a;) { _c = _f.value; _d = false; try { const item = _c; empty = false; const [start, end] = item.start.split('-'); yield yield __await(Object.assign(Object.assign({}, item), { start: (0, utility_1.makeDate)(start), end: (0, utility_1.makeDate)(end) })); } finally { _d = true; } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (!_d && !_a && (_b = _e.return)) yield __await(_b.call(_e)); } finally { if (e_1) throw e_1.error; } } if (empty) break; } }); } exports.HuoDongXing = HuoDongXing; function SegmentFault(all) { return __asyncGenerator(this, arguments, function* SegmentFault_1() { var _a, e_2, _b, _c; for (let page = 1, empty = true;; page++) { const URL = 'https://segmentfault.com/events?page=' + page, now = new Date(); try { for (var _d = true, _e = (e_2 = void 0, __asyncValues((0, utility_1.eventList)(URL, '.all-event-list .widget-event', '.title', '.widget-event__meta > :first-child', '.widget-event__meta > :last-child', '.widget-event__banner', '.title > a'))), _f; _f = yield __await(_e.next()), _a = _f.done, !_a;) { _c = _f.value; _d = false; try { const item = _c; empty = false; const start = (0, utility_1.makeDate)(item.start.slice(3)); if (!all && now > start) return yield __await(void 0); yield yield __await(Object.assign(Object.assign({}, item), { start, end: null, address: item.address.slice(3) })); } finally { _d = true; } } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (!_d && !_a && (_b = _e.return)) yield __await(_b.call(_e)); } finally { if (e_2) throw e_2.error; } } if (empty) break; } }); } exports.SegmentFault = SegmentFault; function JueJin(all) { return __asyncGenerator(this, arguments, function* JueJin_1() { for (let page = 1;; page++) { const URI = 'https://event-storage-api-ms.juejin.im/v2/getEventList?' + new URLSearchParams({ src: 'web', orderType: 'startTime', pageNum: page + '' }), now = new Date(); const { d: list } = yield __await((yield __await((0, node_fetch_1.default)(URI))).json()); if (!(list === null || list === void 0 ? void 0 : list[0])) break; console.warn(URI); for (const { title, eventUrl, tagInfo, content, startTime, endTime, city, screenshot } of list) { const start = (0, utility_1.makeDate)(startTime), end = (0, utility_1.makeDate)(endTime); if (!all && now > start) return yield __await(void 0); yield yield __await({ title, start, end, address: city, tags: tagInfo.map(({ title }) => title), summary: content, link: new URL(eventUrl), banner: new URL(screenshot) }); } } }); } exports.JueJin = JueJin; function BaiGe(all) { return __asyncGenerator(this, arguments, function* BaiGe_1() { const { window: { document: { head } } } = yield __await(jsdom_1.JSDOM.fromURL('https://www.bagevent.com/eventlist.html?f=1&tag=17&r=orderByNew')); const { paramMap, imgDomain, mainDomain } = new Function(`${[ ...head.querySelectorAll('script:not(:empty)') ].find(code => /var param = \{[\s\S]+\}/.test(code.text)).text} return param;`)(); for (let page = 1;; page++) { paramMap.pagingPage = page; const URI = `${mainDomain}/load/loadSearchEventList.do?${new URLSearchParams(paramMap)}`, now = new Date(); const { list } = (yield __await((yield __await((0, node_fetch_1.default)(URI))).json())).resultObject.valueList; if (!(list === null || list === void 0 ? void 0 : list[0])) break; console.warn(URI); for (const { event_name, start_time, address, logo, event_id } of list) { const start = (0, utility_1.makeDate)(start_time); if (!all && now > start) return yield __await(void 0); yield yield __await({ title: event_name, start, address, banner: imgDomain + logo, link: new URL(mainDomain + '/event/' + event_id) }); } } }); } exports.BaiGe = BaiGe; function OSChina(all) { return __asyncGenerator(this, arguments, function* OSChina_1() { var _a, e_3, _b, _c; for (let page = 1, empty = true;; page++) { const body = new URLSearchParams({ tab: 'latest', time: 'all', p: page + '' }), URL = 'https://www.oschina.net/action/ajax/get_more_event_list', now = new Date(); const data = yield __await((yield __await((0, node_fetch_1.default)(URL, { method: 'POST', body }))).text()); try { for (var _d = true, _e = (e_3 = void 0, __asyncValues((0, utility_1.eventList)(new jsdom_1.JSDOM(data, { url: URL + '?' + body }), '.event-item', '.summary', '.when-where > label:first-of-type', '.when-where > label:last-of-type', '.item-banner img', '.item-banner > a'))), _f; _f = yield __await(_e.next()), _a = _f.done, !_a;) { _c = _f.value; _d = false; try { const item = _c; empty = false; const start = (0, utility_1.makeDate)(item.start); if (!all && now > start) return yield __await(void 0); yield yield __await(Object.assign(Object.assign({}, item), { start, end: null })); } finally { _d = true; } } } catch (e_3_1) { e_3 = { error: e_3_1 }; } finally { try { if (!_d && !_a && (_b = _e.return)) yield __await(_b.call(_e)); } finally { if (e_3) throw e_3.error; } } if (empty) break; } }); } exports.OSChina = OSChina;