const crypto = require('crypto'); const cheerio = require('cheerio'); const {defaultPermissions} = require('../util/default.json'); const Wiki = require('../util/wiki.js'); const allLangs = require('./i18n.js').allLangs().names; const {got, settingsData, sendMsg, createNotice, hasPerm} = require('./util.js'); const DiscordOauth2 = require('discord-oauth2'); const oauth = new DiscordOauth2( { clientId: process.env.bot, clientSecret: process.env.secret, redirectUri: process.env.dashboard } ); const file = require('fs').readFileSync('./dashboard/login.html'); /** * Let a user login * @param {import('http').ServerResponse} res - The server response * @param {import('./i18n.js')} dashboardLang - The user language. * @param {String} [state] - The user state * @param {String} [action] - The action the user made */ function dashboard_login(res, dashboardLang, state, action) { if ( state && settingsData.has(state) ) { if ( !action ) { res.writeHead(302, {Location: '/'}); return res.end(); } settingsData.delete(state); } var $ = cheerio.load(file); $('html').attr('lang', dashboardLang.lang); $('