Skip to content

Instantly share code, notes, and snippets.

View alexwlchan's full-sized avatar

Alex Chan alexwlchan

View GitHub Profile
@alexwlchan
alexwlchan / curlparser.py
Created November 2, 2014 16:19
Unpack sets and ranges expressed in a string, using cURL syntax for multiple URLs
"""The cURL command line tool allows you to specify multiple URLs in a
single string. For example:
http://site.{one,two,three}.com
ftp://ftp.numericals.com/file[1-100].txt
ftp://ftp.numericals.com/file[001-100].txt (with leading zeros)
ftp://ftp.letters.com/file[a-z].txt
This module can take a string in this format, and return the list of strings
that it specifies. The exact syntax can be seen in the examples on the cURL man
@alexwlchan
alexwlchan / acronyms.py
Last active August 29, 2015 14:11
A command-line tool for managing acronyms
#!/usr/bin/python
"""A script for managing a dictionary of acronyms. For context, see the
associated blog post: http://alexwlchan.net/2014/12/acronyms/
Invoke with the -h or --help flag for a usage message:
$ ./acronyms.py -h
Invoke with the -a or --add flag to add an acronym:
@alexwlchan
alexwlchan / image-width-rescaler
Created May 1, 2013 11:33
This is a quick AppleScript written to shrink wide images to at most 1200px. To use it, open it in Script Editor, then save it as an Application, and drag files on to its icon in Finder. Target width is set in line 17. We can similarly use it to shrink tall images if we want to.
on open some_images
repeat with my_image in some_images
try
rescale_and_copy(my_image)
end try
end repeat
end open
to rescale_and_copy(my_item)
tell application "Image Events"
@alexwlchan
alexwlchan / open-irssi-iterm
Last active December 16, 2015 20:49
AppleScript to find a running instance of irssi in my iTerm windows, and launch one if not. For use with an application launcher such as Alfred.
tell application "iTerm"
activate
-- Change this if you want to find a different process
set myprocess to "irssi"
set procrunning to false
-- Count the number of terminal windows open
set mytermcount to count of terminal
@alexwlchan
alexwlchan / organize-photos.py
Last active January 2, 2016 08:59 — forked from cliss/organize-photos.py
My fork of @cliss’s photo management script. Tweaked to: * Get date from `os.path.getmtime(f)` (lifted from @jdmonaco’s fork) * Sort any format with a three-character extension (currently .JPG, .TIF, .PNG and .MOV). Edit the list in line 40 for more formats. It also normalises extensions to lowercase. * Tweaked some bits of the code * Moves file…
#!/usr/bin/python
import sys
import os, shutil
import subprocess
import os.path
from datetime import datetime
######################## Functions #########################
@alexwlchan
alexwlchan / spoilerrific.js
Last active January 8, 2016 21:58
Opt-in to spoilers on SFF.SE questions with particular tags
// ==UserScript==
// @name SFF.SE Show spoilers on questions with particular tags
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Show all spoilers on SFF.SE questions with specified tags
// @author alexwlchan
// @match *://scifi.stackexchange.com/questions/*
// @match *://meta.scifi.stackexchange.com/questions/*
// @grant none
// ==/UserScript==
@alexwlchan
alexwlchan / settern_rss.py
Created February 14, 2016 08:44
Python script for creating a per-author RSS feed from iMore
#!/usr/bin/env python
"""
This script can be used to get a per-author RSS feed on iMore.com. It will try to
cache the entries, so the last 40 entries from an author will show up, even if
they're no longer in the main feed.
To invoke, just call this script at the command line:
python settern_rss.py
@alexwlchan
alexwlchan / parse_healthkit.py
Created May 26, 2015 19:37
A script for making the XML exports from the iOS Health app more human-friendly
#!/usr/bin/env python
"""
A quick script for tidying up data from the HealthKit export file.
To get an export file:
1) Open the Health app on iOS
2) Under "Health Data", select "All"
3) Use the share button to get a copy of your data in XML format
This script allows you to get data for one particular value, and turn it into
#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
"""
download_files.py
~~~~~~~~~~~~~~~~~
This is a file downloader for Python with a few special features:
* If the user doesn't supply a filename, try to infer a filename and
file extension from the URL.
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
A script for quickly injecting records into DynamoDB.
Useful for testing apps that hang off a DynamoDB event stream.
"""
import itertools
import sys