import flask from flask import request, jsonify, send_file import os from dotenv import load_dotenv import globs from flask import render_template from api_logic import api load_dotenv() app = flask.Flask(__name__, template_folder="./") app.config['DEBUG'] = True @app.route("/") def index(): return flask.render_template('index.html') @app.route('/online', methods=['GET']) def online(): return render_template('online.html') @app.route('/online_api', methods=['GET']) def online_api(): return jsonify(dey=globs.dey, wek=globs.wek, v_hid=globs.v_hid, v_min=globs.v_min, ph=globs.ph, ec=globs.ec, tS=globs.tS, tA=globs.tA, hDm=globs.hDm, sVen=globs.sVen, rFul=globs.rFul, rLi=globs.rLi, rWat=globs.rWat, rRas=globs.rRas, rPH=globs.rPH, rEC=globs.rEC, rSl=globs.rSl, rLe=globs.rLe, alW=globs.alW ) @app.route('/settings', methods=['GET']) def settings(): return render_template('settings.html') @app.route('/settings_api', methods=['GET']) def settings_api(): return jsonify(ph_eep=globs.ph_eep, ph_on_eep=globs.ph_on_eep, ec_eep=globs.ec_eep, ec_A_eep=globs.ec_A_eep, ec_B_eep=globs.ec_B_eep, ec_C_eep=globs.ec_C_eep, l_ON_h_eep=globs.l_ON_h_eep, l_ON_m_eep=globs.l_ON_m_eep, l_OFF_h_eep=globs.l_OFF_h_eep, l_OFF_m_eep=globs.l_OFF_m_eep, t_Voz_eep=globs.t_Voz_eep ) @app.route('/set_res') def set_res(): globs.eep_set = 0 return jsonify(value_set="reset") @app.route('/pH_set') def set_pH_value(): ph_value = request.args.get('value') globs.ph_set = ph_value globs.eep_set = 1 return "pH value set successfully" @app.route('/ph_on_set') def ph_on_value(): ph_on_value = request.args.get('value') globs.ph_on_set = ph_on_value globs.eep_set = 2 return "EC value set successfully" @app.route('/EC_set') def set_EC_value(): ec_value = request.args.get('value') globs.ec_set = ec_value globs.eep_set = 3 return "EC value set successfully" @app.route('/ec_A_set') def ec_A_setValue(): ec_A_setValue = request.args.get('value') globs.ec_A_set = ec_A_setValue globs.eep_set = 4 return "EC value set successfully" @app.route('/ec_B_set') def ec_B_setValue(): ec_B_setValue = request.args.get('value') globs.ec_B_set = ec_B_setValue globs.eep_set = 5 return "EC value set successfully" @app.route('/ec_C_set') def ec_C_setValue(): ec_C_setValue = request.args.get('value') globs.ec_C_set = ec_C_setValue globs.eep_set = 6 return "EC value set successfully" @app.route('/l_ON_set') def l_ON_set(): globs.l_ON_h_set = request.args.get('l_ON_h_set') globs.l_ON_m_set = request.args.get('l_ON_m_set') globs.eep_set = 7 return "EC value set successfully" @app.route('/l_OFF_set') def l_OFF_set(): globs.l_OFF_h_set = request.args.get('l_OFF_h_set') globs.l_OFF_m_set = request.args.get('l_OFF_m_set') globs.eep_set = 8 return "EC value set successfully" @app.route('/t_Voz_eep_set') def t_Voz_eep_set(): t_Voz_eep_set = request.args.get('value') globs.ec_t_Voz_set = t_Voz_eep_set globs.eep_set = 9 return "EC value set successfully" @app.route("/api", methods=['GET']) def handle_api(): response = api() return response @app.route('/graf_json', methods=['GET']) def get_json_file(): # Шаблон для поиска файлов file_pattern = 'week_{}_data.json' flag_pattern = 'week_{}_flag.txt' # Получаем список всех файлов, соответствующих шаблону files = [f for f in os.listdir('.') if os.path.isfile(f) and f.endswith('_data.json')] # Проверяем, есть ли файлы, соответствующие шаблону if files: # Отправляем последний созданный файл, только если есть файл-флаг files.sort() # Сортируем файлы по имени, чтобы получить последний latest_file = files[-1] week_number = latest_file.split('_')[1] flag_file = flag_pattern.format(week_number) if os.path.exists(flag_file): os.remove(flag_file) # Удаляем файл-флаг после отправки return send_file(latest_file, as_attachment=True) else: return "Файл еще не готов", 404 else: return "Файлы не найдены", 404 if __name__ == '__main__': app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))