• Feb 5, 2021 •LeifMessinger
0 likes • 4 views
class Timer{ start(){ this.startTime = Date.now(); } stop(){ const dt = Date.now() - this.startTime; console.log(dt); return dt; } getExecTime(fun, asynchronous){ return asynchronous ? this.getAsyncExecTime(fun) : this.getSyncExecTime(fun); } getSyncExecTime(fun){ this.start(); fun(); return this.stop(); } async getAsyncExecTime(fun){ this.start(); await fun(); return this.stop(); } static average(fun, numTimes, asynchronous = false){ const times = []; const promises = []; let timer = new Timer(); if(asynchronous){ for(let i = 0; i < numTimes; i++){ timer.getAsyncExecTime(fun); } }else{ for(let i = 0; i < numTimes; i++){ timer.getSyncExecTime(fun); } } return (times => times.reduce(((sum, acc) => sume + acc), 0) / times.length); } static async timeAsync(fun, numTimes){ if(numTimes <= 1) return new Timer().getAsyncExecTime(fun); const promises = []; let timer = new Timer(true); for(let i = 0; i < numTimes; i++){ promises.push(fun().catch((e)=>{})); } try{ await Promise.all(promises).catch((e)=>{}); }catch(e){ //do absolutely nothing } return timer.stop(); } constructor(start = false){ if(start) this.start(); } }
• Nov 19, 2022 •CodeCatch
0 likes • 2 views
const longestPalindrome = (s) => { if(s.length === 1) return s const odd = longestOddPalindrome(s) const even = longestEvenPalindrome(s) if(odd.length >= even.length) return odd if(even.length > odd.length) return even }; const longestOddPalindrome = (s) => { let longest = 0 let longestSubStr = "" for(let i = 1; i < s.length; i++) { let currentLongest = 1 let currentLongestSubStr = "" let left = i - 1 let right = i + 1 while(left >= 0 && right < s.length) { const leftLetter = s[left] const rightLetter = s[right] left-- right++ if(leftLetter === rightLetter) { currentLongest += 2 currentLongestSubStr = s.slice(left+1, right) } else break } if(currentLongest > longest) { if(currentLongestSubStr) longestSubStr = currentLongestSubStr else longestSubStr = s[i] longest = currentLongest } } return longestSubStr } const longestEvenPalindrome = (s) => { let longest = 0 let longestSubStr = "" for(let i = 0; i < s.length - 1; i++) { if(s[i] !== s[i+1]) continue; let currentLongest = 2 let currentLongestSubStr = "" let left = i - 1 let right = i + 2 while(left >= 0 && right < s.length) { const leftLetter = s[left] const rightLetter = s[right] left-- right++ if(leftLetter === rightLetter) { currentLongest += 2 currentLongestSubStr = s.slice(left+1, right) } else break } if(currentLongest > longest) { if(currentLongestSubStr) longestSubStr = currentLongestSubStr else longestSubStr = s[i] + s[i+1] longest = currentLongest } } return longestSubStr } console.log(longestPalindrome("babad"))
• Mar 28, 2023 •Helper
0 likes • 3 views
const Discord = require('discord.js'); const client = new Discord.Client(); const token = 'YOUR_BOT_TOKEN'; // When the bot is ready, log a message to the console client.on('ready', () => { console.log(`Logged in as ${client.user.tag}!`); }); // When a user sends a message, check if they are authenticated client.on('message', async (msg) => { if (!msg.author.bot && !msg.author.authenticated) { const filter = (m) => m.author.id === msg.author.id; const collector = msg.channel.createMessageCollector(filter, { time: 15000 }); // Send an authentication message to the user msg.author.send('Please authenticate yourself by clicking this link: ' + generateAuthURL(msg.author.id)); collector.on('collect', async (m) => { // Check if the message contains the authentication code if (m.content.startsWith('!auth ')) { const code = m.content.slice(6); const { access_token } = await getAccessToken(code); // Set the user's authenticated status and access token msg.author.authenticated = true; msg.author.access_token = access_token; collector.stop(); } }); collector.on('end', () => { if (!msg.author.authenticated) { msg.author.send('Authentication timed out.'); } }); } }); // Generate an authentication URL for the user function generateAuthURL(userId) { const redirectURI = encodeURIComponent('YOUR_REDIRECT_URL'); const scopes = 'identify'; const clientID = 'YOUR_CLIENT_ID'; return `https://discord.com/api/oauth2/authorize?client_id=${clientID}&redirect_uri=${redirectURI}&response_type=code&scope=${scopes}&state=${userId}`; } // Exchange the authorization code for an access token async function getAccessToken(code) { const redirectURI = encodeURIComponent('YOUR_REDIRECT_URL'); const clientID = 'YOUR_CLIENT_ID'; const clientSecret = 'YOUR_CLIENT_SECRET'; const res = await fetch('https://discord.com/api/oauth2/token', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: `grant_type=authorization_code&code=${code}&redirect_uri=${redirectURI}&client_id=${clientID}&client_secret=${clientSecret}`, }); return await res.json(); } client.login(token);
• Jul 13, 2025 •West
const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) })
// `arr` is an array const clone = arr => arr.slice(0); // Or const clone = arr => [...arr]; // Or const clone = arr => Array.from(arr); // Or const clone = arr => arr.map(x => x); // Or const clone = arr => JSON.parse(JSON.stringify(arr)); // Or const clone = arr => arr.concat([]);
• Mar 11, 2021 •C S
0 likes • 7 views
router.post("/", async (req, res) => { const { email, password } = req.body; try { if (!email) return res.status(400).json({ msg: "An email is required" }); if (!password) return res.status(400).json({ msg: "A password is required" }); const user = await User.findOne({ email }).select("_id password"); if (!user) return res.status(400).json({ msg: "Invalid credentials" }); const match = await bcrypt.compare(password, user.password); if (!match) return res.status(400).json({ msg: "Invalid credentials" }); const accessToken = genAccessToken({ id: user._id }); const refreshToken = genRefreshToken({ id: user._id }); res.cookie("token", refreshToken, { expires: new Date(Date.now() + 604800), httpOnly: true, }); res.json({ accessToken }); } catch (err) { console.log(err.message); res.status(500).json({ msg: "Error logging in user" }); } });