#!/usr/bin/python import os from jinja2 import Template def get_memes(directory): memes = [] files = os.listdir(directory + "/orig/") files.sort() for f in files: meme = { "orig": "./{}/orig/{}".format(directory, f), "thumb": "./{}/thumb/{}".format(directory, f), } memes.append(meme) return memes def bake_thumbnails(memes): for meme in memes: if not os.access(meme.get("thumb"), os.F_OK): thumb_path = os.path.dirname(meme.get("thumb")) if not os.access(thumb_path, os.F_OK): os.mkdir(thumb_path, int('0775', 8)) os.system("convert {} -resize 320x320^\> {}" .format(meme.get("orig"), meme.get("thumb"))) def render_template(template_fname, output_fname, memes): template_file = open(template_fname, "r") output_file = open(output_fname, "w") template = Template(template_file.read()) output_file.write(template.render(memes=memes)) output_file.close() outdir = "." memes_dir = "orly-memes" # The "om_" prefix means "oreily memes" om_template_fname = "templates/orly-memes.html.j2" om_outdir = outdir om_output_fname = om_outdir + "/" + "orly-memes.html" if not os.access(outdir, os.F_OK): os.mkdir(outdir, int('0775', 8)) memes = get_memes(memes_dir) bake_thumbnails(memes) render_template(om_template_fname, om_output_fname, memes)