Compare commits

..

2 Commits

Author SHA1 Message Date
Sarah
8c79c57c58 pass filename as arg 2022-04-24 17:40:10 +01:00
Sarah
d41cdf41e9 add date to gif frames 2022-04-24 13:54:12 +01:00

View File

@ -6,9 +6,11 @@ from collections import OrderedDict
import imageio import imageio
from progress.bar import IncrementalBar from progress.bar import IncrementalBar
from pygifsicle import optimize from pygifsicle import optimize
from PIL import Image, ImageFont, ImageDraw, ImageFont
import io
def generate_map_timelapse(token_id, token_secret): def generate_map_timelapse(token_id, token_secret, filename):
print("Getting viewings") print("Getting viewings")
viewings = VCinemaUtils.get_vcinema_viewings(token_id, token_secret, combine_repeat_viewings=False) viewings = VCinemaUtils.get_vcinema_viewings(token_id, token_secret, combine_repeat_viewings=False)
@ -23,7 +25,7 @@ def generate_map_timelapse(token_id, token_secret):
running_country_counts = {} running_country_counts = {}
print(len(date_viewings.keys())) print(len(date_viewings.keys()))
with imageio.get_writer('test.gif', mode='I', duration=0.1) as writer: with imageio.get_writer(filename, mode='I', duration=0.1) as writer:
for date, viewings in date_viewings.items(): for date, viewings in date_viewings.items():
date_viewings_countries = VCinemaUtils.filter_viewings(viewings, "countries") date_viewings_countries = VCinemaUtils.filter_viewings(viewings, "countries")
@ -33,21 +35,34 @@ def generate_map_timelapse(token_id, token_secret):
else: else:
running_country_counts[country] = date_viewings_countries[country] running_country_counts[country] = date_viewings_countries[country]
image = imageio.imread(FilmsByCountry.draw_map(running_country_counts, file_name="map-{}.svg".format(date))) map = FilmsByCountry.draw_map(running_country_counts, file_name="map-{}.svg".format(date))
stream = io.BytesIO(map)
img = Image.open(stream)
map_editable = ImageDraw.Draw(img)
map_editable.text((0, 0), "{}".format(date), (255, 64, 0))
img_byte_arr = io.BytesIO()
img.save(img_byte_arr, format='PNG')
img_byte_arr = img_byte_arr.getvalue()
image = imageio.imread(img_byte_arr)
writer.append_data(image) writer.append_data(image)
print("optimizing") print("optimizing")
optimize("test.gif") optimize(filename)
print("done") print("done")
if __name__ == '__main__': if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Update wiki pages.') parser = argparse.ArgumentParser(description='Create timelapse gif of vcinema countries')
parser.add_argument('token_id', help='API token ID.') parser.add_argument('token_id', help='API token ID.')
parser.add_argument('token_secret', help='API token secret.') parser.add_argument('token_secret', help='API token secret.')
parser.add_argument('filename', help='Name of output gif')
args = parser.parse_args() args = parser.parse_args()
generate_map_timelapse(args.token_id, args.token_secret) generate_map_timelapse(args.token_id, args.token_secret, args.filename)