Skip to content

Instantly share code, notes, and snippets.

View Xunnamius's full-sized avatar
🐕

Bernard Xunnamius

🐕
View GitHub Profile
@Xunnamius
Xunnamius / fake-news-blocker.js
Created January 18, 2025 16:34
Block fake news from appearing on currentstatus.io (a tampermonkey script)
// ==UserScript==
// @name Fake News Blocker
// @namespace http://tampermonkey.net/
// @version 2024-04-04
// @description try to take over the world!
// @author You
// @match https://currentstatus.io/
// @icon https://www.google.com/s2/favicons?sz=64&domain=currentstatus.io
// @grant none
// ==/UserScript==
@Xunnamius
Xunnamius / colortest.py
Last active January 14, 2025 10:32 — forked from justinabrahms/colortest.py
Small utility to test terminal support for 256-color output. Updated for Python 3.
#!/usr/bin/env python
# Ported to Python from http://www.vim.org/scripts/script.php?script_id=1349
print("Color indexes should be drawn in bold text of the same color.")
print()
colored = [0] + [0x5f + 40 * n for n in range(0, 5)]
colored_palette = [
"%02x/%02x/%02x" % (r, g, b)
for r in colored
@Xunnamius
Xunnamius / gh-prune-upstream-tags.sh
Last active November 24, 2024 15:07
Clean up any tag mess when fetching from upstream when you're operating on a downstream fork
# Clean up the mess of tags that came in from upstream
git push upstream --delete $(git ls-remote --tags upstream | grep "YOUR_TAG_PREFIX_HERE.*[^}]$" | cut -f 2)
# Depending on the use case and tag format, other forms may be more appropriate, e.g.:
git tag --delete $(git ls-remote --tags upstream | cut -f 2 | cut -f 3 -d /)
# Stop git from pulling tags from upstream in the future
git config remote.upstream.tagopt --no-tags
@Xunnamius
Xunnamius / gh-renovate-old-style-tags-into-scoped-tags.sh
Last active November 10, 2024 03:46
Takes the old-style "v$version" tags and creates aliases to the same commits using monorepo-safe scoped tags (e.g. "my-package@$version" and "@my/package@$version"
#! /bin/sh
# Note that gh! is an alias for gh
# v1.0.0 is the old-style tag, @package/[email protected] is the monorepo-safe version
git tag -m 'alias => v1.0.0' '@package/[email protected]' 'v1.0.0^{}'
@Xunnamius
Xunnamius / gh-cleanup-release-tags.sh
Last active November 24, 2024 15:32 — forked from joejordanbrown/gh-cleanup-releases-tags.sh
GitHub cli - delete all releases and tags in a repo
#! /bin/sh
# Note that gh! is an alias for gh
for release in $(gh! release list 2>/dev/null | awk '{print $1}'); do
if gh! release delete $release -y | cat; then
echo '✓ Deleted release' $release
else
echo '⤫ FAILED to delete release' $release
fi
done
@Xunnamius
Xunnamius / mersenne-twister.js
Created May 21, 2024 23:19 — forked from banksean/mersenne-twister.js
a Mersenne Twister implementation in javascript. Makes up for Math.random() not letting you specify a seed value.
/*
I've wrapped Makoto Matsumoto and Takuji Nishimura's code in a namespace
so it's better encapsulated. Now you can have multiple random number generators
and they won't stomp all over eachother's state.
If you want to use this as a substitute for Math.random(), use the random()
method like so:
var m = new MersenneTwister();
@Xunnamius
Xunnamius / no-msnbc-navbar.js
Created May 2, 2024 22:41
Regain control by popping the shaka player video element out of the Next.js app that MSNBC uses to stream their live content.
// ==UserScript==
// @name Remove the trash from MSNBC navbar
// @namespace http://tampermonkey.net/
// @version 2024-01-27
// @description try to take over the world!
// @author You
// @match https://*.msnbc.com/*
// @exclude https://*.msnbc.com/sigma.html*
// @noframes
// @icon https://www.google.com/s2/favicons?sz=64&domain=msnbc.com
@Xunnamius
Xunnamius / cloudflare.conf
Last active April 7, 2025 06:23
Fail2ban action.d for Cloudflare meant to replace the version that ships with fail2ban currently. This updated version of the action uses Cloudflare's 2023 v4 API (free tier WAF + free tier WAF lists) to ban hostile IPs.
# This version works with CF WAF (using zone rulesets) and obsoletes previous
# versions. This works will all CF account types. This action depends on curl
# and jp and will add/remove IPs from the $known_hostile_ips list. Creating the
# WAF rules need only be done once per zone. Creating the list need only be done
# once per account.
#
# Author: Bernard Dickens III (Xunnamius)
#
# Inspired by work from: Mike Rushton
# https://github.com/fail2ban/fail2ban/blob/master/config/action.d/cloudflare.conf
@Xunnamius
Xunnamius / stream-chain.js
Last active April 28, 2023 10:42
Playing around with node streams and the stream-chain package
x = require('stream-json')
chain = require('stream-chain').chain
callbacks = [];
writable = new stream.Writable({
objectMode: true,
write(c, _e, cb) {
console.log('_write');
callbacks.push([c, cb]);
@Xunnamius
Xunnamius / stream-json.mjs
Last active April 28, 2023 10:10
Playing around with node streams and the stream-json package
/* eslint-disable no-console */
import { setTimeout as delay } from 'node:timers/promises';
import { Readable, Writable } from 'node:stream';
import { createWriteStream, renameSync } from 'node:fs';
import { writeFile } from 'node:fs/promises';
import { randomBytes } from 'node:crypto';
import { default as StreamFork } from 'stream-fork';
import { default as StreamChain } from 'stream-chain';
import { default as StreamJson } from 'stream-json';
import { default as StreamJsonDisassembler } from 'stream-json/Disassembler.js';