122 lines
11 KiB
JavaScript
122 lines
11 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.cacheTags = exports.cacheUsers = exports.getForumUsers = exports._getForumUsers = exports.cacheTopics = exports.cacheCategories = exports.fileAsBuffer = void 0;
|
|
const bluebird_1 = require("bluebird");
|
|
const read_1 = require("@plastichub/fs/read");
|
|
const exists_1 = require("@plastichub/fs/exists");
|
|
const write_1 = require("@plastichub/fs/write");
|
|
const fs_1 = require("@plastichub/osr-cli-commons/fs");
|
|
const constants_1 = require("../discourse/constants");
|
|
const path = require("path");
|
|
const escapeHtml = require('escape-html');
|
|
const pretty = require('pretty');
|
|
const fileAsBuffer = (path) => (0, read_1.sync)(path, 'buffer') || Buffer.from("-");
|
|
exports.fileAsBuffer = fileAsBuffer;
|
|
const lib_1 = require("@plastichub/osr-cache/lib");
|
|
const osr_cli_commons_1 = require("@plastichub/osr-cli-commons");
|
|
const constants_2 = require("../../constants");
|
|
const cacheCategories = async (options, discourse) => {
|
|
const osr_cache = (0, osr_cli_commons_1.OSR_CACHE)();
|
|
const cPath = path.resolve((0, fs_1.resolve)(constants_1.DISCOURSE_CATEGORY_CACHE));
|
|
const cached = (0, exists_1.sync)(cPath) ? await (0, lib_1.get_cached)(cPath, {}, constants_2.MODULE_NAME) : null;
|
|
if (osr_cache && cached && options.cache !== false) {
|
|
return JSON.parse(cached);
|
|
}
|
|
let cats = await discourse.getCategories({
|
|
include_subcategories: true
|
|
});
|
|
(0, write_1.sync)(cPath, cats);
|
|
if (osr_cache && options.cache !== false) {
|
|
await (0, lib_1.set_cached)(cPath, {}, constants_2.MODULE_NAME, cats);
|
|
}
|
|
return cats;
|
|
};
|
|
exports.cacheCategories = cacheCategories;
|
|
const cacheTopics = async (options, discourse) => {
|
|
};
|
|
exports.cacheTopics = cacheTopics;
|
|
let uPage = 1;
|
|
let usersAll = [];
|
|
const _getForumUsers = async (d, page, detail) => {
|
|
const uPath = path.resolve((0, fs_1.resolve)(constants_1.DISCOURSE_USER_CACHE));
|
|
if (uPage == 1) {
|
|
usersAll = [];
|
|
}
|
|
let users = await d.getUsers(page);
|
|
if (users.length) {
|
|
usersAll = usersAll.concat(users);
|
|
uPage++;
|
|
return (0, exports._getForumUsers)(d, uPage, detail);
|
|
}
|
|
else {
|
|
uPage = 1;
|
|
(0, write_1.sync)(uPath, usersAll);
|
|
let fUsers = (0, read_1.sync)(uPath, 'json') || [];
|
|
const add = async (u) => {
|
|
return new Promise((resolve, reject) => {
|
|
let fUser = fUsers.find((fu) => u.id == fu.id);
|
|
if (!fUser) {
|
|
fUsers.push(u);
|
|
fUser = u;
|
|
}
|
|
if (fUser.detail) {
|
|
console.log('Retrieve User Detail ' + u.name);
|
|
setTimeout(() => {
|
|
d.getUser(fUser.id).then((detail) => {
|
|
if (detail) {
|
|
fUser.detail = detail;
|
|
}
|
|
(0, write_1.sync)(uPath, fUsers);
|
|
resolve(fUser);
|
|
});
|
|
}, 200);
|
|
}
|
|
else {
|
|
resolve(fUser);
|
|
}
|
|
});
|
|
};
|
|
return await bluebird_1.Promise.resolve(usersAll).map((u) => {
|
|
return add(u);
|
|
}, { concurrency: 1 });
|
|
}
|
|
};
|
|
exports._getForumUsers = _getForumUsers;
|
|
const getForumUsers = async (d, detail) => {
|
|
return (0, exports._getForumUsers)(d, uPage, detail);
|
|
};
|
|
exports.getForumUsers = getForumUsers;
|
|
const cacheUsers = async (options, discourse) => {
|
|
const osr_cache = (0, osr_cli_commons_1.OSR_CACHE)();
|
|
const uPath = path.resolve((0, fs_1.resolve)(constants_1.DISCOURSE_USER_CACHE));
|
|
const cached = (0, exists_1.sync)(uPath) ? await (0, lib_1.get_cached)(uPath, {}, constants_2.MODULE_NAME) : null;
|
|
if (osr_cache && options.cache !== false && (0, exists_1.sync)(uPath)) {
|
|
return (0, read_1.sync)(uPath, 'json');
|
|
}
|
|
if (osr_cache && cached && options.cache !== false) {
|
|
return JSON.parse(cached);
|
|
}
|
|
let users = await (0, exports.getForumUsers)(discourse, false);
|
|
(0, write_1.sync)(uPath, users);
|
|
if (osr_cache && options.cache !== false) {
|
|
await (0, lib_1.set_cached)(uPath, {}, constants_2.MODULE_NAME, users);
|
|
}
|
|
return users;
|
|
};
|
|
exports.cacheUsers = cacheUsers;
|
|
const cacheTags = async (options, discourse) => {
|
|
const osr_cache = (0, osr_cli_commons_1.OSR_CACHE)();
|
|
const tPath = path.resolve((0, fs_1.resolve)(constants_1.DISCOURSE_TAGS_CACHE));
|
|
const cached = (0, exists_1.sync)(tPath) ? await (0, lib_1.get_cached)(tPath, {}, constants_2.MODULE_NAME) : null;
|
|
if (osr_cache && cached && options.cache !== false) {
|
|
return JSON.parse(cached);
|
|
}
|
|
let tags = await discourse.getTags();
|
|
(0, write_1.sync)(tPath, tags);
|
|
if (osr_cache && options.cache !== false) {
|
|
await (0, lib_1.set_cached)(tPath, {}, constants_2.MODULE_NAME, tags);
|
|
}
|
|
return tags;
|
|
};
|
|
exports.cacheTags = cacheTags;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2Rpc2NvdXJzZS9jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1Q0FBOEM7QUFDOUMsOENBQWtEO0FBQ2xELGtEQUFzRDtBQUN0RCxnREFBb0Q7QUFDcEQsdURBQXdEO0FBcUJ4RCxzREFRK0I7QUFLL0IsNkJBQTRCO0FBTzVCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUN6QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7QUFFekIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUEsV0FBSSxFQUFDLElBQUksRUFBRSxRQUFRLENBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQW5GLFFBQUEsWUFBWSxnQkFBdUU7QUFFaEcsbURBQWtFO0FBQ2xFLGlFQUF1RDtBQUl2RCwrQ0FFd0I7QUFHakIsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLE9BQVksRUFBRSxTQUFxQixFQUFFLEVBQUU7SUFFekUsTUFBTSxTQUFTLEdBQUcsSUFBQSwyQkFBUyxHQUFFLENBQUE7SUFFN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFBLFlBQU8sRUFBQyxvQ0FBd0IsQ0FBQyxDQUFDLENBQUE7SUFFN0QsTUFBTSxNQUFNLEdBQUcsSUFBQSxhQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBQSxnQkFBVSxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsdUJBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7SUFFOUUsSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFO1FBQ2hELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENB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
|