Spaces:
Sleeping
Sleeping
Upload 5 files
Browse files
app.py
CHANGED
|
@@ -100,20 +100,21 @@ def drive_upload():
|
|
| 100 |
@app.route("/drive/list", methods=["GET"])
|
| 101 |
def drive_list():
|
| 102 |
try:
|
| 103 |
-
elev_id = request.args.get("elevId", "")
|
| 104 |
-
materie = request.args.get("materieId", "")
|
| 105 |
|
| 106 |
-
# Gaseste
|
| 107 |
q_elev = f"name='{elev_id}' and '{DRIVE_FOLDER_ID}' in parents and mimeType='application/vnd.google-apps.folder' and trashed=false"
|
| 108 |
r1 = requests.get("https://www.googleapis.com/drive/v3/files",
|
| 109 |
-
params={"q": q_elev, "fields": "files(id)"}, headers=drive_headers(), timeout=15)
|
| 110 |
ef = r1.json().get("files", [])
|
| 111 |
if not ef:
|
| 112 |
return jsonify({"files": []})
|
| 113 |
|
|
|
|
| 114 |
q_mat = f"name='{materie}' and '{ef[0]['id']}' in parents and mimeType='application/vnd.google-apps.folder' and trashed=false"
|
| 115 |
r2 = requests.get("https://www.googleapis.com/drive/v3/files",
|
| 116 |
-
params={"q": q_mat, "fields": "files(id)"}, headers=drive_headers(), timeout=15)
|
| 117 |
mf = r2.json().get("files", [])
|
| 118 |
if not mf:
|
| 119 |
return jsonify({"files": []})
|
|
@@ -128,6 +129,20 @@ def drive_list():
|
|
| 128 |
print(f"[DRIVE LIST ERROR] {e}")
|
| 129 |
return jsonify({"error": str(e)}), 500
|
| 130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 131 |
# ββ Ruta download (proxy) βββββββββββββββββββββββββββββββββββββ
|
| 132 |
@app.route("/drive/download/<file_id>", methods=["GET"])
|
| 133 |
def drive_download(file_id):
|
|
|
|
| 100 |
@app.route("/drive/list", methods=["GET"])
|
| 101 |
def drive_list():
|
| 102 |
try:
|
| 103 |
+
elev_id = request.args.get("elevId", "").replace("'", "\\'")
|
| 104 |
+
materie = request.args.get("materieId", "").replace("'", "\\'")
|
| 105 |
|
| 106 |
+
# Gaseste folderul elevului
|
| 107 |
q_elev = f"name='{elev_id}' and '{DRIVE_FOLDER_ID}' in parents and mimeType='application/vnd.google-apps.folder' and trashed=false"
|
| 108 |
r1 = requests.get("https://www.googleapis.com/drive/v3/files",
|
| 109 |
+
params={"q": q_elev, "fields": "files(id,name)"}, headers=drive_headers(), timeout=15)
|
| 110 |
ef = r1.json().get("files", [])
|
| 111 |
if not ef:
|
| 112 |
return jsonify({"files": []})
|
| 113 |
|
| 114 |
+
# Gaseste folderul materiei
|
| 115 |
q_mat = f"name='{materie}' and '{ef[0]['id']}' in parents and mimeType='application/vnd.google-apps.folder' and trashed=false"
|
| 116 |
r2 = requests.get("https://www.googleapis.com/drive/v3/files",
|
| 117 |
+
params={"q": q_mat, "fields": "files(id,name)"}, headers=drive_headers(), timeout=15)
|
| 118 |
mf = r2.json().get("files", [])
|
| 119 |
if not mf:
|
| 120 |
return jsonify({"files": []})
|
|
|
|
| 129 |
print(f"[DRIVE LIST ERROR] {e}")
|
| 130 |
return jsonify({"error": str(e)}), 500
|
| 131 |
|
| 132 |
+
# ββ Ruta delete βββββββββββββββββββββββββββββββββββββββββββββββ
|
| 133 |
+
@app.route("/drive/delete/<file_id>", methods=["DELETE"])
|
| 134 |
+
def drive_delete(file_id):
|
| 135 |
+
try:
|
| 136 |
+
r = requests.delete(
|
| 137 |
+
f"https://www.googleapis.com/drive/v3/files/{file_id}",
|
| 138 |
+
headers=drive_headers(), timeout=15)
|
| 139 |
+
if r.status_code in (200, 204):
|
| 140 |
+
return jsonify({"ok": True})
|
| 141 |
+
return jsonify({"error": f"Drive returned {r.status_code}"}), 500
|
| 142 |
+
except Exception as e:
|
| 143 |
+
print(f"[DRIVE DELETE ERROR] {e}")
|
| 144 |
+
return jsonify({"error": str(e)}), 500
|
| 145 |
+
|
| 146 |
# ββ Ruta download (proxy) βββββββββββββββββββββββββββββββββββββ
|
| 147 |
@app.route("/drive/download/<file_id>", methods=["GET"])
|
| 148 |
def drive_download(file_id):
|