thematdevdotorg/main.py

85 lines
3.8 KiB
Python

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(f"{main_cfg_data['hosts']['host']}", f"{main_cfg_data['hosts']['host_port']}")
if __name__ == '__main__':
main()