#!env/bin/python3.10
# -*- coding: UTF-8 -*-

#Активация FLASK
from app import app  #чтение из config.py, роуты
from flask import render_template #использование шаблонов
from flask import request # получение данных Cookie, GET и  POST
from flask import make_response #формирование заголовока, используется совместо с redirect
from flask import redirect # Код страницы и перенаравление

from flask import Response


#from flask-login import login_user, logout_user, current_user, login_required #авторизация
#from .forms import LoginForm


#import urllib.parse
#import importlib.util
import http.cookies #работа с кукисами
import datetime #работа с датой
import os #чтение куки и работа с файлами и папками
import html #для функции Escape

#для мультипроцессинга
import sys
import subprocess
import threading #потоки

#Сжатие данных для API
import gzip


#Глобальные переменные
ProgName = app.config['PROGNAME']
version = app.config['VERSION']

LevelA=""
Flag=False
FIO=""
UserID=""
tb_Hashpassword=""
OldSession=""
CurSessionID=""


S=['0','1','2','3']

@app.errorhandler(413)
def request_entity_too_large(error):
    return 'Превышен максимальный размер файла', 413



@app.errorhandler(404)
def page_not_found(e):

    return """Здесь нет того, чего ты ищешь... <br><a href ="/"> Вернутся  на главную</a> """,404

@app.errorhandler(403)
def access_denided(e):
    #Получаем куки и сессию

    SessionID = request.cookies.get('SessionID')
    print (SessionID)

    if SessionID is None or SessionID=="": #если нет сессии
         return redirect("/login", code=302)
    else:
        HTML= """Похоже, сюда можно только администраторам. <br><a href ="/"> Вернутся  на главную</a> """
        return render_template('index.htm', UserHeader = APIC.UserHeader(SessionID,"<font color=red>Доступ запрещен</font>",ProgName), HTML=HTML)

    #return render_template('404.html'), 404



#Добавляем роуты
@app.route('/')
@app.route('/index')
@app.route('/about')
@app.route('/main')
def main():

    Title="Обо мне"
    return render_template('about.htm',
      UserHeader = UserHeader(Title,ProgName)
      ,version=version
      ,Title=Title
      ,ProgName=ProgName
      )

@app.route('/rustdesk')
def rustdesk():

    Title="RustDesk"
    return render_template('rustdesk.htm',
      UserHeader = UserHeader(Title,ProgName)
      ,version=version
      ,Title=Title
      ,ProgName=ProgName
      )


@app.route('/price')
def price():

    Title="Прайс"
    return render_template('price.htm',
      UserHeader = UserHeader(Title,ProgName)
      ,version=version
      ,Title=Title
      ,ProgName=ProgName
      )

@app.route('/portfolio')
def portfolio():

    Title="Отзывы"
    return render_template('portfolio.htm',
      UserHeader = UserHeader(Title,ProgName)
      ,version=version
      ,Title=Title
      ,ProgName=ProgName
      )


def UserHeader(Title,ProgName):
    CurStr=""
    if (os.path.exists("app/templates/_header")==True):
        file = open("app/templates/_header", "r")
        #print ("Чтение заголовка")
        CurStr= file.read()
        file.close()
    #print (CurStr)
    CurStr=CurStr.replace("{{ProgName}}",ProgName)
    CurStr=CurStr.replace("{{Title}}",Title)

    return CurStr

@app.route('/favicon.ico')
def favicon1():
     if (os.path.exists("app/static/image/favicon.ico")==True):
        file = open("app/static/image/favicon.ico", "r")
        CurStr= file.read()
        file.close()
        return CurStr
