I have a lot of SmugMug albums and sometimes I have a hard time tracking down in which Category and SubCategory one resides or whether I've updated all the albums to use square thumbnails — thus was born smugfind.
$ hg clone -r v0.5 http://freehg.org/u/bzimmer/pysmug/
To show help:
$ smugfind -h Usage: smugfind [options] Options: -h, --help show this help message and exit -s, --sharegroups display sharegroup -f FIELDS, --fields=FIELDS list of fields to display for each entity -l, --list available list of fields to display -p PREDICATE, --predicate=PREDICATE predicate to evaluate
To see all the possible metadata fields:
$ smugfind -l | sort (u'Backprinting', None) (u'CanRank', None) (u'Category', (u'id', u'Name')) … (u'X2Larges', None) (u'X3Larges', None) (u'XLarges', None) (u'id', None)
To find the titles of all the public albums without square thumbnails:
$ smugfind -f Title -p "Public and not SquareThumbs" | sort [('Title', u"Chinese New Year's Parade 2008")] [('Title', u'Avalanche Awareness')] [('Title', u'Battle of Port Gamble')] [('Title', u'Beautiful Day Ride')]
The coolest feature, imho, is the ability to create arbitrary predicates to evaluate against an album's metadata to find out which public albums do indeed need their thumbnails updated. The predicate is any valid Python expression evaluated in the context of the album's metadata making for a very simple and powerful expression language.