From 4031860921a133e3539b30dacccae8bc4f62ef64 Mon Sep 17 00:00:00 2001 From: Ahmet Gazakbayev Date: Thu, 15 May 2025 14:43:08 +0300 Subject: [PATCH 1/2] server-rx : PDF receiver, printing via Linux lp-tool --- server-rx/gunicorn.py | 8 ++++++++ server-rx/requirements.txt | 9 +++++++++ server-rx/server-rx.json | 5 +++++ server-rx/wsgi_back.py | 37 +++++++++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 server-rx/gunicorn.py create mode 100644 server-rx/requirements.txt create mode 100644 server-rx/server-rx.json create mode 100644 server-rx/wsgi_back.py 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 From 2be582db573d9c4f333b1c51598ab70353a39722 Mon Sep 17 00:00:00 2001 From: Ahmet Gazakbayev Date: Thu, 15 May 2025 14:44:31 +0300 Subject: [PATCH 2/2] server-rx : PDF receiver, printing via Linux lp-tool --- server-rx/files/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 server-rx/files/.gitkeep diff --git a/server-rx/files/.gitkeep b/server-rx/files/.gitkeep new file mode 100644 index 0000000..e69de29