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 spotify embedder | |
// @version 1 | |
// @namespace https://gist.github.com/chadlavi/eba2e3420fb9c1a6a891f8ed2c29e2ae | |
// @downloadURL https://gist.github.com/chadlavi/eba2e3420fb9c1a6a891f8ed2c29e2ae/raw/spotify-embed.user.js | |
// @updateURL https://gist.github.com/chadlavi/eba2e3420fb9c1a6a891f8ed2c29e2ae/raw/spotify-embed.user.js | |
// @description embed spotify player when a url is present | |
// @author Chad Lavimoniere | |
// @exclude http*://*youtube.com* | |
// @exclude http*://*facebook.com* |
// ==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() { |
#!/bin/sh | |
# some parts of this forked from https://github.com/blended/sketch-collaboration | |
# cf. https://github.com/chadlavi/sketch-collaboration | |
if [ ! `command -v jq` ]; then | |
echo "you need to install jq. If you use Homebrew, try 'brew install jq'" | |
exit 1 | |
fi | |
if [ -z "$1 ]; then |
<!-- 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; |
// ==UserScript== | |
// @name youtube embedder | |
// @version 2.0.3 | |
// @namespace https://gist.github.com/chadlavi/27c08ea6648d375c3f5de3ec7f43a015 | |
// @downloadURL https://gist.github.com/chadlavi/27c08ea6648d375c3f5de3ec7f43a015/raw/youtube-embedder.user.js | |
// @updateURL https://gist.github.com/chadlavi/27c08ea6648d375c3f5de3ec7f43a015/raw/youtube-embedder.user.js | |
// @description embed youtube videos when a url is present | |
// @author Chad Lavimoniere | |
// @exclude http*://*youtube.com* | |
// @exclude http*://*facebook.com* |
# 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: