Skip to content

Instantly share code, notes, and snippets.

View hannahherbig's full-sized avatar

Hannah Herbig hannahherbig

View GitHub Profile
@hannahherbig
hannahherbig / coachella_times.py
Created April 24, 2022 01:17
fetch the times for coachella streams and make a message formatted for discord
import asyncio
import aiohttp
import lxml.html
import lxml.etree
import re
import arrow
async def main():
import numpy as np
import pytesseract
import cv2
from PIL import ImageGrab, Image
import pyperclip
cap = ImageGrab.grab(bbox=(400, 420, 1400, 520))
img = cv2.bitwise_not(cv2.cvtColor(np.array(cap), cv2.COLOR_BGR2GRAY))
for i in range(len(img)):
for j in range(len(img[i])):
@hannahherbig
hannahherbig / bailfunds.md
Last active May 31, 2020 19:12
markdown links to bail funds, particularly for twitch panels
import os
import math
import hashlib
from tqdm import tqdm
units = 'BKMGTPEZY'
def human(x):
if x > 0:
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument('-major', action='store_true')
group.add_argument('-minor', action='store_true')
group.add_argument('-patch', action='store_true')
parser.add_argument('--file', '-f', default='VERSION')
args = parser.parse_args()
@hannahherbig
hannahherbig / music_db.py
Last active March 1, 2018 05:11
run this in a directory with rescaled music_db.xml, it reads song titles and ratings from there (don't use the english patched one)
import xml.etree.ElementTree as ET
from collections import defaultdict
import csv
from functools import lru_cache
@lru_cache(1024)
def lev(s1, s2):
"""Returns the levenshtein distance between strings s1 and s2."""
if not len(s1): return len(s2)
if not len(s2): return len(s1)
@hannahherbig
hannahherbig / .block
Created November 29, 2017 03:04
SDVX 4 difficulty totals
license: gpl-3.0
state("Refunct-Win32-Shipping")
{
int level : 0x01E0804C, 0x788, 0x78, 0x2B0, 0x10C, 0xA0;
int resets : 0x01E0804C, 0x788, 0x78, 0x2B0, 0x10C, 0xA4;
int startSeconds : 0x01E0804C, 0x788, 0x78, 0x2B0, 0x10C, 0xA8;
float startPartialSeconds : 0x01E0804C, 0x788, 0x78, 0x2B0, 0x10C, 0xAC;
int endSeconds : 0x01E0804C, 0x788, 0x78, 0x2B0, 0x10C, 0xB0;
float endPartialSeconds : 0x01E0804C, 0x788, 0x78, 0x2B0, 0x10C, 0xB4;
}
@hannahherbig
hannahherbig / .block
Last active December 7, 2018 14:56 — forked from mbostock/.block
Better Quicksort V
license: gpl-3.0
@hannahherbig
hannahherbig / index.html
Created November 22, 2016 17:35
shellsort voronoi
<!DOCTYPE html>
<meta charset="utf-8">
<style>
path { stroke: none; }
</style>
<svg width="960" height="500"></svg>
<script src="//d3js.org/d3.v4.min.js"></script>
<script>
var svg = d3.select('svg')
var w = +svg.attr('width')