Skip to content

Instantly share code, notes, and snippets.

View johnmurch's full-sized avatar

John Murch johnmurch

View GitHub Profile
@johnmurch
johnmurch / json2csv.js
Created October 16, 2020 20:16
json2csv quick hack
const data = [
{ "name": "John", "time": new Date().toISOString(), "age": "old" },
{
"name": "Jeff", "time": new Date().toISOString(), "age": "older"
}
]
const header = Object.keys(data[0]).map(_ => JSON.stringify(_)).join(';') + '\n'
const outData = data.reduce((acc, row) => {
return acc + Object.values(row).map(_ => JSON.stringify(_)).join(';') + '\n'
@johnmurch
johnmurch / links-console.js
Created September 11, 2020 01:35
PASTE INTO CHROME CONSOLE
@johnmurch
johnmurch / isEnglish.js
Created September 11, 2020 01:31
Is URL English?
let url = "https://test.com/現役軍人轉公職-警察有哪些方法-補助5萬如何申請-4db7c0fd81b0"
const english = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?^[ -~]+$/;
if (english.test(url)) {
console.log("URL IS ENGLISH-most likely")
}
@johnmurch
johnmurch / parse.js
Created August 14, 2020 02:50
params
var myurl = "journey?reference=123&line=A&destination=China&operator=Belbo&departure=1043&vehicle=ARC";
var keyval = myurl.split('?')[1].split('&');
for(var x=0,y=keyval.length; x<y; x+=1)
console.log(keyval[x], keyval[x].split('=')[0], keyval[x].split('=')[1]);
/*
reference=123 reference 123
line=A line A
destination=China destination China
operator=Belbo operator Belbo
@johnmurch
johnmurch / keywordsFromUrl.js
Last active October 22, 2020 01:36
Parse keywords from URL
let url = "https://www.amazon.com/SanDisk-128GB-microSDXC-Memory-Adapter/dp/B073JYC4XM/";
let kwparse = (url.replace('https://','').replace('http://','').replace('www','').replace('com','').split('-').join().split('/').join().split('.')).join(',').replace(/^,/, '')
let kwuniq = [...new Set(kwparse.split(','))].filter(function(e){return e});
console.log(kwuniq)
// ["amazon", "SanDisk", "128GB", "microSDXC", "Memory", "Adapter", "dp", "B073JYC4XM"]
// Hat Tip - Find a cleaner version at https://gist.github.com/dsottimano/52060e6a43d96804f33c59366c472305
<!-- JUST ADD JS -->
<html>
<head>
<style>
/*! CSS Used from: https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700|Material+Icons */
.material-icons{font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}
/*! CSS Used from: https://www.gstatic.com/devrel-devsite/prod/v4d5d232859440be8edf63a1095b80ebe5c19605e99f3b348a30c4b0140c2eb88/cloud/css/app.css */
devsite-code{clear:both;direction:ltr!important;display:block;margin:16px 0;overflow:hidden;position:relative;}
devsite-code .devsite-code-buttons-container{position:absolute;right:0;top:0;}
devsite-code .devsite-code-buttons-container button{-webkit-box-align:center;-webkit-align-items:center;align-items:center;background:0;border:0;-webkit-border-radius
@johnmurch
johnmurch / save.js
Created May 6, 2020 04:22
console.save - Use to download an object from Google Chrome Console
(function(console){
console.save = function(data, filename){
if(!data) {
console.error('Console.save: No data')
return;
}
if(!filename) filename = 'console.json'
@johnmurch
johnmurch / headings.js
Created March 24, 2020 23:55
Puppeteer Heading tags - Snippet
const h1s = await page.evaluate(
() => [...document.querySelectorAll('h1')].map(elem => elem.innerText.trim()))
const h2s = await page.evaluate(
() => [...document.querySelectorAll('h2')].map(elem => elem.innerText.trim()))
const h3s = await page.evaluate(
() => [...document.querySelectorAll('h3')].map(elem => elem.innerText.trim()))
const h4s = await page.evaluate(
() => [...document.querySelectorAll('h4')].map(elem => elem.innerText.trim()))
const h5s = await page.evaluate(
() => [...document.querySelectorAll('h5')].map(elem => elem.innerText.trim()))
@johnmurch
johnmurch / gist-getHostname-getDomain.js
Created March 11, 2020 01:24
getHostname & getDomain -- Simple function for parsing
function getHostName(url) {
var match = url.match(/:\/\/(www[0-9]?\.)?(.[^/:]+)/i);
if (match != null && match.length > 2 && typeof match[2] === 'string' && match[2].length > 0) {
return match[2];
}
else {
return null;
}
}
@johnmurch
johnmurch / epoch2date.js
Created November 3, 2019 03:03
Convert EPOCH to Date
var utcSeconds = 1234567890;
var d = new Date(0); // The 0 there is the key, which sets the date to the epoch
d.setUTCSeconds(utcSeconds);