Skip to content

Instantly share code, notes, and snippets.

View zmwangx's full-sized avatar
🐍
Pythonista learning new technologies

Zhiming Wang zmwangx

🐍
Pythonista learning new technologies
View GitHub Profile
@zmwangx
zmwangx / aesctr.js
Created March 16, 2020 13:19
AES-CTR encryption & decryption in JavaScript & Python (use this for obfuscation, think thrice about using this for security)
<body>
<script>
const base64ToUInt8Array = b64 =>
Uint8Array.from(window.atob(b64), c => c.charCodeAt(0));
const textToUInt8Array = s => new TextEncoder().encode(s);
const UInt8ArrayToString = u8 => String.fromCharCode.apply(null, u8);
const UInt8ArrayToBase64 = u8 => window.btoa(UInt8ArrayToString(u8));
(async () => {
const key = await window.crypto.subtle.importKey(
@zmwangx
zmwangx / stripNonBMPCharacters.m
Created December 29, 2019 16:53
Strip non-BMP characters from string in Mathematica <12.
surrogateQ[ch_] := # >= 55296 && # < 57344 &@First@ToCharacterCode[ch];
surrogateQ::usage =
"Tests whether the given character is a surrogate, i.e., in the \
range U+D800 to U+DFFF.";
stripNonBMPCharacters[s_] :=
StringJoin[Select[Characters[s], ! surrogateQ[#] &]];
stripNonBMPCharacters::usage =
"Strips the given string of Unicode code points outside of the \
Basic Multilingual Plane (BMP), i.e., characters beyond U+FFFF, by \
@zmwangx
zmwangx / getgoogler.py
Created November 15, 2019 10:25
googler installation script (working copy)
#!/usr/bin/env python3
import builtins
import collections
import hashlib
import os
import pathlib
import shutil
import subprocess
import sys
@zmwangx
zmwangx / _m.weibo.cn.md
Created April 19, 2019 09:10 — forked from momo0v0/_m.weibo.cn.md
m.weibo.cn API
@zmwangx
zmwangx / read_keypress_with_timeout.py
Last active February 21, 2022 23:02
Python: cross-platform code to read keypress with a timeout. Good for "press any key to continue" with an expiration timer.
import os
import time
from typing import Optional
if os.name == "posix":
import select
import sys
import termios
import tty
@zmwangx
zmwangx / urlgrep
Created December 27, 2018 19:43
Python script to extract URLs from HTML documents.
#!/usr/bin/env python3
"""Extract URLs from HTML documents."""
import argparse
import re
import sys
import urllib.parse
import bs4
@zmwangx
zmwangx / pythonista-ytdl.py
Created December 7, 2018 01:10
Share sheet extension to download YouTube videos and save them to apps of your choice, powered by youtube-dl and Pythonista
import contextlib
import logging
import os
import shutil
import sys
import tempfile
import appex
import console
import youtube_dl
@zmwangx
zmwangx / fonts.reg
Created October 20, 2018 17:19
How to make Chinese filenames not so ugly in Windows 10
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
"Segoe UI (TrueType)"="-segoeui.ttf"
"Segoe UI Black (TrueType)"="-seguibl.ttf"
"Segoe UI Black Italic (TrueType)"="-seguibli.ttf"
"Segoe UI Bold (TrueType)"="-segoeuib.ttf"
"Segoe UI Bold Italic (TrueType)"="-segoeuiz.ttf"
"Segoe UI Emoji (TrueType)"="-seguiemj.ttf"
"Segoe UI Historic (TrueType)"="-seguihis.ttf"
@zmwangx
zmwangx / .gitignore
Last active July 22, 2018 22:23
Trivial program to reload apache without root
/a2graceful
@zmwangx
zmwangx / client.py
Last active January 23, 2021 15:28
Python requests.iter_content with timeout
#!/usr/bin/env python3
import sys
import eventlet
eventlet.monkey_patch(socket=True)
from eventlet.timeout import Timeout
import requests