38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
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
|