From ee1ac200514354e0a0091651d9e2043a15a54917 Mon Sep 17 00:00:00 2001
From: felixwelter <felixwelter@gmail.com>
Date: Mon, 31 Aug 2020 13:09:13 +0200
Subject: [PATCH] Update to new request format
---
app.py | 18 +++++++++++------
templates/index.html | 47 +++++++++++++++++++++++++++++++++-----------
2 files changed, 47 insertions(+), 18 deletions(-)
diff --git a/app.py b/app.py
index d2f0a24..71b56c7 100644
--- a/app.py
+++ b/app.py
@@ -3,7 +3,7 @@ import sys
from pathlib import Path
import pdfplumber
-from flask import Flask, render_template, request, redirect, send_file
+from flask import Flask, render_template, request, redirect, send_file, jsonify
from werkzeug.utils import secure_filename
from title_focus_search_index import TitleFocusSearchIndex
@@ -47,16 +47,22 @@ def upload():
return redirect('/')
-@app.route("/search")
+@app.route("/search", methods=['POST'])
def query():
try:
index = Index()
- query = request.args.get("term")
+ query = request.form.get("term")
+ context = request.form.get("context") # TODO: Use context to find better results
result = index.search(query)
img_name = result["path"][7:] + "_" + str(result["page"]) + ".jpg"
- return "slide/" + img_name
- except:
- return str(sys.exc_info()[0]).replace("<", "-").replace(">", "-")
+ return jsonify({
+ "type": "image",
+ "path": "slide/" + img_name
+ })
+ except IndexError:
+ return jsonify({
+ "type": "miss"
+ })
@app.route("/slide/<img_name>")
diff --git a/templates/index.html b/templates/index.html
index 4a1d7f5..35b815d 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -3,19 +3,42 @@
<head>
<title>Slide index</title></head>
<body>
- <h1>Upload new slide</h1>
- <form action="upload" enctype="multipart/form-data" method="post">
- <input type="file" name="file">
- <input type="submit" value="Upload">
- </form>
- {% for item in ll %}<ul>
- <li>{{ item }}</li>
+<h1>Upload new slide</h1>
+<form action="upload" enctype="multipart/form-data" method="post">
+ <input type="file" name="file">
+ <input type="submit" value="Upload">
+</form>
+{% for item in ll %}
+ <ul>
+ <li>{{ item }}</li>
</ul>{% endfor %}
- <h1>Query</h1>
- <form action="search" method="get">
- <input name="term">
- <input type="submit" value="Query">
- </form>
+<h1>Query</h1>
+<form action="search" method="post">
+ <input name="term" placeholder="term"><br>
+ <input name="context" placeholder="context"><br>
+ <input type="submit" value="Query">
+</form>
+
+<button onclick="execute();">Execute</button>
+
+<script>
+ function execute() {
+ var http = new XMLHttpRequest();
+ var url = '/search';
+ var params = 'term=Freedom&Concept Evaluation'
+ http.open('POST', url, true);
+
+ http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
+
+ http.onreadystatechange = function () {
+ if (http.readyState == 4 && http.status == 200) {
+ console.log(http.responseText);
+ console.log(JSON.parse(http.responseText));
+ }
+ }
+ http.send(params);
+ }
+</script>
</body>
</html>
--
GitLab