• Mar 11, 2021 •C S
0 likes • 0 views
require("dotenv").config(); const mongoose = require("mongoose"); const db = process.env.MONGO_URI; const connectDB = async () => { try { await mongoose.connect(db, { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: false, useCreateIndex: true }); console.log("MongoDB Connected"); } catch (err) { console.error(err.message); } }; module.exports = connectDB;
• Nov 19, 2022 •CodeCatch
0 likes • 1 view
const unzipWith = (arr, fn) => arr .reduce( (acc, val) => (val.forEach((v, i) => acc[i].push(v)), acc), Array.from({ length: Math.max(...arr.map(x => x.length)) }).map(x => []) ) .map(val => fn(...val)); unzipWith( [ [1, 10, 100], [2, 20, 200], ], (...args) => args.reduce((acc, v) => acc + v, 0) ); // [3, 30, 300]
0 likes • 2 views
const getURLParameters = url => (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce( (a, v) => ( (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1)), a ), {} );
• Oct 15, 2023 •LeifMessinger
0 likes • 7 views
//Disclaimer: I do not condone mass web scraping of ESPN websites, and this is just theoretical code that hasn't been used. //Scrape player stats off of https://www.espn.com/nfl/team/roster/_/name/phi/philadelphia-eagles //Example player JS object /* { "shortName": "S. Opeta", "name": "Sua Opeta", "href": "http://www.espn.com/nfl/player/_/id/3121009/sua-opeta", "uid": "s:20~l:28~a:3121009", "guid": "dec19157-e984-f981-3724-498281328c97", "id": "3121009", "height": "6' 4\"", "weight": "305 lbs", "age": 27, "position": "G", "jersey": "78", "birthDate": "08/15/96", "headshot": "https://a.espncdn.com/i/headshots/nfl/players/full/3121009.png", "lastName": "Sua Opeta", "experience": 4, "college": "Weber State" } */ //The page needs to be focused, so you have to put this code in a bookmarklet and click the page before clicking it. Allegedly. navigator.clipboard.writeText(JSON.stringify( window["__espnfitt__"].page.content.roster.groups.flatMap((group)=>{ return group.athletes.map((athlete)=>{ //We can assume all football players are above 100 lbs and below 1000 lbs. athlete.weight = parseInt(athlete.weight.substring(0,3)); if(athlete.experience == "R") athlete.experience = 0; else athlete.experience = parseInt(athlete.experience); //We can assume players are at least 1 foot, or under 10 feet tall. athlete.inches = 12 * parseInt(athlete.height.substring(0, 1)); //Add feet in inches athlete.inches += parseInt(athlete.height.substring(2).replaceAll("\"", "").trim()); //Add remaining inches const monthDayYear = athlete.birthDate.split("/"); athlete.birthMonth = parseInt(monthDayYear[0]); athlete.birthDay = parseInt(monthDayYear[1]); athlete.birthYear = parseInt(monthDayYear[2]); //The only really useful stuff we get from this is Height, weight, left handedness, age, position, and birthday return athlete; }); }) , null, "\t")).then(null, ()=>{alert("That failed.")}); //Changes all the team links on this page https://www.espn.com/nfl/stats/team to the team's roster for easier scraping $$("table > tbody > tr > td > div > div > a").forEach((elm)=>{ elm.setAttribute("href", elm.getAttribute("href").replace("team/", "team/roster/")); });
• Jan 26, 2023 •AustinLeath
0 likes • 6 views
function printHeap(heap, index, level) { if (index >= heap.length) { return; } console.log(" ".repeat(level) + heap[index]); printHeap(heap, 2 * index + 1, level + 1); printHeap(heap, 2 * index + 2, level + 1); } //You can call this function by passing in the heap array and the index of the root node, which is typically 0, and level = 0. let heap = [3, 8, 7, 15, 17, 30, 35, 2, 4, 5, 9]; printHeap(heap,0,0)
const countSubstrings = (str, searchValue) => { let count = 0, i = 0; while (true) { const r = str.indexOf(searchValue, i); if (r !== -1) [count, i] = [count + 1, r + 1]; else return count; } }; countSubstrings('tiktok tok tok tik tok tik', 'tik'); // 3 countSubstrings('tutut tut tut', 'tut'); // 4