diff --git a/server-rx/files/.gitkeep b/server-rx/files/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/server-rx/gunicorn.py b/server-rx/gunicorn.py new file mode 100644 index 0000000..d8d2b66 --- /dev/null +++ b/server-rx/gunicorn.py @@ -0,0 +1,8 @@ +import json + +with open("server-rx.json", 'r', encoding = "utf-8") as file: + server_data = json.load(file) + +bind = f"{server_data['ip']}:{server_data['port']}" +workers = 2 +timeout = 120 \ No newline at end of file diff --git a/server-rx/requirements.txt b/server-rx/requirements.txt new file mode 100644 index 0000000..f737d1b --- /dev/null +++ b/server-rx/requirements.txt @@ -0,0 +1,9 @@ +blinker==1.9.0 +click==8.1.8 +Flask==3.1.0 +gunicorn==23.0.0 +itsdangerous==2.2.0 +Jinja2==3.1.5 +MarkupSafe==3.0.2 +packaging==24.2 +Werkzeug==3.1.3 diff --git a/server-rx/server-rx.json b/server-rx/server-rx.json new file mode 100644 index 0000000..063f058 --- /dev/null +++ b/server-rx/server-rx.json @@ -0,0 +1,5 @@ +{ + "ip": "127.0.0.1", + "port": 33333, + "secret": "PROJECT_BY_GAZAKBAYEV_AHMET" +} \ No newline at end of file diff --git a/server-rx/wsgi_back.py b/server-rx/wsgi_back.py new file mode 100644 index 0000000..862a5d1 --- /dev/null +++ b/server-rx/wsgi_back.py @@ -0,0 +1,37 @@ +import os +import json + +from flask import Flask, request + +app = Flask(__name__) +SECRET = None + +with open("server-rx.json", 'r', encoding = "utf-8") as file: + server_data = json.load(file) + SECRET = server_data['secret'] + +def go_to_print(file_path, samples): + os.system(f"lp -n {samples} {file_path}") + +@app.route('/printfile', methods=['POST']) +def print_file(): + if 'file' not in request.files: + return 'Файл не был предоставлен.', 400 + if 'secret-key' not in request.form: + return 'Секретный ключ не был предоставлен.', 400 + if request.form['secret-key'] != SECRET: + return 'Авторизация не удалась.', 400 + file = request.files['file'] + filename = "files/" + file.filename + with open(filename, 'wb') as f: + f.write(file.read()) + samples = 1 + if b'samples' in request.data: + samples = request.data[b'samples'] + try: + go_to_print(filename, samples) + return 'Файл отправлен на печать.', 200 + except Exception as e: + return f'Ошибка при печати файла: {str(e)}.', 500 + finally: + return 'OK', 200