Skip to content

Instantly share code, notes, and snippets.

View EvelynSubarrow's full-sized avatar
🦎

Evelyn EvelynSubarrow

🦎
  • Europe/London
View GitHub Profile
@EvelynSubarrow
EvelynSubarrow / td.py
Created December 9, 2021 15:21
Network Rail TD demo
#!/usr/bin/env python3
import logging
from time import sleep
import json
# dependencies are:
# stomp.py, termcolor
from termcolor import colored
@EvelynSubarrow
EvelynSubarrow / doorbell.py
Created December 2, 2020 21:18
Doorbell client/server
#!/usr/bin/python3.5
import socket, notify2, time, requests, json, datetime, hashlib, struct
notify2.init("Doorbell")
def notify(summary, text):
n = notify2.Notification(summary, text)
n.set_timeout(60)
n.set_urgency(2)
@EvelynSubarrow
EvelynSubarrow / udprecv.py
Created November 1, 2020 13:41
UDP broadcast with hmac and sequence ID
#!/usr/bin/env python3
import socket, hashlib, struct
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) # UDP
client.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
client.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
client.bind(("", 37700))
@EvelynSubarrow
EvelynSubarrow / crack.py
Created September 7, 2020 10:47
Project Euler Problem 59
#!/usr/bin/env python3
# ./crack.py p059_cipher.txt diameter
# https://projecteuler.net/problem=59
import sys
def testkey(thekey):
# crude printable ascii
return all(c in range(96,123) and c==thekey[n%3] for n,c in enumerate(thekey))
@EvelynSubarrow
EvelynSubarrow / vitavideogen.py
Created August 10, 2020 12:03
Vita video generator, ffmpeg/py37+
#!/usr/bin/env python3
import glob, os, os.path, argparse
parser = argparse.ArgumentParser()
parser.add_argument('fileglob')
args = parser.parse_args()
@EvelynSubarrow
EvelynSubarrow / phoneme.py
Created August 2, 2020 18:21
Urbit phonemes as a list, what's the worst that could happen
# Edgy urbit reference goes here
from typing import List
PREFIX = 'dozmarbinwansamlitsighidfidlissogdirwacsabwissibrigsoldopmodfoglidhopdardorlorhodfolrintogsilmirholpaslacrovlivdalsatlibtabhanticpidtorbolfosdotlosdilforpilramtirwintadbicdifrocwidbisdasmidloprilnardapmolsanlocnovsitnidtipsicropwitnatpanminritpodmottamtolsavposnapnopsomfinfonbanmorworsipronnorbotwicsocwatdolmagpicdavbidbaltimtasmalligsivtagpadsaldivdactansidfabtarmonranniswolmispallasdismaprabtobrollatlonnodnavfignomnibpagsopralbilhaddocridmocpacravripfaltodtiltinhapmicfanpattaclabmogsimsonpinlomrictapfirhasbosbatpochactidhavsaplindibhosdabbitbarracparloddosbortochilmactomdigfilfasmithobharmighinradmashalraglagfadtopmophabnilnosmilfopfamdatnoldinhatnacrisfotribhocnimlarfitwalrapsarnalmoslandondanladdovrivbacpollaptalpitnambonrostonfodponsovnocsorlavmatmipfip'
SUFFIX = 'zodnecbudwessevpersutletfulpensytdurwepserwylsunrypsyxdyrnuphebpeglupdepdysputlughecryttyvsydnexlunmeplutseppesdelsulpedtemledtulmetwenbynhexfebpyldulhetmevruttylwydtepbesdexse
def validate(ts: str) -> bool:
dotcount = [1000]*10
for digit in ts:
if digit.isnumeric():
intdigit = int(digit)
if (dotcount[10-intdigit]<3): return False
dotcount[intdigit] = 0
elif digit==".":
dotcount = [a+1 for a in dotcount]
else:
@EvelynSubarrow
EvelynSubarrow / onsleep.py
Last active February 22, 2020 23:16
Inside you are two clocks, one system and one real time,,
#!/usr/bin/env python3
import argparse, time, datetime, os
parser = argparse.ArgumentParser()
parser.add_argument("command", )
args = parser.parse_args()
while True:
t1 = datetime.datetime.now()
@EvelynSubarrow
EvelynSubarrow / squarecrypt3.py
Created October 26, 2019 02:28
SquareCTF challenge 3 ("Decode me") solution
#!/usr/bin/env python3
import base64, string, sys
B64 = string.ascii_uppercase + string.ascii_lowercase + string.digits + '+/='
B64 = [ord(c) for c in B64]
def decode(inp):
inp += b"\x00"
@EvelynSubarrow
EvelynSubarrow / i3_status.py
Last active October 17, 2017 00:05
Lazy i3 statusbar
#!/usr/bin/env python3
import json, time, subprocess
from datetime import datetime
# Dependencies
import psutil
import netifaces
print('{"version": 1}')