85 lines
3.7 KiB
Python
85 lines
3.7 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('thematdev.org', 1488)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|