Your angry goose character has a number of traits.
+2 Charisma, +1 Dexterity
// get all the three-dot menus that are within tweets | |
document.querySelectorAll("article [aria-label=More]") | |
// for each three-dot menu... | |
.forEach(m => { | |
// click to open the menu | |
m.click(); | |
// then find and click on the block item in the menu | |
document.querySelector("[role=menu] [data-testid=block]").click(); | |
// then find and click on the confirmation button in the modal | |
document.querySelector("[role=button][data-testid=confirmationSheetConfirm]").click(); |
// ==UserScript== | |
// @name Emoji input replacer | |
// @version 0.1.1 | |
// @description replace emojis in input with escaped html entities | |
// @author Chad Lavimoniere | |
// @include http*://6.*.org/* | |
// @grant none | |
// ==/UserScript== | |
(function() { |
<!-- cf. https://gist.github.com/chadlavi/da917425f0fe382a8a049d3908638995 --> | |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Preact</title> | |
<style> | |
/* Loading spinner styles. Delete this style tag if you remove the loading spinner. */ |
:root { | |
--link-color: #000099; | |
--grey-color: #757575; | |
--light-grey-color: #efefef; | |
--text-color: black; | |
--background-color: white; | |
--navy-color: #072284; | |
--orange-color: #c75300; | |
--yellow-color: #f2d037; | |
--base-font-size: 15px; |
# calculate the WCAG contrast ratio between a single hex color and white, or | |
# between two hex color values | |
contrast () { | |
if [ -x "$(command -v node)" ]; then | |
node -e "function hexToRgb(hex) { | |
const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; | |
hex = hex.replace( | |
shorthandRegex, | |
(_m, r, g, b) => r + r + g + g + b + b | |
); |
We've all experienced the creepy moment when something you discussed recently in private is suddenly shown to us in online advertising. Is this just the frequency illusion, or is it creepy tech spying on us?
recent incidents:
// ==UserScript== | |
// @name No ads on HN | |
// @version 0.0.1 | |
// @author Chad Lavimoniere | |
// @grant none | |
// @include https://news.ycombinator.com/* | |
// @downloadURL https://gist.github.com/chadlavi/888a0889dadf82a60ba0f32017a5e9cb/raw/no-ads-hn.user.js | |
// @updateURL https://gist.github.com/chadlavi/888a0889dadf82a60ba0f32017a5e9cb/raw/no-ads-hn.user.js | |
// ==/UserScript== |
const rainbow = (s: string) => { | |
const colors = [ | |
'red', | |
'orange', | |
'yellow', | |
'green', | |
'blue', | |
'indigo', | |
'violet', | |
] |
const removeBadTags = (badTags) => { | |
const links = [...document.querySelectorAll('a')] | |
links.forEach( | |
(l) => { | |
badTags.forEach( | |
(b) => { | |
const badFirstRegex = RegExp(`[\?]${b}=[^\?&#]*`, 'gi') | |
const badSecondRegex = RegExp(`[&]${b}=[^\?&#]*`, 'gi') | |
if (l.href.match(badFirstRegex)) { |