"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convert = exports.getImageName = exports.sanitize = void 0; const _sanitize = require("sanitize-filename"); const URI = require("uri-js"); const path = require("path"); const filenamify = require('filenamify'); var TurndownService = require('turndown'); const sanitize = (f) => { let str = filenamify(_sanitize(f)).replace(/[^\x00-\x7F]/g, ""); if (str.startsWith('_')) { str = str.substring(1); } return str; }; exports.sanitize = sanitize; const getImageName = (url) => { const parsed = URI.parse(decodeURIComponent(url)); const pParsed = path.parse(parsed.path); const fileName = (0, exports.sanitize)(decodeURIComponent(pParsed.base)); return fileName; }; exports.getImageName = getImageName; const convert = (input) => { var turndownService = new TurndownService(); return turndownService.turndown(input); }; exports.convert = convert; /* const getFUser = (users, user_name) => { return users.find((u) => { return u.name == user_name }) } const indexUsers = async (d, forum: string, detail) => { const forumUsers = await getForumUsers(d, detail) const raw = (read(path.resolve(forum + '/index.json'), 'json') as any) const users_raw = raw.users let users = [] for (let u in users_raw) { const user = users_raw[u]; const avatar = getOAvatar(raw, u); let aFileName = ''; let fUser = getFUser(forumUsers, u); if (avatar) { const parsed = URI.parse(avatar); const pParsed = path.parse(parsed.path); aFileName = pParsed.base; } users.push({ name: u, avatar: avatar, avatarFileName: aFileName, user_id: fUser ? fUser.id : -1 }); } write(path.resolve(forum + '/user.json'), users); } const _createUser = async (discorse, forum, name, email) => { const users = getUsers() const index = users.findIndex((u) => u.detail.name == name) let user = await createUser(discorse, null) if (user && users[index].upload_id) { await discorse.setUserAvatar(name, users[index].upload_id); //return users; } if (user > 0 && index) { users[index].f_id = user; console.log('created ' + name + ' ' + user); write(getUsersPath(), users); } else { console.error('cant create user - error', name, user) } } const _updateGroup = async (discorse, forum, name, id, forumUsers) => { const users = (read(path.resolve(forum + '/user.json'), 'json') as any); const index = users.findIndex((u) => u.name == name); try { const d = await discorse.updateGroup(name, pUserGroup); console.log('updated user group for ' + name); users[index].g_id = pUserGroup; write(path.resolve(forum + '/user.json'), users); if (users[index].upload_id) { //await discorse.setUserAvatar(name, users[index].upload_id); } } catch (e) { if (e.data && e.data.status == 422) { users[index].g_id = pUserGroup; write(path.resolve(forum + '/user.json'), users); console.log('updated user group for ' + name); } } } const _updateAvatar = async (discorse, forum, name) => { const users = (read(path.resolve(forum + '/user.json'), 'json') as any); const index = users.findIndex((u) => u.name == name); return new Promise((resolve, reject) => { try { setTimeout(() => { discorse.setUserAvatar(name, users[index].upload_id).then(() => { console.log('updated avatar for ' + name); users[index].avatarSet = true; write(path.resolve(forum + '/user.json'), users); resolve(1); }); }, 200); } catch (e) { console.error('-error setting avatar', e); debugger; } }); } const createUsers = async (d, forum) => { const forumUsers = await getForumUsers(d, true) const users = (read(path.resolve(forum + '/user.json'), 'json') as any); const toBeCreated = users.filter((u) => { if (u.f_id || u.f_id < 0) { return false; } if (u.name === 'plastichub' || u.name === 'lu' || u.name === 'timberstar' || u.name === 'nickname') { return false } return true; }); console.log('Create Users ' + users.length + ' Total | Left: ' + toBeCreated.length); return await BPromise.resolve(toBeCreated).map((u: any) => { const t = _createUser(d, forum, u.name, u.email); return t; }, { concurrency: 1 }) } const updateUserGroups = async (forum) => { const forumUsers = (read(path.resolve(forum + '/fusers.json'), 'json') as any); const users = (read(path.resolve(forum + '/user.json'), 'json') as any); const toBeUpdated = users.filter((u) => { if (u.g_id) { return false; } if (u.name === 'plastichub' || u.name === 'lu' || u.name === 'timberstar' || u.name === 'nickname') { return false } return true; }); const d = getDiscourse(); console.log('Update Users ' + users.length + ' Total | Left: ' + toBeUpdated.length); return await BPromise.resolve(toBeUpdated).map((u: any) => { const t = _updateGroup(d, forum, u.name, u.f_id, forumUsers); return t; }, { concurrency: 1 }) } const updateUserAvatars = async (forum) => { const users = (read(path.resolve(forum + '/user.json'), 'json') as any); const toBeUpdated = users.filter((u) => { if (!u.upload_id) { return false; } if (u.avatarSet) { return false; } if (u.name === 'plastichub' || u.name === 'lu' || u.name === 'timberstar' || u.name === 'nickname') { return false } return true; }); const d = getDiscourse(); console.log('Update User Avatar ' + users.length + ' Total | Left: ' + toBeUpdated.length); return await BPromise.resolve(toBeUpdated).map((u: any) => { const t = _updateAvatar(d, forum, u.name); return t; }, { concurrency: 1 }) } */ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9vYS9saWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUE7QUFDOUMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQzdCLDZCQUE0QjtBQUM1QixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7QUFDeEMsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ25DLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDMUIsSUFBSSxHQUFHLEdBQVcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEUsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3JCLEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ3pCO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDZCxDQUFDLENBQUE7QUFOWSxRQUFBLFFBQVEsWUFNcEI7QUFHTSxNQUFNLFlBQVksR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFBLGdCQUFRLEVBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDM0QsT0FBTyxRQUFRLENBQUE7QUFDbkIsQ0FBQyxDQUFBO0FBTFksUUFBQSxZQUFZLGdCQUt4QjtBQUVNLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDeEMsSUFBSSxlQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtJQUMzQyxPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFBO0FBSFksUUFBQSxPQUFPLFdBR25CO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBdUtFIn0=