from dotenv import load_dotenv from flask import Flask, url_for, render_template import os import json import numpy.random as gaussian_rnd from app.snowfall import generate_snowfall load_dotenv() """.. ..,.,,,. . . . . . ....... ...,%&%/,.. .... .*#&&%*... .... . . .. .. .. .. ,.. . ...,(&% ,........,..,. ... .. .*#%/..,. .. ....,. .... . ... , .. .. ... .. /%*. ... .... ., ........ ..., . ,.#%#. ...,.. . ,., ,, ..... ... ..*%/ ... ..... ............ .....,. .,.,(* ........,,..,.,..,. .........,.*&(. ... .......... . ....... ..,/*.,,,. *& . .....,,....,..., .,........,(,.. . . ...../*..,. ..%*,...., ......... . *. .... (%, *#.,.,,,,#% .**(#.,,,./&.%, .... .... ...... ,....... (% .#.,,*#*,,,% ,*.#,,,,,#%.#% .. .,.,..,.. ...... /@& *#&%%%&(, ./ .,/. .#% .., .... . . .%@@%. *@%*,**,,**,,,,..,,,....*.,.//*%#/(,@. .%@@@@@( .*#%%&%@%%&%%&(%#&@##@%*(%(/,..*%@# (@@@@&(&, /&#.,,,,...,,,,*,,***,,.&@#%. (@@@@&. /@* /%#*.,*..% &&##@# (@@@@&(, *&#. .*///(% @@#. .%@@@@@@@( .(%#/ ,% &% *(/. ,@@@@@@@@@%, /##%**, ,(%. &/ .(% ..#/(**. ,@@@@@@@@@@@/ .,,,,,,,,,,. *% &/ *%@&@%(,*&&&&% ,@@@@@@@@@@@@@* ,@( @@@%.. ,@@&@@..#&*#&, ,@@@@@@%@@@@@@% ,&# *##(** .#%@&#@&/ ,@@@@@@@@@@@@@@&/. @@/ *&. .&@@@@@@%. ,@@@@@@@@@@@@@@@@@@&#(*, (@/ ,& #@@@@@@@@@ ,@@@@@%.%@@@@@@@@@@@@@@@@@@@/ .#& ,@@. &@@@@@@. ,@@@@@% ,&@@@@@@@@@@@@@@@@@@@&(&@@@@@#(///*/%## &@@@@@@ ,@@@@@% .&@@@@@@&%&@@@@@@@@@@@@@@@@@@@@/ &@@@@@& ,@@@@@# ,&@@@@@# ,(#&@@@@@@@@@@@@@@@@&**. &@@@@@& ,@@@@@* .@@@@@@%. ,@@@@@@@@@@@@@@@@@@@@@@#.. ,@@@@@@* *@@@@@, (@@@@@@/ @@@@@@@@@./%&@@@@@@@@@@@@@@@@@%*,(@@@@@@, ,@@@@@, .(@@@@@&/ ,@@@@@@@&. ..,(@@@@@@@@@@@@@@@@@@@@. #@@@@@, .(@@@@@&#@@@@@@@&* .((%%@@@@@@@@@@@&. #@@@@&. .&@@@@@@@@@@@#. .,*%&@@@@@% #@@@@&. (@@@@@@@@@ ** """ app = Flask(__name__) def generate_iq(): return round(gaussian_rnd.normal(loc=100.0, scale=15.0, size=None)) @app.context_processor def override_url_for(): return dict(url_for=dated_url_for) def dated_url_for(endpoint, **values): if endpoint == 'static': filename = values.get('filename', None) if filename: file_path = os.path.join(app.root_path, endpoint, filename) values['q'] = int(os.stat(file_path).st_mtime) return url_for(endpoint, **values) @app.route('/') def index(): with open('config/json/projects.json') as file: data = json.loads(file.read()) cols = data['cols'] projects = data['projects'] snowflake_image_url = dated_url_for('static', filename='images/snowflake.png') return render_template('index.html', random_number=generate_iq(), projects=projects, snowfall=generate_snowfall(snowflake_image_url))