Skip to content

Instantly share code, notes, and snippets.

View wv-jessejjohnson's full-sized avatar

Jesse Johnson wv-jessejjohnson

View GitHub Profile
@wv-jessejjohnson
wv-jessejjohnson / domutils.js
Last active August 5, 2025 23:06
dom utils
let browserNameForWorkarounds = "chromium";
let _jsConsoleLog = console?.log ?? function () {}; // prevent no console.log error
let _jsConsoleError = console?.error ?? _jsConsoleLog;
let _jsConsoleWarn = console?.warn ?? _jsConsoleLog;
class SafeCounter {
constructor() {
this.value = 0;
this.lock = Promise.resolve();
@wv-jessejjohnson
wv-jessejjohnson / enrich_elements.js
Last active August 1, 2025 23:41
enrich elements
/**
* Iterate all elements, including shadowDOMs, assigning a unique browser
* identifiers (bid_attr_name), and enrich their ARIA attributes.
*/
const enrich_elements = async ([parent_bid, bid_attr_name, tags_to_mark]) => {
// standard html tags
// https://www.w3schools.com/tags/
const html_tags = new Set([
"a", "abbr", "acronym", "address", "applet", "area", "article", "aside", "audio",
@wv-jessejjohnson
wv-jessejjohnson / http2.go
Created July 30, 2025 19:38
HTTP2 Fingerprinting
package fingerprint
import (
"crypto/tls"
"fmt"
"net"
"net/http"
"strings"
"golang.org/x/net/http2"
@wv-jessejjohnson
wv-jessejjohnson / tcp.go
Created July 30, 2025 19:37
TCP Fingerprinting
package fingerprint
import (
"context"
"fmt"
"net"
"syscall"
"time"
)
@wv-jessejjohnson
wv-jessejjohnson / Recaptcha Solver (Automatically solves Recaptcha in browser).user.js Recaptcha Solver in Browser | Automatically solves Recaptcha in browser by engageub | Note: This script is solely intended for the use of educational purposes only and not to abuse any website. This script uses audio in order to solve the captcha. Use it wisely and do not abuse any website. Click "Raw" to install it on Tampermonkey
// ==UserScript==
// @name Recaptcha Solver (Automatically solves Recaptcha in browser)
// @namespace Recaptcha Solver
// @version 2.1
// @description Recaptcha Solver in Browser | Automatically solves Recaptcha in browser
// @author engageub
// @match *://*/recaptcha/*
// @connect engageub.pythonanywhere.com
// @connect engageub1.pythonanywhere.com
// @grant GM_xmlhttpRequest
@wv-jessejjohnson
wv-jessejjohnson / IMessagingClient.ts
Last active January 15, 2025 19:34
Simple Messaging Client Abstraction
export interface IMessagingClient {
connect(): Promise<void>;
disconnect(): Promise<void>;
subscribe(topics: string[], callback: (message: string) => void): Promise<void>;
send(topic: string, message: string): Promise<void>;
}
@wv-jessejjohnson
wv-jessejjohnson / unixToolbox.md
Created October 2, 2024 03:32 — forked from tokhi/unixToolbox.md
Collection of Unix/Linux/BSD commands and tasks which are useful for IT work or for advanced users.

#Unix Toolbox

This document is a collection of Unix/Linux/BSD commands and tasks which are useful for IT work or for advanced users. This is a practical guide with concise explanations, however the reader is supposed to know what s/he is doing.

##Unix Toolbox revision 14.4

The latest version of this document can be found at http://cb.vu/unixtoolbox.xhtml. Replace .xhtml on the link with .pdf for the PDF version and with .book.pdf for the booklet version. On a duplex printer the booklet will create a small book ready to bind. This XHTML page can be converted into a nice PDF document with a CSS3 compliant application (see the script example). See also the about page.
Error reports and comments are m
@wv-jessejjohnson
wv-jessejjohnson / .curlrc
Created October 2, 2024 03:17 — forked from YenForYang/.curlrc
curlrc
### OPTIONS
# Options start with one or two dashes. Many of the options require an additional value next to them.
#
# The short "single-dash" form of the options, -d for example, may be used with or without a space between it and its value, although a space is a recommended separator. The long "double-dash" form, -d, --data for example, requires a space between it and its value.
#
# Short version options that don't need any additional values can be used immediately next to each other, like for example you can specify all the options -O, -L and -v at once as -OLv.
#
# In general, all boolean options are enabled with --option and yet again disabled with --no-option. That is, you use the exact same option name but prefix it with "no-". However, in this list we mostly only list and show the --option version of them. (This concept with --no options was added in 7.19.0. Previously most options were toggled on/off on repeated use of the same command line option.)
#
$ curl --help
Usage: curl [options...] <url>
--abstract-unix-socket <path> Connect via abstract Unix domain socket
--alt-svc <file name> Enable alt-svc with this cache file
--anyauth Pick any authentication method
-a, --append Append to target file when uploading
--basic Use HTTP Basic Authentication
--cacert <file> CA certificate to verify peer against
--capath <dir> CA directory to verify peer against
-E, --cert <certificate[:password]> Client certificate file and password
@wv-jessejjohnson
wv-jessejjohnson / headless-screenshots.js
Created May 13, 2024 06:34 — forked from paceaux/headless-screenshots.js
Screenshot grabber that uses headless chrome (only works on mac)
/** Pre requisites
1) Make an Alias to Chrome
alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
alias chrome-canary="/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary"
2) Make Sure yarn is installed (it caches packages so you don't have to download them again)
`npm i yarn`
3) Use yarn to install dependencies:
`yarn add lighthouse`