diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index a3d6f74..852b936 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -27,7 +27,6 @@ jobs: - name: Codecov uses: codecov/codecov-action@v2.1.0 analyze: - name: Analyze needs: build runs-on: ubuntu-latest permissions: @@ -49,3 +48,8 @@ jobs: uses: github/codeql-action/autobuild@v1 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 + deploy: + needs: analyze + runs-on: ubuntu-latest + steps: + - run: npm run deploy diff --git a/.gitignore b/.gitignore index 53822f2..3a0fc09 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ nerdwallet/* wikipedia/*.css dist/ coverage/ +deploy diff --git a/bitbucket/execution-times.user.js b/bitbucket/execution-times.user.js new file mode 100644 index 0000000..09bd6f6 --- /dev/null +++ b/bitbucket/execution-times.user.js @@ -0,0 +1,44 @@ +// ==UserScript== +// @name Get Test Execution Times +// @namespace http://tampermonkey.net/ +// @version 0.1 +// @description Make a table of test execution times +// @author Josh Parker +// @match https://bitbucket-pipelines.prod.public.atl-paas.net/Pipelines/home +// @icon https://www.google.com/s2/favicons?sz=64&domain=bitbucket.org +// @grant none +// ==/UserScript== + +(function testExecutionTimes() { + const parser = new DOMParser(); + + const nextSelector = 'button[aria-label=Next]'; + + const pages = [document]; + let { href } = window.location; + + const getNext = function getNext(next) { + return new Promise((resolve, reject) => { + if (!next || next.disabled) { + resolve(); + } + + const match = href.match(/(.*)\/(\d+)$/); + + // eslint-disable-next-line no-unused-vars + const [_, url, page] = match; + href = `${url}${Number(page) + 1}`; + fetch(href) + .then((r) => r.text()) + .then((text) => parser.parseFromString(text, 'text/html')) + .then((dom) => { + pages.push(dom); + resolve(dom.querySelector(nextSelector)); + }) + .catch(() => reject()); + }) + .then((n) => n && getNext(n)); + }; + + getNext(document.querySelector(nextSelector)); +}()); diff --git a/bundle-build.js b/bundle-build.js index d43c2f3..94c9960 100644 --- a/bundle-build.js +++ b/bundle-build.js @@ -13,6 +13,7 @@ glob(buildPattern) const entryFile = files[i]; const outputFile = entryFile.replace('user.js', 'bundle.user.js'); const distFile = `./dist${outputFile.slice(1)}`; + const metaFile = distFile.replace('user.js', 'meta.js'); console.log(entryFile); console.log(outputFile); console.log(distFile); @@ -57,7 +58,13 @@ glob(buildPattern) if (writeDistFileErr) { console.error(writeDistFileErr); } else { - bundle(i + 1); + writeFile(metaFile, userscriptHeader, (writeMetaFileErr) => { + if (writeMetaFileErr) { + console.error(writeMetaFileErr); + } else { + bundle(i + 1); + } + }); } }); } diff --git a/bundle-deploy.js b/bundle-deploy.js new file mode 100644 index 0000000..fc9e1a4 --- /dev/null +++ b/bundle-deploy.js @@ -0,0 +1,51 @@ +const { Octokit } = require('@octokit/core'); +const { createActionAuth } = require('@octokit/auth-action'); +const globber = require('glob'); +const { readFile } = require('fs'); + +const pattern = './@(dist)/**/*.@(user|meta).js'; + +const glob = (globPattern) => (new Promise((r) => { globber(globPattern, (_, s) => r(s)); })); + +const octokit = new Octokit({ + authStrategy: createActionAuth, +}); + +glob(pattern) + .then((files) => { + const upload = function upload(i = 0) { + if (i < files.length) { + const file = files[i]; + readFile(file, (err, contentBuffer) => { + if (err) { + console.error(err); + } else { + const content = contentBuffer.toString(); + const gistId = content.match(/downloadURL.*joshparkerj\/([^/]*)/)[1]; + const description = content.match(/description\s+(.*)/)[1]; + const filename = file.includes('meta') ? content.match(/updateURL.*raw\/[^/]+\/([^/]*)/)[1] : content.match(/downloadURL.*raw\/[^/]+\/([^/]*)/)[1]; + + console.log(content); + console.log(gistId); + console.log(description); + console.log(filename); + octokit.request(`PATCH /gists/${gistId}`, { + gist_id: gistId, + description, + files: { + [filename]: { + filename, + content, + }, + }, + }) + .then(() => { + upload(i + 1); + }); + } + }); + } + }; + + upload(); + }); diff --git a/codecademy/posers-solved-with-code.js b/codecademy/posers-solved-with-code.js index 29a3fc8..cf71966 100644 --- a/codecademy/posers-solved-with-code.js +++ b/codecademy/posers-solved-with-code.js @@ -5,6 +5,9 @@ // Each of the 3 players loses 1 game and at the conclusion of the 3 games each man has $16. // How much money did each man start with? +// seems like a bit of a nonsense game. +// What if a player doesn't have enough to double the others' money? + const reverseSimGame = (loserOfEachRound, finalDistributionOfCash) => ( loserOfEachRound diff --git a/elevator-saga/challenge-1.js b/elevator-saga/challenge-1.js new file mode 100644 index 0000000..ff00083 --- /dev/null +++ b/elevator-saga/challenge-1.js @@ -0,0 +1,149 @@ +/* eslint-disable no-param-reassign */ +const challenge = { + init: (elevators, floors) => { + const elevatorQueue = []; + + const setIndicator = { + up: (e) => { e.goingUpIndicator(true); e.goingDownIndicator(false); }, + down: (e) => { e.goingUpIndicator(false); e.goingDownIndicator(true); }, + }; + + const floorButton = (floorNum) => { + const floor = floors.find(({ level }) => level === floorNum); + const { buttonStates: { up, down } } = floor; + if (up.length) { + return 'up'; + } + + if (down.length) { + return 'down'; + } + + return null; + }; + + const go = (elevator, n) => { + const currentFloor = elevator.currentFloor(); + const button = floorButton(n); + if (button) setIndicator[button](elevator); + else if (n < currentFloor) setIndicator.down(elevator); + else if (n > currentFloor) setIndicator.up(elevator); + + elevator.goToFloor(n); + + elevator.destinationQueue = [...(new Set(elevator.destinationQueue))] + .sort((a, b) => (elevator.goingUpIndicator() ? a - b : b - a)); + + elevator.checkDestinationQueue(); + }; + + const isFull = (e) => Math.round(e.maxPassengerCount() * (1 - e.loadFactor())) <= 1; + + const handleFull = (e) => { + if (isFull(e)) { + e.destinationQueue = []; + console.log(e.getPressedFloors()); + e.getPressedFloors().forEach((n) => go(e, n)); + + return true; + } + + return false; + }; + + const serve = (elevator, dir, comp, sorter) => { + const filteredFloors = floors + .filter(({ level }) => ( + comp(level, elevator.currentFloor()) + && (floorButton(level) === dir))) + .sort(sorter); + + if (filteredFloors.length) { + filteredFloors.forEach(({ level }) => go(elevator, level)); + + return true; + } + + return false; + }; + + const nextPickup = (e) => { + const floorNum = e.currentFloor(); + const dist = (n) => Math.abs(floorNum - n); + const filteredFloors = floors + .filter(({ level }) => floorButton(level)) + .sort(({ level: a }, { level: b }) => dist(a) - dist(b)); + + if (filteredFloors.length === 0) { + return () => false; + } + + const { level } = filteredFloors[0]; + const button = floorButton(level); + + if (level > floorNum) { + return (elevator) => serve( + elevator, + button, + (l, f) => l >= f, + ({ level: a }, { level: b }) => (button === 'up' ? a - b : b - a), + ); + } + + return (elevator) => serve( + elevator, + button, + (l, f) => l <= f, + ({ level: a }, { level: b }) => (button === 'up' ? a - b : b - a), + ); + }; + + if (elevators.length > 1) { + elevators.forEach((elevator, i) => { + const maxFloor = Math.max(...floors.map(({ level }) => level)); + elevator.goToFloor(Math.round(maxFloor * (i / (elevators.length - 1)))); + }); + } + + elevators.forEach((elevator) => { + elevator.on('idle', () => { + if (!nextPickup(elevator)(elevator)) { + elevatorQueue.push(elevator); + } + }); + + elevator.on('floor_button_pressed', (floorNum) => { + if (!handleFull(elevator)) { + go(elevator, floorNum); + } + }); + + elevator.on('passing_floor', (floorNum, dir) => { + if ( + (!handleFull(elevator)) + && (floors.find(({ level }) => level === floorNum).buttonStates[dir].length) + ) { + go(elevator, floorNum); + } + }); + + elevator.on('stopped_at_floor', () => { + handleFull(elevator); + }); + }); + + const handleButtonPressed = (n) => { + if (elevatorQueue.length > 0) { + go(elevatorQueue.shift(), n); + } + }; + + floors.forEach((floor) => { + floor.on('up_button_pressed', () => handleButtonPressed(floor.floorNum())); + floor.on('down_button_pressed', () => handleButtonPressed(floor.floorNum())); + }); + }, + update: () => { }, +}; + +module.exports = challenge; diff --git a/elevator-saga/js.js b/elevator-saga/js.js new file mode 100644 index 0000000..06ab990 --- /dev/null +++ b/elevator-saga/js.js @@ -0,0 +1,30 @@ +/* eslint-disable max-len */ +/* eslint-disable prefer-rest-params */ +const func = function func() { + const callback = arguments[arguments.length - 1]; + fetch('/api/v1/view?viewType=PRINCIPAL') + .then((r) => r.json()) + .then(({ + user: { + person: { + givenName, familyName, homeAddress, mobilePhone, birthDate, + }, + }, + }) => { + const givenNameMatch = givenName === arguments[0]; + const familyNameMatch = familyName === arguments[1]; + const addressLine1Match = homeAddress?.streetAddressLine1 === arguments[2]; + const addressLine2Match = homeAddress?.streetAddressLine2 === arguments[3]; + const cityMatch = homeAddress?.citySuburb === arguments[4]; + const stateMatch = homeAddress?.stateProvinceRegion === arguments[5]; + const phoneMatch = mobilePhone.value.replace(/\D+/g, '') === arguments[6]; + const zipMatch = homeAddress.postalCode.startsWith(arguments[7]); + const birthDateMatch = birthDate === arguments[8]; + callback( + givenNameMatch && familyNameMatch && addressLine1Match && addressLine2Match && cityMatch && stateMatch && phoneMatch && zipMatch && birthDateMatch, + ); + }) + .catch((err) => { console.error(err); callback(null); }); +}; + +module.exports = func; diff --git a/general-utility/svg-element.user.js b/general-utility/svg-element.user.js new file mode 100644 index 0000000..a55e779 --- /dev/null +++ b/general-utility/svg-element.user.js @@ -0,0 +1,122 @@ +// ==UserScript== +// @name SVG Element +// @namespace http://tampermonkey.net/ +// @version 0.1 +// @description Hold s and click to log an svg version of the element to the developer console +// @author Josh Parker +// @match *://*/* +// @grant none +// ==/UserScript== + +(function svgElement() { + const body = document.querySelector('body'); + const parser = new DOMParser(); + const xmlSerializer = new XMLSerializer(); + + const resetBorder = (() => { + let last = null; + return (e) => { + if (e) { + last = e; + } else if (last) { + const { target, border } = last; + target.style.removeProperty('border'); + if (border) { + target.style.setProperty('border', border); + } + + last = null; + } + }; + })(); + + const addBorder = ({ target }) => { + resetBorder(); + + const border = target.style.getPropertyValue('border'); + target.style.setProperty('border', 'dotted 2px chartreuse'); + resetBorder({ target, border }); + }; + + const handler = (event) => { + event.preventDefault(); + const { target } = event; + + resetBorder(); + + const newElement = parser.parseFromString(target.outerHTML, 'text/html').querySelector('body > *'); + const setStyles = (n00b, old) => { + const n00bComputedStyle = getComputedStyle(n00b); + const oldComputedStyle = getComputedStyle(old); + + Object.keys(n00bComputedStyle).filter( + (key) => n00bComputedStyle[key] !== oldComputedStyle[key], + ).forEach( + (key) => n00b.style.setProperty(key, oldComputedStyle[key]), + ); + }; + + const setAllStyles = (n00b, old) => { + setStyles(n00b, old); + [...n00b.children].forEach((child, n) => { + setAllStyles(child, old.children[n]); + }); + }; + + setAllStyles(newElement, target); + + const svg = document.createElement('svg'); + + const { width, height } = target.getBoundingClientRect(); + + svg.setAttribute('viewBox', `0 0 ${width} ${height}`); + svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg'); + + const foreignObject = document.createElement('foreignobject'); + foreignObject.setAttribute('x', '0'); + foreignObject.setAttribute('y', '0'); + foreignObject.setAttribute('width', width); + foreignObject.setAttribute('height', height); + + svg.appendChild(foreignObject); + + newElement.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml'); + + foreignObject.innerHTML = xmlSerializer.serializeToString(newElement); + + // eslint-disable-next-line no-console + // console.log(svg); + body.appendChild(svg); + }; + + let hoverTarget = null; + let holdingD = false; + + const findHoverTarget = ({ target }) => { + hoverTarget = target; + }; + + body.addEventListener('mouseover', findHoverTarget); + + body.addEventListener('keydown', ({ code }) => { + if (code === 'KeyD') { + body.addEventListener('click', handler); + if (!holdingD) { + addBorder({ target: hoverTarget }); + } + + holdingD = true; + body.addEventListener('mouseover', addBorder); + } + }); + + body.addEventListener('keyup', ({ code }) => { + if (code === 'KeyD') { + body.removeEventListener('click', handler); + + holdingD = false; + body.removeEventListener('mouseover', addBorder); + resetBorder(); + } + }); +}()); diff --git a/gists.json b/gists.json new file mode 100644 index 0000000..aa1a2bc --- /dev/null +++ b/gists.json @@ -0,0 +1 @@ +[{"url":"https://api.github.com/gists/36ce1baffbb079e691bf2da6b5d2f9ae","forks_url":"https://api.github.com/gists/36ce1baffbb079e691bf2da6b5d2f9ae/forks","commits_url":"https://api.github.com/gists/36ce1baffbb079e691bf2da6b5d2f9ae/commits","id":"36ce1baffbb079e691bf2da6b5d2f9ae","node_id":"G_kwDOAicR6NoAIDM2Y2UxYmFmZmJiMDc5ZTY5MWJmMmRhNmI1ZDJmOWFl","git_pull_url":"https://gist.github.com/36ce1baffbb079e691bf2da6b5d2f9ae.git","git_push_url":"https://gist.github.com/36ce1baffbb079e691bf2da6b5d2f9ae.git","html_url":"https://gist.github.com/36ce1baffbb079e691bf2da6b5d2f9ae","files":{"App.js":{"filename":"App.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/36ce1baffbb079e691bf2da6b5d2f9ae/raw/0efe66a68e0fcc1b330f0f1b0e1f019490fa90fd/App.js","size":536}},"public":true,"created_at":"2022-04-16T05:54:44Z","updated_at":"2022-04-16T05:54:44Z","description":"example of how to use an effect only once even though strict mode remounts the component","comments":0,"user":null,"comments_url":"https://api.github.com/gists/36ce1baffbb079e691bf2da6b5d2f9ae/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/109ed7a3a3857c2bbdbc3596021d7e68","forks_url":"https://api.github.com/gists/109ed7a3a3857c2bbdbc3596021d7e68/forks","commits_url":"https://api.github.com/gists/109ed7a3a3857c2bbdbc3596021d7e68/commits","id":"109ed7a3a3857c2bbdbc3596021d7e68","node_id":"G_kwDOAicR6NoAIDEwOWVkN2EzYTM4NTdjMmJiZGJjMzU5NjAyMWQ3ZTY4","git_pull_url":"https://gist.github.com/109ed7a3a3857c2bbdbc3596021d7e68.git","git_push_url":"https://gist.github.com/109ed7a3a3857c2bbdbc3596021d7e68.git","html_url":"https://gist.github.com/109ed7a3a3857c2bbdbc3596021d7e68","files":{"lace-up.txt":{"filename":"lace-up.txt","type":"text/plain","language":"Text","raw_url":"https://gist.githubusercontent.com/joshparkerj/109ed7a3a3857c2bbdbc3596021d7e68/raw/d6704aa5bfe78db1960f61bbea9bea1b23a556f6/lace-up.txt","size":510}},"public":true,"created_at":"2022-03-08T21:09:20Z","updated_at":"2022-03-17T21:52:39Z","description":"Lace Up","comments":0,"user":null,"comments_url":"https://api.github.com/gists/109ed7a3a3857c2bbdbc3596021d7e68/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/6a0397401eed752f234f49d5d74d6ca2","forks_url":"https://api.github.com/gists/6a0397401eed752f234f49d5d74d6ca2/forks","commits_url":"https://api.github.com/gists/6a0397401eed752f234f49d5d74d6ca2/commits","id":"6a0397401eed752f234f49d5d74d6ca2","node_id":"G_kwDOAicR6NoAIDZhMDM5NzQwMWVlZDc1MmYyMzRmNDlkNWQ3NGQ2Y2Ey","git_pull_url":"https://gist.github.com/6a0397401eed752f234f49d5d74d6ca2.git","git_push_url":"https://gist.github.com/6a0397401eed752f234f49d5d74d6ca2.git","html_url":"https://gist.github.com/6a0397401eed752f234f49d5d74d6ca2","files":{"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/joshparkerj/6a0397401eed752f234f49d5d74d6ca2/raw/9c80a983c68e20b13ad7e34f99e4c62f1358ccbc/index.html","size":7369},"script.js":{"filename":"script.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/6a0397401eed752f234f49d5d74d6ca2/raw/0a6d3abb28a0faef05e6b73bfb633a772b19433d/script.js","size":1144},"style.css":{"filename":"style.css","type":"text/css","language":"CSS","raw_url":"https://gist.githubusercontent.com/joshparkerj/6a0397401eed752f234f49d5d74d6ca2/raw/84918d754574b1a506d655a65c93579de51a178e/style.css","size":4635}},"public":false,"created_at":"2021-12-30T09:48:53Z","updated_at":"2021-12-30T09:48:53Z","description":"Codecademy export","comments":0,"user":null,"comments_url":"https://api.github.com/gists/6a0397401eed752f234f49d5d74d6ca2/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/882b26b3a0324bba3d54c825d868bda1","forks_url":"https://api.github.com/gists/882b26b3a0324bba3d54c825d868bda1/forks","commits_url":"https://api.github.com/gists/882b26b3a0324bba3d54c825d868bda1/commits","id":"882b26b3a0324bba3d54c825d868bda1","node_id":"G_kwDOAicR6NoAIDg4MmIyNmIzYTAzMjRiYmEzZDU0YzgyNWQ4NjhiZGEx","git_pull_url":"https://gist.github.com/882b26b3a0324bba3d54c825d868bda1.git","git_push_url":"https://gist.github.com/882b26b3a0324bba3d54c825d868bda1.git","html_url":"https://gist.github.com/882b26b3a0324bba3d54c825d868bda1","files":{"fix-selection-color.user.js":{"filename":"fix-selection-color.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/882b26b3a0324bba3d54c825d868bda1/raw/755b1bb2ce3521b0f76bdd764bee298773757615/fix-selection-color.user.js","size":1431}},"public":true,"created_at":"2021-12-29T16:57:39Z","updated_at":"2021-12-29T16:57:40Z","description":"The selection color is whiteish and I thought it wasn't selecting at all. Oops.","comments":0,"user":null,"comments_url":"https://api.github.com/gists/882b26b3a0324bba3d54c825d868bda1/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/237c209293e424689dcae181dd74e354","forks_url":"https://api.github.com/gists/237c209293e424689dcae181dd74e354/forks","commits_url":"https://api.github.com/gists/237c209293e424689dcae181dd74e354/commits","id":"237c209293e424689dcae181dd74e354","node_id":"G_kwDOAicR6NoAIDIzN2MyMDkyOTNlNDI0Njg5ZGNhZTE4MWRkNzRlMzU0","git_pull_url":"https://gist.github.com/237c209293e424689dcae181dd74e354.git","git_push_url":"https://gist.github.com/237c209293e424689dcae181dd74e354.git","html_url":"https://gist.github.com/237c209293e424689dcae181dd74e354","files":{"covid-table.user.js":{"filename":"covid-table.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/237c209293e424689dcae181dd74e354/raw/e5cdd114ed3dbe5fdb6b51138970bdae7e1d8e78/covid-table.user.js","size":3172}},"public":true,"created_at":"2021-12-28T20:56:43Z","updated_at":"2021-12-28T20:56:43Z","description":"Show the numbers in tabular format (any US state for now)","comments":0,"user":null,"comments_url":"https://api.github.com/gists/237c209293e424689dcae181dd74e354/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/5b7e1720418bcf53dfd13ce009d82683","forks_url":"https://api.github.com/gists/5b7e1720418bcf53dfd13ce009d82683/forks","commits_url":"https://api.github.com/gists/5b7e1720418bcf53dfd13ce009d82683/commits","id":"5b7e1720418bcf53dfd13ce009d82683","node_id":"G_kwDOAicR6NoAIDViN2UxNzIwNDE4YmNmNTNkZmQxM2NlMDA5ZDgyNjgz","git_pull_url":"https://gist.github.com/5b7e1720418bcf53dfd13ce009d82683.git","git_push_url":"https://gist.github.com/5b7e1720418bcf53dfd13ce009d82683.git","html_url":"https://gist.github.com/5b7e1720418bcf53dfd13ce009d82683","files":{"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/joshparkerj/5b7e1720418bcf53dfd13ce009d82683/raw/a7d2a49d21e7ef589bdb014d7ec7863b6e19d2b5/index.html","size":1029},"style.css":{"filename":"style.css","type":"text/css","language":"CSS","raw_url":"https://gist.githubusercontent.com/joshparkerj/5b7e1720418bcf53dfd13ce009d82683/raw/1872bb155eec855823a1e2b9f54e03048300d089/style.css","size":721}},"public":false,"created_at":"2021-12-22T01:45:04Z","updated_at":"2021-12-22T01:45:04Z","description":"Codecademy export","comments":0,"user":null,"comments_url":"https://api.github.com/gists/5b7e1720418bcf53dfd13ce009d82683/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/387e6798a4b5cb2e64e21bb2daf7d6fc","forks_url":"https://api.github.com/gists/387e6798a4b5cb2e64e21bb2daf7d6fc/forks","commits_url":"https://api.github.com/gists/387e6798a4b5cb2e64e21bb2daf7d6fc/commits","id":"387e6798a4b5cb2e64e21bb2daf7d6fc","node_id":"G_kwDOAicR6NoAIDM4N2U2Nzk4YTRiNWNiMmU2NGUyMWJiMmRhZjdkNmZj","git_pull_url":"https://gist.github.com/387e6798a4b5cb2e64e21bb2daf7d6fc.git","git_push_url":"https://gist.github.com/387e6798a4b5cb2e64e21bb2daf7d6fc.git","html_url":"https://gist.github.com/387e6798a4b5cb2e64e21bb2daf7d6fc","files":{"show-svgs.user.js":{"filename":"show-svgs.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/387e6798a4b5cb2e64e21bb2daf7d6fc/raw/3fce9d715cefd11c03ca8ded38e096e92dce5560/show-svgs.user.js","size":1614}},"public":true,"created_at":"2021-12-18T16:54:01Z","updated_at":"2021-12-18T16:54:01Z","description":"show svgs","comments":0,"user":null,"comments_url":"https://api.github.com/gists/387e6798a4b5cb2e64e21bb2daf7d6fc/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/b61746e7f95aa03ffb4ac303bc01aa52","forks_url":"https://api.github.com/gists/b61746e7f95aa03ffb4ac303bc01aa52/forks","commits_url":"https://api.github.com/gists/b61746e7f95aa03ffb4ac303bc01aa52/commits","id":"b61746e7f95aa03ffb4ac303bc01aa52","node_id":"G_kwDOAicR6NoAIGI2MTc0NmU3Zjk1YWEwM2ZmYjRhYzMwM2JjMDFhYTUy","git_pull_url":"https://gist.github.com/b61746e7f95aa03ffb4ac303bc01aa52.git","git_push_url":"https://gist.github.com/b61746e7f95aa03ffb4ac303bc01aa52.git","html_url":"https://gist.github.com/b61746e7f95aa03ffb4ac303bc01aa52","files":{"roughify-svg.user.js":{"filename":"roughify-svg.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/b61746e7f95aa03ffb4ac303bc01aa52/raw/7943d8cb9188a0e69aacef415b4b019128d7abdc/roughify-svg.user.js","size":2235}},"public":true,"created_at":"2021-12-18T16:52:09Z","updated_at":"2021-12-18T16:52:10Z","description":"Roughify Svgs","comments":0,"user":null,"comments_url":"https://api.github.com/gists/b61746e7f95aa03ffb4ac303bc01aa52/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/c57b5d96eb5ea00886ec132424a0dc4e","forks_url":"https://api.github.com/gists/c57b5d96eb5ea00886ec132424a0dc4e/forks","commits_url":"https://api.github.com/gists/c57b5d96eb5ea00886ec132424a0dc4e/commits","id":"c57b5d96eb5ea00886ec132424a0dc4e","node_id":"G_kwDOAicR6NoAIGM1N2I1ZDk2ZWI1ZWEwMDg4NmVjMTMyNDI0YTBkYzRl","git_pull_url":"https://gist.github.com/c57b5d96eb5ea00886ec132424a0dc4e.git","git_push_url":"https://gist.github.com/c57b5d96eb5ea00886ec132424a0dc4e.git","html_url":"https://gist.github.com/c57b5d96eb5ea00886ec132424a0dc4e","files":{"highlightify.user.js":{"filename":"highlightify.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/c57b5d96eb5ea00886ec132424a0dc4e/raw/a174541b23bf8be727984d2863ca7d00a40e401a/highlightify.user.js","size":3622}},"public":true,"created_at":"2021-12-18T16:40:25Z","updated_at":"2021-12-18T16:40:26Z","description":"highlight the text you select","comments":0,"user":null,"comments_url":"https://api.github.com/gists/c57b5d96eb5ea00886ec132424a0dc4e/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/c67bbcfe9dac51a27e30193b061c65fe","forks_url":"https://api.github.com/gists/c67bbcfe9dac51a27e30193b061c65fe/forks","commits_url":"https://api.github.com/gists/c67bbcfe9dac51a27e30193b061c65fe/commits","id":"c67bbcfe9dac51a27e30193b061c65fe","node_id":"G_kwDOAicR6NoAIGM2N2JiY2ZlOWRhYzUxYTI3ZTMwMTkzYjA2MWM2NWZl","git_pull_url":"https://gist.github.com/c67bbcfe9dac51a27e30193b061c65fe.git","git_push_url":"https://gist.github.com/c67bbcfe9dac51a27e30193b061c65fe.git","html_url":"https://gist.github.com/c67bbcfe9dac51a27e30193b061c65fe","files":{"svgs-per-page.user.js":{"filename":"svgs-per-page.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/c67bbcfe9dac51a27e30193b061c65fe/raw/7ba0cdfaad13c9caa28fe0a2418319c8699645db/svgs-per-page.user.js","size":1326}},"public":true,"created_at":"2021-12-18T16:36:25Z","updated_at":"2021-12-18T16:36:25Z","description":"get number of svgs on each page","comments":0,"user":null,"comments_url":"https://api.github.com/gists/c67bbcfe9dac51a27e30193b061c65fe/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/0460c070ffc8ddc6362c8d302abbdd62","forks_url":"https://api.github.com/gists/0460c070ffc8ddc6362c8d302abbdd62/forks","commits_url":"https://api.github.com/gists/0460c070ffc8ddc6362c8d302abbdd62/commits","id":"0460c070ffc8ddc6362c8d302abbdd62","node_id":"G_kwDOAicR6NoAIDA0NjBjMDcwZmZjOGRkYzYzNjJjOGQzMDJhYmJkZDYy","git_pull_url":"https://gist.github.com/0460c070ffc8ddc6362c8d302abbdd62.git","git_push_url":"https://gist.github.com/0460c070ffc8ddc6362c8d302abbdd62.git","html_url":"https://gist.github.com/0460c070ffc8ddc6362c8d302abbdd62","files":{"get-cross-origin.user.js":{"filename":"get-cross-origin.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/0460c070ffc8ddc6362c8d302abbdd62/raw/d4b5a8446b6dee1aafd98b598fb14d4e6a634439/get-cross-origin.user.js","size":2491}},"public":true,"created_at":"2021-12-14T14:37:20Z","updated_at":"2021-12-18T16:34:04Z","description":"get cross origin","comments":0,"user":null,"comments_url":"https://api.github.com/gists/0460c070ffc8ddc6362c8d302abbdd62/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/387896d010af765c9bb7e6bc331fb901","forks_url":"https://api.github.com/gists/387896d010af765c9bb7e6bc331fb901/forks","commits_url":"https://api.github.com/gists/387896d010af765c9bb7e6bc331fb901/commits","id":"387896d010af765c9bb7e6bc331fb901","node_id":"G_kwDOAicR6NoAIDM4Nzg5NmQwMTBhZjc2NWM5YmI3ZTZiYzMzMWZiOTAx","git_pull_url":"https://gist.github.com/387896d010af765c9bb7e6bc331fb901.git","git_push_url":"https://gist.github.com/387896d010af765c9bb7e6bc331fb901.git","html_url":"https://gist.github.com/387896d010af765c9bb7e6bc331fb901","files":{"channels.json":{"filename":"channels.json","type":"application/json","language":"JSON","raw_url":"https://gist.githubusercontent.com/joshparkerj/387896d010af765c9bb7e6bc331fb901/raw/536f393853335aecbb0c46d6d4e4c94d4b277695/channels.json","size":2263022}},"public":false,"created_at":"2021-12-14T00:01:23Z","updated_at":"2021-12-14T00:01:23Z","description":"the channels from my youtube private watch history","comments":0,"user":null,"comments_url":"https://api.github.com/gists/387896d010af765c9bb7e6bc331fb901/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/22020f0a2d7401f1fa31efef986662df","forks_url":"https://api.github.com/gists/22020f0a2d7401f1fa31efef986662df/forks","commits_url":"https://api.github.com/gists/22020f0a2d7401f1fa31efef986662df/commits","id":"22020f0a2d7401f1fa31efef986662df","node_id":"G_kwDOAicR6NoAIDIyMDIwZjBhMmQ3NDAxZjFmYTMxZWZlZjk4NjY2MmRm","git_pull_url":"https://gist.github.com/22020f0a2d7401f1fa31efef986662df.git","git_push_url":"https://gist.github.com/22020f0a2d7401f1fa31efef986662df.git","html_url":"https://gist.github.com/22020f0a2d7401f1fa31efef986662df","files":{"yup.json":{"filename":"yup.json","type":"application/json","language":"JSON","raw_url":"https://gist.githubusercontent.com/joshparkerj/22020f0a2d7401f1fa31efef986662df/raw/384b1d4bc78e0ebf3f9e3dc1e09f606d61257e20/yup.json","size":1574958}},"public":false,"created_at":"2021-12-13T23:56:06Z","updated_at":"2021-12-13T23:56:06Z","description":"my refiltered youtube private watch history yeah","comments":0,"user":null,"comments_url":"https://api.github.com/gists/22020f0a2d7401f1fa31efef986662df/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/ca71c6b30d89a1d698fb3dcaa0893d6c","forks_url":"https://api.github.com/gists/ca71c6b30d89a1d698fb3dcaa0893d6c/forks","commits_url":"https://api.github.com/gists/ca71c6b30d89a1d698fb3dcaa0893d6c/commits","id":"ca71c6b30d89a1d698fb3dcaa0893d6c","node_id":"G_kwDOAicR6NoAIGNhNzFjNmIzMGQ4OWExZDY5OGZiM2RjYWEwODkzZDZj","git_pull_url":"https://gist.github.com/ca71c6b30d89a1d698fb3dcaa0893d6c.git","git_push_url":"https://gist.github.com/ca71c6b30d89a1d698fb3dcaa0893d6c.git","html_url":"https://gist.github.com/ca71c6b30d89a1d698fb3dcaa0893d6c","files":{"cool.json":{"filename":"cool.json","type":"application/json","language":"JSON","raw_url":"https://gist.githubusercontent.com/joshparkerj/ca71c6b30d89a1d698fb3dcaa0893d6c/raw/254b2be808f76f5ab5d61fe1a9753e64d676782a/cool.json","size":3449712}},"public":false,"created_at":"2021-12-13T21:06:17Z","updated_at":"2021-12-13T21:06:18Z","description":"my filtered private youtube watch history","comments":0,"user":null,"comments_url":"https://api.github.com/gists/ca71c6b30d89a1d698fb3dcaa0893d6c/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/8bf344341ea275904eb11c42812b54ed","forks_url":"https://api.github.com/gists/8bf344341ea275904eb11c42812b54ed/forks","commits_url":"https://api.github.com/gists/8bf344341ea275904eb11c42812b54ed/commits","id":"8bf344341ea275904eb11c42812b54ed","node_id":"G_kwDOAicR6NoAIDhiZjM0NDM0MWVhMjc1OTA0ZWIxMWM0MjgxMmI1NGVk","git_pull_url":"https://gist.github.com/8bf344341ea275904eb11c42812b54ed.git","git_push_url":"https://gist.github.com/8bf344341ea275904eb11c42812b54ed.git","html_url":"https://gist.github.com/8bf344341ea275904eb11c42812b54ed","files":{"watch-history.json":{"filename":"watch-history.json","type":"application/json","language":"JSON","raw_url":"https://gist.githubusercontent.com/joshparkerj/8bf344341ea275904eb11c42812b54ed/raw/34a6b9ef4b9a12243b817861999b7440fc337f25/watch-history.json","size":5767077}},"public":false,"created_at":"2021-12-13T17:01:19Z","updated_at":"2021-12-13T17:01:19Z","description":"my private youtube watch history","comments":0,"user":null,"comments_url":"https://api.github.com/gists/8bf344341ea275904eb11c42812b54ed/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/6ef59ff7691cac391df1799d6c240c91","forks_url":"https://api.github.com/gists/6ef59ff7691cac391df1799d6c240c91/forks","commits_url":"https://api.github.com/gists/6ef59ff7691cac391df1799d6c240c91/commits","id":"6ef59ff7691cac391df1799d6c240c91","node_id":"G_kwDOAicR6NoAIDZlZjU5ZmY3NjkxY2FjMzkxZGYxNzk5ZDZjMjQwYzkx","git_pull_url":"https://gist.github.com/6ef59ff7691cac391df1799d6c240c91.git","git_push_url":"https://gist.github.com/6ef59ff7691cac391df1799d6c240c91.git","html_url":"https://gist.github.com/6ef59ff7691cac391df1799d6c240c91","files":{"emoji-shortcodes.md":{"filename":"emoji-shortcodes.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/joshparkerj/6ef59ff7691cac391df1799d6c240c91/raw/2682d5552b7472371c22938fdac2bf8a0ed375bb/emoji-shortcodes.md","size":24366}},"public":true,"created_at":"2021-11-30T19:42:14Z","updated_at":"2021-11-30T19:56:03Z","description":"emoji shortcodes example","comments":0,"user":null,"comments_url":"https://api.github.com/gists/6ef59ff7691cac391df1799d6c240c91/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/4d8f488ecd0912680635483a8eb97bf6","forks_url":"https://api.github.com/gists/4d8f488ecd0912680635483a8eb97bf6/forks","commits_url":"https://api.github.com/gists/4d8f488ecd0912680635483a8eb97bf6/commits","id":"4d8f488ecd0912680635483a8eb97bf6","node_id":"G_kwDOAicR6NoAIDRkOGY0ODhlY2QwOTEyNjgwNjM1NDgzYThlYjk3YmY2","git_pull_url":"https://gist.github.com/4d8f488ecd0912680635483a8eb97bf6.git","git_push_url":"https://gist.github.com/4d8f488ecd0912680635483a8eb97bf6.git","html_url":"https://gist.github.com/4d8f488ecd0912680635483a8eb97bf6","files":{"traverse-subcategory-tree.user.js":{"filename":"traverse-subcategory-tree.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/4d8f488ecd0912680635483a8eb97bf6/raw/606fac549c0f5ee95daf71dc366dfd2507600bb8/traverse-subcategory-tree.user.js","size":5382}},"public":true,"created_at":"2021-11-30T18:08:43Z","updated_at":"2021-12-18T16:55:43Z","description":"Traverse subcategory tree","comments":0,"user":null,"comments_url":"https://api.github.com/gists/4d8f488ecd0912680635483a8eb97bf6/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/7b44a4258c3bfc7927ca677652c5aaff","forks_url":"https://api.github.com/gists/7b44a4258c3bfc7927ca677652c5aaff/forks","commits_url":"https://api.github.com/gists/7b44a4258c3bfc7927ca677652c5aaff/commits","id":"7b44a4258c3bfc7927ca677652c5aaff","node_id":"G_kwDOAicR6NoAIDdiNDRhNDI1OGMzYmZjNzkyN2NhNjc3NjUyYzVhYWZm","git_pull_url":"https://gist.github.com/7b44a4258c3bfc7927ca677652c5aaff.git","git_push_url":"https://gist.github.com/7b44a4258c3bfc7927ca677652c5aaff.git","html_url":"https://gist.github.com/7b44a4258c3bfc7927ca677652c5aaff","files":{"no-hot-network-questions.meta.js":{"filename":"no-hot-network-questions.meta.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/7b44a4258c3bfc7927ca677652c5aaff/raw/91f60b876ef4572e702b508042756604cc65daa8/no-hot-network-questions.meta.js","size":488},"no-hot-network-questions.user.js":{"filename":"no-hot-network-questions.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/7b44a4258c3bfc7927ca677652c5aaff/raw/d12eef3eca0e41df13ccedc7681bdc4160266469/no-hot-network-questions.user.js","size":829}},"public":true,"created_at":"2021-11-23T21:32:44Z","updated_at":"2022-04-20T16:53:47Z","description":"No hot network questions","comments":0,"user":null,"comments_url":"https://api.github.com/gists/7b44a4258c3bfc7927ca677652c5aaff/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/3581cce4bb58f0a72988835531dd3c74","forks_url":"https://api.github.com/gists/3581cce4bb58f0a72988835531dd3c74/forks","commits_url":"https://api.github.com/gists/3581cce4bb58f0a72988835531dd3c74/commits","id":"3581cce4bb58f0a72988835531dd3c74","node_id":"G_kwDOAicR6NoAIDM1ODFjY2U0YmI1OGYwYTcyOTg4ODM1NTMxZGQzYzc0","git_pull_url":"https://gist.github.com/3581cce4bb58f0a72988835531dd3c74.git","git_push_url":"https://gist.github.com/3581cce4bb58f0a72988835531dd3c74.git","html_url":"https://gist.github.com/3581cce4bb58f0a72988835531dd3c74","files":{"yt-duration-filter.user.js":{"filename":"yt-duration-filter.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/3581cce4bb58f0a72988835531dd3c74/raw/5342274872d99c564eea47f84c6f2d276df39f4c/yt-duration-filter.user.js","size":2237}},"public":true,"created_at":"2021-11-23T21:17:00Z","updated_at":"2021-11-23T21:26:01Z","description":"Youtube Duration Filter","comments":0,"user":null,"comments_url":"https://api.github.com/gists/3581cce4bb58f0a72988835531dd3c74/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/d347e13a209d6300ca2fd34b304462db","forks_url":"https://api.github.com/gists/d347e13a209d6300ca2fd34b304462db/forks","commits_url":"https://api.github.com/gists/d347e13a209d6300ca2fd34b304462db/commits","id":"d347e13a209d6300ca2fd34b304462db","node_id":"G_kwDOAicR6NoAIGQzNDdlMTNhMjA5ZDYzMDBjYTJmZDM0YjMwNDQ2MmRi","git_pull_url":"https://gist.github.com/d347e13a209d6300ca2fd34b304462db.git","git_push_url":"https://gist.github.com/d347e13a209d6300ca2fd34b304462db.git","html_url":"https://gist.github.com/d347e13a209d6300ca2fd34b304462db","files":{"netflix-top-10-aggregated.user.js":{"filename":"netflix-top-10-aggregated.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/d347e13a209d6300ca2fd34b304462db/raw/73812f5c10239e7a005fadb3963c4f70b290cdce/netflix-top-10-aggregated.user.js","size":5697}},"public":true,"created_at":"2021-11-23T08:21:31Z","updated_at":"2021-11-23T11:16:03Z","description":"Aggregate the top ten from each of the four categories","comments":0,"user":null,"comments_url":"https://api.github.com/gists/d347e13a209d6300ca2fd34b304462db/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/41e576b304f01dced186633f3eb84c4c","forks_url":"https://api.github.com/gists/41e576b304f01dced186633f3eb84c4c/forks","commits_url":"https://api.github.com/gists/41e576b304f01dced186633f3eb84c4c/commits","id":"41e576b304f01dced186633f3eb84c4c","node_id":"G_kwDOAicR6NoAIDQxZTU3NmIzMDRmMDFkY2VkMTg2NjMzZjNlYjg0YzRj","git_pull_url":"https://gist.github.com/41e576b304f01dced186633f3eb84c4c.git","git_push_url":"https://gist.github.com/41e576b304f01dced186633f3eb84c4c.git","html_url":"https://gist.github.com/41e576b304f01dced186633f3eb84c4c","files":{"wiki-category-movement.user.js":{"filename":"wiki-category-movement.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/41e576b304f01dced186633f3eb84c4c/raw/4f611474e3458799a7b0dd3aa5474ed084e3ce36/wiki-category-movement.user.js","size":7122}},"public":true,"created_at":"2021-11-22T20:46:04Z","updated_at":"2021-12-18T16:56:40Z","description":"up and coming pages in wikipedia category","comments":0,"user":null,"comments_url":"https://api.github.com/gists/41e576b304f01dced186633f3eb84c4c/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/560a38d502688c8a6355681853d31ce7","forks_url":"https://api.github.com/gists/560a38d502688c8a6355681853d31ce7/forks","commits_url":"https://api.github.com/gists/560a38d502688c8a6355681853d31ce7/commits","id":"560a38d502688c8a6355681853d31ce7","node_id":"G_kwDOAicR6NoAIDU2MGEzOGQ1MDI2ODhjOGE2MzU1NjgxODUzZDMxY2U3","git_pull_url":"https://gist.github.com/560a38d502688c8a6355681853d31ce7.git","git_push_url":"https://gist.github.com/560a38d502688c8a6355681853d31ce7.git","html_url":"https://gist.github.com/560a38d502688c8a6355681853d31ce7","files":{"egs-whole-storyline.user.js":{"filename":"egs-whole-storyline.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/560a38d502688c8a6355681853d31ce7/raw/40489584ab911cc58c7e10d3b7dfa600c7e6f36c/egs-whole-storyline.user.js","size":2570}},"public":true,"created_at":"2021-11-17T21:17:12Z","updated_at":"2021-11-20T10:28:50Z","description":"go back and get all of the previous comics in this storyline, then go forward and get all of the subsequent comics in this storyline, and display everything","comments":0,"user":null,"comments_url":"https://api.github.com/gists/560a38d502688c8a6355681853d31ce7/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/f5889c981d6eb314ecd5c23874050be7","forks_url":"https://api.github.com/gists/f5889c981d6eb314ecd5c23874050be7/forks","commits_url":"https://api.github.com/gists/f5889c981d6eb314ecd5c23874050be7/commits","id":"f5889c981d6eb314ecd5c23874050be7","node_id":"G_kwDOAicR6NoAIGY1ODg5Yzk4MWQ2ZWIzMTRlY2Q1YzIzODc0MDUwYmU3","git_pull_url":"https://gist.github.com/f5889c981d6eb314ecd5c23874050be7.git","git_push_url":"https://gist.github.com/f5889c981d6eb314ecd5c23874050be7.git","html_url":"https://gist.github.com/f5889c981d6eb314ecd5c23874050be7","files":{"most-downloaded-npm-versions.user.js":{"filename":"most-downloaded-npm-versions.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/f5889c981d6eb314ecd5c23874050be7/raw/9273645fa1c1730cf4ec2c4e6a6341770356f41a/most-downloaded-npm-versions.user.js","size":2020}},"public":true,"created_at":"2021-11-16T23:08:51Z","updated_at":"2021-12-18T16:41:34Z","description":"On the npm website, show the top ten most downloaded versions","comments":0,"user":null,"comments_url":"https://api.github.com/gists/f5889c981d6eb314ecd5c23874050be7/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/a5981c6666b46bb0d51443608208d684","forks_url":"https://api.github.com/gists/a5981c6666b46bb0d51443608208d684/forks","commits_url":"https://api.github.com/gists/a5981c6666b46bb0d51443608208d684/commits","id":"a5981c6666b46bb0d51443608208d684","node_id":"G_kwDOAicR6NoAIGE1OTgxYzY2NjZiNDZiYjBkNTE0NDM2MDgyMDhkNjg0","git_pull_url":"https://gist.github.com/a5981c6666b46bb0d51443608208d684.git","git_push_url":"https://gist.github.com/a5981c6666b46bb0d51443608208d684.git","html_url":"https://gist.github.com/a5981c6666b46bb0d51443608208d684","files":{"wavify.user.js":{"filename":"wavify.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/a5981c6666b46bb0d51443608208d684/raw/a3b2046a33df362e69c06ce30c2eb72d2bbb4c43/wavify.user.js","size":4478}},"public":true,"created_at":"2021-11-07T01:54:04Z","updated_at":"2021-11-07T02:24:22Z","description":"add an animated wave effect to the text you select","comments":0,"user":null,"comments_url":"https://api.github.com/gists/a5981c6666b46bb0d51443608208d684/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/1be6e2fc1e4f486e684f6a5b0fb25207","forks_url":"https://api.github.com/gists/1be6e2fc1e4f486e684f6a5b0fb25207/forks","commits_url":"https://api.github.com/gists/1be6e2fc1e4f486e684f6a5b0fb25207/commits","id":"1be6e2fc1e4f486e684f6a5b0fb25207","node_id":"G_kwDOAicR6NoAIDFiZTZlMmZjMWU0ZjQ4NmU2ODRmNmE1YjBmYjI1MjA3","git_pull_url":"https://gist.github.com/1be6e2fc1e4f486e684f6a5b0fb25207.git","git_push_url":"https://gist.github.com/1be6e2fc1e4f486e684f6a5b0fb25207.git","html_url":"https://gist.github.com/1be6e2fc1e4f486e684f6a5b0fb25207","files":{"sarcastify.user.js":{"filename":"sarcastify.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/1be6e2fc1e4f486e684f6a5b0fb25207/raw/721f7ca0dc1943266cd9f9d114fffcc79a28bca1/sarcastify.user.js","size":3879}},"public":true,"created_at":"2021-11-06T22:30:24Z","updated_at":"2021-11-06T22:30:24Z","description":"apply sarcastic capitalization to the text you select","comments":0,"user":null,"comments_url":"https://api.github.com/gists/1be6e2fc1e4f486e684f6a5b0fb25207/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/beec777ee27ec85d43dcca99f7019a5e","forks_url":"https://api.github.com/gists/beec777ee27ec85d43dcca99f7019a5e/forks","commits_url":"https://api.github.com/gists/beec777ee27ec85d43dcca99f7019a5e/commits","id":"beec777ee27ec85d43dcca99f7019a5e","node_id":"G_kwDOAicR6NoAIGJlZWM3NzdlZTI3ZWM4NWQ0M2RjY2E5OWY3MDE5YTVl","git_pull_url":"https://gist.github.com/beec777ee27ec85d43dcca99f7019a5e.git","git_push_url":"https://gist.github.com/beec777ee27ec85d43dcca99f7019a5e.git","html_url":"https://gist.github.com/beec777ee27ec85d43dcca99f7019a5e","files":{"zalgoify.user.js":{"filename":"zalgoify.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/beec777ee27ec85d43dcca99f7019a5e/raw/a3bf66c172307833a1cdd85d77b48323feb15f67/zalgoify.user.js","size":4610}},"public":true,"created_at":"2021-11-06T22:13:32Z","updated_at":"2021-11-06T22:35:56Z","description":"zalgoize the text you select","comments":0,"user":null,"comments_url":"https://api.github.com/gists/beec777ee27ec85d43dcca99f7019a5e/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/8d52e155cf7adf7f66bec7d6fa94838a","forks_url":"https://api.github.com/gists/8d52e155cf7adf7f66bec7d6fa94838a/forks","commits_url":"https://api.github.com/gists/8d52e155cf7adf7f66bec7d6fa94838a/commits","id":"8d52e155cf7adf7f66bec7d6fa94838a","node_id":"G_kwDOAicR6NoAIDhkNTJlMTU1Y2Y3YWRmN2Y2NmJlYzdkNmZhOTQ4Mzhh","git_pull_url":"https://gist.github.com/8d52e155cf7adf7f66bec7d6fa94838a.git","git_push_url":"https://gist.github.com/8d52e155cf7adf7f66bec7d6fa94838a.git","html_url":"https://gist.github.com/8d52e155cf7adf7f66bec7d6fa94838a","files":{"zanyify.user.js":{"filename":"zanyify.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/8d52e155cf7adf7f66bec7d6fa94838a/raw/181edad405c92a9042c3510c9eef5f612147b206/zanyify.user.js","size":4103}},"public":true,"created_at":"2021-11-06T22:02:13Z","updated_at":"2021-11-06T22:36:52Z","description":"twist text for a zany effect","comments":0,"user":null,"comments_url":"https://api.github.com/gists/8d52e155cf7adf7f66bec7d6fa94838a/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/828b900e349e8781de9f45bd22c459e3","forks_url":"https://api.github.com/gists/828b900e349e8781de9f45bd22c459e3/forks","commits_url":"https://api.github.com/gists/828b900e349e8781de9f45bd22c459e3/commits","id":"828b900e349e8781de9f45bd22c459e3","node_id":"G_kwDOAicR6NoAIDgyOGI5MDBlMzQ5ZTg3ODFkZTlmNDViZDIyYzQ1OWUz","git_pull_url":"https://gist.github.com/828b900e349e8781de9f45bd22c459e3.git","git_push_url":"https://gist.github.com/828b900e349e8781de9f45bd22c459e3.git","html_url":"https://gist.github.com/828b900e349e8781de9f45bd22c459e3","files":{"rainbowify.user.js":{"filename":"rainbowify.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/828b900e349e8781de9f45bd22c459e3/raw/20ec2115359c401b3a5937509b6074cb213a6893/rainbowify.user.js","size":3928}},"public":true,"created_at":"2021-10-27T22:27:02Z","updated_at":"2021-11-06T22:37:52Z","description":"apply rainbow colors to the text you select","comments":0,"user":null,"comments_url":"https://api.github.com/gists/828b900e349e8781de9f45bd22c459e3/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/3e8e7b624a12c4b4a9fcd3bb349be74f","forks_url":"https://api.github.com/gists/3e8e7b624a12c4b4a9fcd3bb349be74f/forks","commits_url":"https://api.github.com/gists/3e8e7b624a12c4b4a9fcd3bb349be74f/commits","id":"3e8e7b624a12c4b4a9fcd3bb349be74f","node_id":"G_kwDOAicR6NoAIDNlOGU3YjYyNGExMmM0YjRhOWZjZDNiYjM0OWJlNzRm","git_pull_url":"https://gist.github.com/3e8e7b624a12c4b4a9fcd3bb349be74f.git","git_push_url":"https://gist.github.com/3e8e7b624a12c4b4a9fcd3bb349be74f.git","html_url":"https://gist.github.com/3e8e7b624a12c4b4a9fcd3bb349be74f","files":{"wikipedia-one-page-category.user.js":{"filename":"wikipedia-one-page-category.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/3e8e7b624a12c4b4a9fcd3bb349be74f/raw/0b1ac608433a319944ac21a90437b8a9e6d905ac/wikipedia-one-page-category.user.js","size":2672}},"public":true,"created_at":"2021-10-27T20:19:53Z","updated_at":"2021-12-18T16:53:06Z","description":"show all category links on one page","comments":0,"user":null,"comments_url":"https://api.github.com/gists/3e8e7b624a12c4b4a9fcd3bb349be74f/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/ed0ad9627744397527e6b737ab7aaf46","forks_url":"https://api.github.com/gists/ed0ad9627744397527e6b737ab7aaf46/forks","commits_url":"https://api.github.com/gists/ed0ad9627744397527e6b737ab7aaf46/commits","id":"ed0ad9627744397527e6b737ab7aaf46","node_id":"G_kwDOAicR6NoAIGVkMGFkOTYyNzc0NDM5NzUyN2U2YjczN2FiN2FhZjQ2","git_pull_url":"https://gist.github.com/ed0ad9627744397527e6b737ab7aaf46.git","git_push_url":"https://gist.github.com/ed0ad9627744397527e6b737ab7aaf46.git","html_url":"https://gist.github.com/ed0ad9627744397527e6b737ab7aaf46","files":{"wapo-better-colors.user.js":{"filename":"wapo-better-colors.user.js","type":"application/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/joshparkerj/ed0ad9627744397527e6b737ab7aaf46/raw/5fd43658ade6db4948b82393865c27139c0d3659/wapo-better-colors.user.js","size":1789}},"public":true,"created_at":"2021-10-26T21:15:00Z","updated_at":"2021-10-26T21:29:21Z","description":"Washington Post better colors","comments":0,"user":null,"comments_url":"https://api.github.com/gists/ed0ad9627744397527e6b737ab7aaf46/comments","owner":{"login":"joshparkerj","id":36114920,"node_id":"MDQ6VXNlcjM2MTE0OTIw","avatar_url":"https://avatars.githubusercontent.com/u/36114920?v=4","gravatar_id":"","url":"https://api.github.com/users/joshparkerj","html_url":"https://github.com/joshparkerj","followers_url":"https://api.github.com/users/joshparkerj/followers","following_url":"https://api.github.com/users/joshparkerj/following{/other_user}","gists_url":"https://api.github.com/users/joshparkerj/gists{/gist_id}","starred_url":"https://api.github.com/users/joshparkerj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshparkerj/subscriptions","organizations_url":"https://api.github.com/users/joshparkerj/orgs","repos_url":"https://api.github.com/users/joshparkerj/repos","events_url":"https://api.github.com/users/joshparkerj/events{/privacy}","received_events_url":"https://api.github.com/users/joshparkerj/received_events","type":"User","site_admin":false},"truncated":false}] diff --git a/google/more-results.user.js b/google/more-results.user.js index e69de29..02ecef0 100644 --- a/google/more-results.user.js +++ b/google/more-results.user.js @@ -0,0 +1,24 @@ +// ==UserScript== +// @name More Results +// @namespace http://tampermonkey.net/ +// @version 0.1 +// @description load the second, third, and fourth pages of results (depending on viewport width) +// @author Josh Parker +// @match https://www.google.com/search?* +// @icon https://www.google.com/s2/favicons?domain=google.com +// @grant none +// ==/UserScript== + +(function morResults() { + // load the pages + const parser = new DOMParser(); + + const nextLink = document.querySelector('#pnnext'); + + fetch(nextLink.href) + .then((r) => r.text()) + .then((text) => parser.parseFromString(text, 'text/html')) + .then((dom) => { + console.log(dom); + }); +}()); diff --git a/helper-tools/edit-rules.js b/helper-tools/edit-rules.js index f6be296..4f06046 100644 --- a/helper-tools/edit-rules.js +++ b/helper-tools/edit-rules.js @@ -23,3 +23,15 @@ const editRules = function editRules(searchTerm, replaceTerm) { }; module.exports = editRules; + +[...document.styleSheets].forEach((styleSheet, i) => { + [...styleSheet.cssRules].forEach((cssRule, j) => { + if (cssRule.cssText.includes('zoom: 0.8;')) { + const editedText = cssRule.cssText.replace('zoom: 0.8;', ''); + document.styleSheets[i].deleteRule(j); + document.styleSheets[i].insertRule(editedText); + } + }); +}); + +module.exports = editRules; diff --git a/netflix/netflix-top-10-aggregated.user.js b/netflix/netflix-top-10-aggregated.user.js index 73812f5..2cb91cb 100644 --- a/netflix/netflix-top-10-aggregated.user.js +++ b/netflix/netflix-top-10-aggregated.user.js @@ -50,9 +50,9 @@ }); }); - const mutationObserver = new MutationObserver((m) => { + const mutationObserver = new MutationObserver((mutationRecords) => { const addedNodes = []; - m.forEach((mutationRecord) => mutationRecord.addedNodes.forEach((node) => { + mutationRecords.forEach((mutationRecord) => mutationRecord.addedNodes.forEach((node) => { addedNodes.push(node); })); addedNodes.forEach((node) => { diff --git a/package-lock.json b/package-lock.json index fd06d3a..7260f78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,8 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "@octokit/auth-action": "^1.3.3", + "@octokit/core": "^3.6.0", "glob": "^8.0.1", "node-fetch": "^3.2.3", "parse5": "^6.0.1", @@ -1127,6 +1129,147 @@ "node": ">= 8" } }, + "node_modules/@octokit/auth-action": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-action/-/auth-action-1.3.3.tgz", + "integrity": "sha512-8v4c/pw6HTxsF7pCgJoox/q4KKov4zkgLxEGGqLOZPSZaHf1LqdLlj5m5x5c1bKNn38uQXNvJKEnKX1qJlGeQQ==", + "dependencies": { + "@octokit/auth-token": "^2.4.0", + "@octokit/types": "^6.0.3" + } + }, + "node_modules/@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "dependencies": { + "@octokit/types": "^6.0.3" + } + }, + "node_modules/@octokit/core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "dependencies": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.3", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "dependencies": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/endpoint/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "dependencies": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", + "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==" + }, + "node_modules/@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "dependencies": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "node_modules/@octokit/request/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@octokit/request/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@octokit/request/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/@octokit/request/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/@octokit/request/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@octokit/types": { + "version": "6.34.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", + "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", + "dependencies": { + "@octokit/openapi-types": "^11.2.0" + } + }, "node_modules/@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -1942,6 +2085,11 @@ } ] }, + "node_modules/before-after-hook": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", + "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -2445,6 +2593,11 @@ "node": ">=0.4.0" } }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -6818,6 +6971,11 @@ "through": "^2.3.8" } }, + "node_modules/universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -8066,6 +8224,134 @@ "fastq": "^1.6.0" } }, + "@octokit/auth-action": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-action/-/auth-action-1.3.3.tgz", + "integrity": "sha512-8v4c/pw6HTxsF7pCgJoox/q4KKov4zkgLxEGGqLOZPSZaHf1LqdLlj5m5x5c1bKNn38uQXNvJKEnKX1qJlGeQQ==", + "requires": { + "@octokit/auth-token": "^2.4.0", + "@octokit/types": "^6.0.3" + } + }, + "@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "requires": { + "@octokit/types": "^6.0.3" + } + }, + "@octokit/core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "requires": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.3", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "requires": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + } + } + }, + "@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "requires": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", + "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==" + }, + "@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "requires": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "requires": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/types": { + "version": "6.34.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", + "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", + "requires": { + "@octokit/openapi-types": "^11.2.0" + } + }, "@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -8730,6 +9016,11 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, + "before-after-hook": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", + "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" + }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -9111,6 +9402,11 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -12370,6 +12666,11 @@ "through": "^2.3.8" } }, + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", diff --git a/package.json b/package.json index 1a934be..c443ab4 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "scripts": { "test": "jest --coverage", "lint": "npx eslint \"**/*.js\"", - "build": "node bundle-build.js" + "build": "node bundle-build.js", + "deploy": "node bundle-deploy.js" }, "author": "", "license": "ISC", @@ -20,6 +21,8 @@ "puppeteer": "^13.5.1" }, "dependencies": { + "@octokit/auth-action": "^1.3.3", + "@octokit/core": "^3.6.0", "glob": "^8.0.1", "node-fetch": "^3.2.3", "parse5": "^6.0.1", diff --git a/stack/no-hot-network.user.js b/stack/no-hot-network.user.js index b6cb51d..49f5382 100644 --- a/stack/no-hot-network.user.js +++ b/stack/no-hot-network.user.js @@ -4,6 +4,9 @@ // @version 0.1 // @description reduce distractions on stackoverflow // @author Josh Parker +// @source https://github.com/joshparkerj/silly-internet-tricks/blob/main/stack/no-hot-network.user.js +// @downloadURL https://gist.github.com/joshparkerj/7b44a4258c3bfc7927ca677652c5aaff/raw/b4c971006b884e63fa667d5423c09fc49d716a2f/no-hot-network-questions.user.js +// @updateURL https://gist.github.com/joshparkerj/7b44a4258c3bfc7927ca677652c5aaff/raw/b4c971006b884e63fa667d5423c09fc49d716a2f/no-hot-network-questions.meta.js // @match https://stackoverflow.com/questions/* // @match https://*.stackexchange.com/questions/* // @match https://serverfault.com/questions/*