Skip to content
Snippets Groups Projects
Select Git revision
  • kappa_sigma_notebook
  • staging protected
  • master protected
  • 26-refactoring-the-infrastructure
  • develop default protected
  • app protected
  • MPGCQM_workshop
  • backup-05-08
8 results

generate_headers.py

Blame
  • sbailo's avatar
    Luigi Sbailo authored
    da6ee033
    History
    generate_headers.py 1.89 KiB
    from PIL import Image, ImageDraw, ImageFont
    import textwrap as tr
    import json
    import os
    
    if __name__ == '__main__':
    
    	dir_list = os.listdir()
    	for directory in dir_list:
    		try:
    			with open(directory + '/metainfo.json', 'r') as f:
    			    file=f.read()
    			metadata = json.loads(file)
    			title = metadata['title']
    			authors = metadata['authors']
    			update = metadata['updated']
    
    			title_lines = tr.wrap(title, width=35)
    			title='\n'.join(title_lines)
    			update = 'Last update: ' + update
    			authors_list = ''	
    			for author in authors: 
    			    first_name = author.replace(',','').split()[1] 
    			    last_name = author.replace(',','').split()[0]
    			    authors_list = authors_list + first_name + ' ' + last_name
    			    if authors.index(author) < len(authors) -2 :
    			        authors_list = authors_list + ', '
    			    else:
    			        if authors.index(author) == len(authors) -2 :
    			            authors_list = authors_list + ' and '
    			authors_lines = tr.wrap(authors_list, width=60)
    			authors = '\n'.join(authors_lines)
    
    			header = Image.open('files/AIT_bg_title.jpg')
    
    			draw = ImageDraw.Draw(header)
    			font_title = ImageFont.truetype ('files/Titillium/TitilliumWeb-Bold.ttf', 100)
    			font_authors = ImageFont.truetype ('files/Titillium/TitilliumWeb-Italic.ttf', 60)
    			font_update = ImageFont.truetype ('files/Titillium/TitilliumWeb-Regular.ttf', 50)
    			draw.multiline_text((250,100), title, fill='white', font=font_title)
    			draw.multiline_text((250,600), authors, fill='white', font=font_authors)
    			draw.multiline_text((250,950), update, fill='white', font=font_update)
    
    			list_words_dir = directory.replace('-',' ').split()[1:]
    			tutorial_name = list_words_dir[0]
    			for word in list_words_dir[1:]:
    				tutorial_name = tutorial_name + '_' + word
    
    			save_path = '/opt/tutorials/' + directory + '/assets/' + tutorial_name  + '/header.jpg'
    			print(save_path)
    			header.save(save_path)
    			print('header saved')
    		except:
    			pass