from flask import Flask, url_for, render_template import os import json import numpy.random as gaussian_rnd """.. ..,.,,,. . . . . . ....... ...,%&%/,.. .... .*#&&%*... .... . . .. .. .. .. ,.. . ...,(&% ,........,..,. ... .. .*#%/..,. .. ....,. .... . ... , .. .. ... .. /%*. ... .... ., ........ ..., . ,.#%#. ...,.. . ,., ,, ..... ... ..*%/ ... ..... ............ .....,. .,.,(* ........,,..,.,..,. .........,.*&(. ... .......... . ....... ..,/*.,,,. *& . .....,,....,..., .,........,(,.. . . ...../*..,. ..%*,...., ......... . *. .... (%, *#.,.,,,,#% .**(#.,,,./&.%, .... .... ...... ,....... (% .#.,,*#*,,,% ,*.#,,,,,#%.#% .. .,.,..,.. ...... /@& *#&%%%&(, ./ .,/. .#% .., .... . . .%@@%. *@%*,**,,**,,,,..,,,....*.,.//*%#/(,@. .%@@@@@( .*#%%&%@%%&%%&(%#&@##@%*(%(/,..*%@# (@@@@&(&, /&#.,,,,...,,,,*,,***,,.&@#%. (@@@@&. /@* /%#*.,*..% &&##@# (@@@@&(, *&#. .*///(% @@#. .%@@@@@@@( .(%#/ ,% &% *(/. ,@@@@@@@@@%, /##%**, ,(%. &/ .(% ..#/(**. ,@@@@@@@@@@@/ .,,,,,,,,,,. *% &/ *%@&@%(,*&&&&% ,@@@@@@@@@@@@@* ,@( @@@%.. ,@@&@@..#&*#&, ,@@@@@@%@@@@@@% ,&# *##(** .#%@&#@&/ ,@@@@@@@@@@@@@@&/. @@/ *&. .&@@@@@@%. ,@@@@@@@@@@@@@@@@@@&#(*, (@/ ,& #@@@@@@@@@ ,@@@@@%.%@@@@@@@@@@@@@@@@@@@/ .#& ,@@. &@@@@@@. ,@@@@@% ,&@@@@@@@@@@@@@@@@@@@&(&@@@@@#(///*/%## &@@@@@@ ,@@@@@% .&@@@@@@&%&@@@@@@@@@@@@@@@@@@@@/ &@@@@@& ,@@@@@# ,&@@@@@# ,(#&@@@@@@@@@@@@@@@@&**. &@@@@@& ,@@@@@* .@@@@@@%. ,@@@@@@@@@@@@@@@@@@@@@@#.. ,@@@@@@* *@@@@@, (@@@@@@/ @@@@@@@@@./%&@@@@@@@@@@@@@@@@@%*,(@@@@@@, ,@@@@@, .(@@@@@&/ ,@@@@@@@&. ..,(@@@@@@@@@@@@@@@@@@@@. #@@@@@, .(@@@@@&#@@@@@@@&* .((%%@@@@@@@@@@@&. #@@@@&. .&@@@@@@@@@@@#. .,*%&@@@@@% #@@@@&. (@@@@@@@@@ ** """ app = Flask(__name__, subdomain_matching=True) with open('config/json/main.json') as file: main_cfg_data = json.loads(file.read()) app.config['SERVER_NAME'] = f"{main_cfg_data['hosts']['server_name']}:{main_cfg_data['hosts']['port']}" 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'] return render_template('index.html', random_number=generate_iq(), projects=projects, texlink=f"{main_cfg_data['hosts']['texlink']}:{main_cfg_data['hosts']['texport']}") @app.route('/', subdomain='tex') def texindex(): return render_template('texindex.html') def main(): app.run('thematdev.org', 1488) if __name__ == '__main__': main()