summaryrefslogtreecommitdiff
path: root/static/resizetest/resize.py
blob: 2f01250590b919f8b3573f0778ad2d0b005f972b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import os
import subprocess
import sys

AvatarSize = '50x50!'
NormalSize = '400x400!'

def is_image(f):
	f = f.lower()
	return f.endswith('.jpg') or f.endswith('.jpeg') or f.endswith('.png') or f.endswith('.gif')

def load_avatars(path='avatars.txt'):
	return open(path, 'r').read().splitlines()

def resize_file(path, size):
	cmd = "gm convert -size %s %s -resize %s %s" % (size, path, size, path)
	print cmd
	subprocess.Popen(cmd, shell=True)

def resize_directory(mode, dir):
	filter = None
	avatars = set(load_avatars())
	if mode == 'avatars':
		filter = lambda f: f in avatars
	elif mode == 'all':
		filter = is_image
	else:
		print 'unknown mode: %s' % mode
		return
	
	files = os.listdir(dir)
	for f in files:
		if filter(f):
			if f in avatars:
				resize_file('%s/%s' % (dir, f), AvatarSize)
			else:
				resize_file('%s/%s' % (dir, f), NormalSize)

if __name__ == '__main__':
	if len(sys.argv) != 3:
		print "usage: resize.py mode directory"
	else:
		resize_directory(sys.argv[1], sys.argv[2])