Skip to content

Instantly share code, notes, and snippets.

View joelgriffith's full-sized avatar
💻
Turns out I'm really good at computers

Joel Griffith joelgriffith

💻
Turns out I'm really good at computers
View GitHub Profile
{
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/70.0.3508.0 Safari/537.36",
"lighthouseVersion": "3.0.3",
"fetchTime": "2018-09-06T16:55:02.940Z",
"requestedUrl": "https://www.chromestatus.com/features",
"finalUrl": "https://www.chromestatus.com/features",
"runWarnings": [],
"audits": {
"is-on-https": {
"id": "is-on-https",
@joelgriffith
joelgriffith / big-screenshot.js
Created February 23, 2018 00:07
Large Puppeteer Images
const puppeteer = require('puppeteer');
const merge = require('merge-img');
const pageUrl = ''; // REPLACE ME
const pageElement = '#svgcanvas'; // REPLACE ME
(async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(pageUrl);
@joelgriffith
joelgriffith / browserless-unfurl.js
Last active November 22, 2020 14:41
Unfurls a link into semantic data
import puppeteer from 'puppeteer';
function getTitle() {
if (document.querySelector('meta[property="og:title"]')) {
return document.querySelector('meta[property="og:title"]').content;
}
if (document.querySelector('[itemprop="name"]')) {
return document.querySelector('[itemprop="name"]').text;
}
if (document.querySelector('title')) {
@joelgriffith
joelgriffith / get-image.js
Last active January 15, 2018 23:47
Get site image
async function getImage(page) {
if (document.querySelector('meta[property="og:image"]')) {
return document.querySelector('meta[property="og:image"]').content;
}
if (document.querySelector('[itemprop="image"]')) {
return document.querySelector('[itemprop="image"]').text;
}
// Return null so we can handle it later
return null;
}
@joelgriffith
joelgriffith / browserless-cnn-title.js
Created January 15, 2018 23:35
Get the title from CNN
const puppeteer = require('puppeteer');
function getTitle() {
if (document.querySelector('meta[property="og:title"]')) {
return document.querySelector('meta[property="og:title"]').content;
}
if (document.querySelector('[itemprop="name"]')) {
return document.querySelector('[itemprop="name"]').text;
}
if (document.querySelector('title')) {
@joelgriffith
joelgriffith / description.js
Created January 15, 2018 23:16
Get's a site description
function getDescription() {
if (document.querySelector('meta[property="og:description"]')) {
return document.querySelector('meta[property="og:description"]').content;
}
if (document.querySelector('[itemprop="description"]')) {
return document.querySelector('[itemprop="description"]').text;
}
if (document.querySelector('meta[name="description"]')) {
@joelgriffith
joelgriffith / title.js
Last active January 15, 2018 23:17
Find website titles (title, OpenGraph, schema.org)
function getTitle() {
if (document.querySelector('meta[property="og:title"]')) {
return document.querySelector('meta[property="og:title"]').content;
}
if (document.querySelector('[itemprop="name"]')) {
return document.querySelector('[itemprop="name"]').text;
}
if (document.querySelector('title')) {
@joelgriffith
joelgriffith / headless-libraries.js
Last active September 20, 2017 04:03
Compares headless libraries
// Puppeteer
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'example.png'});
await browser.close();
const { Chrome } = require('navalia');
const chrome = new Chrome();
chrome
.goto('https://www.google.com/', { pageload: false })
.evaluate(() => 'INSERT YOUR SCRIPT HERE')
// More stuff
.then((results) => {
console.log(results);
@joelgriffith
joelgriffith / jest-image-snapshot-setup.js
Created July 20, 2017 15:29
Setting up jest-image-snapshot
import { toMatchImageSnapshot } from 'jest-image-snapshot';
expect.extend({ toMatchImageSnapshot });