62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
#!/usr/bin/env python2
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import random
|
|
from urllib import quote
|
|
|
|
import requests
|
|
|
|
from PIL import Image
|
|
from PIL import ImageFont
|
|
from PIL import ImageDraw
|
|
|
|
from StringIO import StringIO
|
|
|
|
GALLERY_URL = "http://htt-phototeam.de/gallery.json"
|
|
|
|
INPUT_RES = 1440
|
|
FONT_SIZE = 20
|
|
TEXT_COLOR = (0, 0, 0)
|
|
|
|
def uniquote(stuff):
|
|
return quote(stuff.encode('utf-8'))
|
|
|
|
def make_url(year, category, photographer, pid):
|
|
year = uniquote(year)
|
|
category = uniquote(category)
|
|
photographer = uniquote(photographer)
|
|
pid = pid + 1
|
|
return u"http://htt-phototeam.de/#&gid=%s/%s/%s&pid=%d" % (year, category, photographer, pid)
|
|
|
|
def pick_random_key(stuff):
|
|
keys = stuff.keys()
|
|
random.shuffle(keys)
|
|
return keys[0]
|
|
|
|
def get_random_photo():
|
|
random.seed()
|
|
|
|
resp = requests.get(GALLERY_URL)
|
|
json = resp.json()
|
|
|
|
year = pick_random_key(json['photos'])
|
|
photographer = pick_random_key(json['photos'][year])
|
|
category = pick_random_key(json['photos'][year][photographer])
|
|
|
|
photos = json['photos'][year][photographer][category]
|
|
pid = random.randint(0, len(photos) - 1)
|
|
photo_url = photos[pid]['images'][unicode(INPUT_RES)]['src']
|
|
|
|
resp = requests.get("http://htt-phototeam.de/" + photo_url)
|
|
img = Image.open(StringIO(resp.content))
|
|
draw = ImageDraw.Draw(img)
|
|
font = ImageFont.truetype("font/SourceSansPro-Regular.ttf", FONT_SIZE)
|
|
height = img.size[1]
|
|
draw.text((10, height - 10 - FONT_SIZE),
|
|
"htt-phototeam.de - Photo by %s %s" % (photographer, year),
|
|
TEXT_COLOR,
|
|
font=font)
|
|
img.save('photo.jpg', quality=90)
|
|
|
|
return u"Photo des Tages: %s (%s %s)" % (make_url(year, category, photographer, pid), photographer, year)
|