Scrape moderators of top 250 subreddits

🧩 Syntax:
var subs = [];
var mods = [];
var s = '';
Array.from(document.querySelectorAll('.community-list [data-prefixed-name]'))
    .slice(0, 250)
    .map(el => ({
        'sub': '/' + el.getAttribute('data-prefixed-name'),
        'subscriberCount': el.getAttribute('data-subscribers-count'),
    }))
    .map(({sub, subscriberCount}) => () => new Promise((resolve, reject) => {
        subs[sub] = {sub, subscriberCount, modNames: []};
        fetch(window.location.origin + sub + '/about/moderators.json')
            .then(res => res.json())
            .then(modsList => {
                console.log('Fetching mod list for ' + sub);
                subs[sub].modNames = modsList.data.children.map(u => '/u/' + u.name);
                setTimeout(resolve, 1000);
            })
    }))
    .reduce((chain, step) => chain.then(step), Promise.resolve())
    .then(() => {
        mods = [];
        Object.values(subs).forEach(sub => sub.modNames.forEach(modName => mods[modName] = {modName, subsModded: [], totalSubscriberCount: 0}))
        Object.values(subs).forEach(sub => sub.modNames.forEach(modName => {
            mods[modName].subsModded.push(sub.sub);
            mods[modName].totalSubscriberCount += parseInt(sub.subscriberCount);
        }));
        s = (
            Object.values(mods)
            .filter(mod => !mod.modName.match(/(auto|bot|helper)/i))
            .sort((a,b) => b.subsModded.length - a.subsModded.length)
            .slice(0, 20)
            .map(mod => (
                ' - **[' + mod.modName + '](' + 'https://old.reddit.com/' + mod.modName + '/?sort=controversial)** ' +
                'mods ' + mod.subsModded.length + '/' + Object.values(subs).length + ' subs ' + 
                'with ' + mod.totalSubscriberCount + ' total subscribers ' + 
                '(e.g. ' + mod.subsModded.slice(0, 5).map(subName => '[' + subName + '](' + 'https://old.reddit.com' + subName + ')').join(', ') + ')'
            ))
            .join('\n')
        );
        console.log(s);
        console.log('done');
    });
// and then you can copy(s) after it's done