mirror of
https://github.com/oceanprotocol/community-numbers.git
synced 2024-09-28 03:58:40 +02:00
44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
import chrome from 'chrome-aws-lambda'
|
|
import { log } from '../utils'
|
|
|
|
const isDev = process.env.VERCEL_URL === undefined
|
|
const puppeteer = isDev ? require('puppeteer') : require('puppeteer-core')
|
|
|
|
export default async function fetchDiscord() {
|
|
const url = 'https://discord.com/invite/TnXjkR5'
|
|
const start = Date.now()
|
|
|
|
const config = {
|
|
ignoreHTTPSErrors: true,
|
|
...(isDev
|
|
? { headless: true }
|
|
: {
|
|
args: chrome.args,
|
|
executablePath: await chrome.executablePath,
|
|
headless: chrome.headless
|
|
})
|
|
}
|
|
|
|
const browser = await puppeteer.launch(config)
|
|
const page = await browser.newPage()
|
|
await page.goto(url)
|
|
|
|
const members = await page.evaluate(() => {
|
|
// get the activity count element
|
|
const membersElement = document.querySelector(
|
|
'[class*="activityCount"] > div:last-child span'
|
|
)
|
|
const membersElementText = membersElement.innerText
|
|
const number = membersElementText.replace(' Members', '')
|
|
return parseInt(number)
|
|
})
|
|
|
|
log(
|
|
'✓ Discord. ' +
|
|
`Total: ${members} members. ` +
|
|
`Elapsed: ${new Date() - start}ms`
|
|
)
|
|
|
|
return { members }
|
|
}
|