Skip to content

Instantly share code, notes, and snippets.

@nickadam
Created December 9, 2021 18:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nickadam/9b17a10d588848b95701ab8c9298c740 to your computer and use it in GitHub Desktop.
Save nickadam/9b17a10d588848b95701ab8c9298c740 to your computer and use it in GitHub Desktop.
Login to google workspace and check if links in csv are accessible
'use strict'
const fs = require('fs')
const puppeteer = require('puppeteer')
const parse = require('csv-parse')
const import_csv = file => {
return new Promise((resolve, reject) => {
const parser = parse({}, (err , data) => {
if(err) return reject(err)
const entries = []
const header = data[0]
for(let i = 1; i < data.length; ++i){
let r = data[i]
let object = {}
for(var n = 0; n < r.length; ++n){
object[header[n]] = r[n]
}
entries.push(object)
}
resolve(entries)
})
const input = fs.createReadStream(file)
input.pipe(parser)
})
}
(async () => {
const browser = await puppeteer.launch({
//args: ['--no-sandbox', '--disable-setuid-sandbox'],
headless: false,
})
const page = await browser.newPage()
await page.goto('https://drive.google.com/a/hcpss.org')
await page.waitForSelector('#accountstatussubmit')
await page.type('#username', '')
await page.type('#password', '')
await page.click('#accountstatussubmit')
await page.waitForSelector('#drive_hist_frame')
import_csv('unique_google_urls.csv').then(async rows => {
for(const row of rows){
const url = row.old_google_url
await page.goto(url, { waitUntil: 'domcontentloaded' })
let button = (await page.$('#request-access-button')) || '';
if(button){
console.log(url + ' bad')
}else{
const title = await page.title()
if(title == 'Error 404 (Not Found)!!1'){
console.log(url + ' missing')
}else{
console.log(url + ' good')
}
}
}
})
await browser.close()
})()
@nickadam
Copy link
Author

nickadam commented Dec 9, 2021

Works with old version of csv-parse

{
  "dependencies": {
    "csv-parse": "^2.5.0",
    "puppeteer": "^12.0.1"
  }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment