File size: 2,021 Bytes
dba2c72
92f2a29
dba2c72
 
 
 
 
 
c2a9315
 
 
5b2432b
c2a9315
 
 
 
 
5b2432b
 
c2a9315
5b2432b
 
c2a9315
 
5b2432b
c2a9315
5b2432b
c2a9315
5b2432b
 
c2a9315
 
5b2432b
c2a9315
5b2432b
 
 
 
 
 
 
dba2c72
 
 
 
48df7e4
dba2c72
48df7e4
 
 
 
dba2c72
 
48df7e4
 
 
 
 
dba2c72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import os
import subprocess
from flask import Flask, request, jsonify, send_from_directory

app = Flask(__name__)
DATA_DIR = "/data"
os.makedirs(DATA_DIR, exist_ok=True)

import subprocess
import os

def debug_conllu():
    base = "/usr/src/ConlluEditor"

    if not os.path.exists(base):
        return f"Directory does not exist: {base}"

    try:
        ls_output = subprocess.check_output(
            ["bash", "-c", f"ls -R {base}"],
            stderr=subprocess.STDOUT
        ).decode()
    except subprocess.CalledProcessError as e:
        ls_output = f"ls failed:\n{e.output.decode()}"

    try:
        grep_output = subprocess.check_output(
            ["bash", "-c", f"grep -R \"12345\" {base} || true"],
            stderr=subprocess.STDOUT
        ).decode()
    except subprocess.CalledProcessError as e:
        grep_output = f"grep failed:\n{e.output.decode()}"

    return f"=== ls -R ===\n{ls_output}\n\n=== grep ===\n{grep_output}"

        
@app.route("/api/debug", methods=["GET"])
def debug():
    return debug_conllu(), 200, {"Content-Type": "text/plain"}


@app.route("/api/upload", methods=["POST"])
def upload():
    if "file" not in request.files:
        return "No file", 400

    f = request.files["file"]

    if f.filename == "":
        return "Empty filename", 400

    if not f.filename.endswith(".conllu"):
        return "Only .conllu allowed", 400

    save_path = os.path.join(DATA_DIR, f.filename)
    f.save(save_path)

    return "OK", 200

@app.route("/api/files", methods=["GET"])
def list_files():
    files = [f for f in os.listdir(DATA_DIR) if f.endswith(".conllu")]
    return jsonify(files)

@app.route("/api/download/<path:filename>", methods=["GET"])
def download(filename):
    return send_from_directory(DATA_DIR, filename, as_attachment=True)

if __name__ == "__main__":
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("--port", type=int, default=5556)
    args = parser.parse_args()
    app.run(host="0.0.0.0", port=args.port)