#!/usr/bin/python import random import os import time def choose_image(imagepath, lastonefile): lastonefile = os.path.join(imagepath, lastonefile) dice = random.random() now = int(time.strftime("%H", time.localtime())) # Do we remember the last image we sent out? if os.path.exists(lastonefile): #first we decide if the previous image will be used again if dice < 0.8: with open(lastonefile, "r") as f: lastone = f.readline() return lastone # There is a 10% chance that the light is on # This state is not saved in the lastonelog, so the chance, that this # image will be serverd next time again are reduced. # It also helps saving some energy. if dice > 0.9: newone = random.randint(0, len(onimages)-1) return os.path.join(imagepath, "on", onimages[newone]) # Between 6 a.m. and 6 p.m. theres a good chance that the toilet is # quite bright even if noone is there elif now < 18 and now > 5: newone = random.randint(0, len(dayimages)-1) newimage = os.path.join(imagepath, "day", dayimages[newone]) f = open(lastonefile, "w") f.write(newimage) f.close() return newimage # At night, this place is super-dark, or blue :-) else: newone = random.randint(0, len(onimages)-1) newimage = os.path.join(imagepath, "night", nightimages[newone]) f = open(lastonefile, "w") f.write(newimage) f.close() return newimage def read_images(imagepath): global dayimages global nightimages global onimages #images for different illumination settings are in on folder each dayimages = os.listdir(os.path.join(imagepath, "day")) nightimages = os.listdir(os.path.join(imagepath, "night")) onimages = os.listdir(os.path.join(imagepath, "on")) if __name__ == "__main__": #Configuration stuff imagepath = "../template/klocam" lastonefile = "lastone.log" read_images(imagepath) newimage = choose_image(imagepath, lastonefile) print newimage