Browse Source

Merge branch 'master' of https://intra.acdp.at/gogs/bscheibel/ui

# Conflicts:
#	app/templates/index.html
#	app/views.py
bscheibel 4 years ago
parent
commit
137a9ac5e1
15 changed files with 90 additions and 13 deletions
  1. 1 0
      .gitignore
  2. 3 2
      app/__init__.py
  3. 0 0
      app/run.sh
  4. 0 0
      app/static/config.json
  5. 4 3
      app/static/js/js_libs/ui.js
  6. BIN
      app/static/out.jpg
  7. BIN
      app/temporary/GV_12.PDF
  8. BIN
      app/temporary/Laeufer.PDF
  9. BIN
      app/temporary/out.jpg
  10. 77 7
      app/views.py
  11. 1 0
      gitignore
  12. BIN
      out.jpg
  13. 2 0
      run.sh
  14. 0 0
      wsgi.pi
  15. 2 1
      wsgi.py

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+app/static/isos/

+ 3 - 2
app/__init__.py

@@ -1,7 +1,8 @@
 from flask import Flask
 
-app = Flask(__name__)
+#app = Flask(__name__)
+app = Flask(__name__, static_url_path="", static_folder="static")
 app.debug = True
-app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
+#app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
 
 from app import views

+ 0 - 0
app/run.sh


app/config.json → app/static/config.json


+ 4 - 3
app/static/js/js_libs/ui.js

@@ -72,7 +72,7 @@ function create_new_tab(title, id,terms) {
     newElement.setAttribute('id', "iso_"+id);
     console.log(terms);
     console.log(textElement)
-    newElement.innerHTML = "<iframe width=100% height=1000px src= '/static/isos/" + id  + ".PDF')'> </iframe>";
+    newElement.innerHTML = "<iframe width=100% height=1000px src= '/edi2/isos/" + id  + ".PDF')'> </iframe>";
     theDiv.appendChild(textElement);
     theDiv.appendChild(newElement);
     }
@@ -83,7 +83,8 @@ function create_new_tab(title, id,terms) {
         textElement.innerHTML += "<a onclick=change_isos_tab('"+id+"','start')> Start of ISO File. </a><br>";
         newElement.setAttribute('id', "iso_"+id);
         //console.log(terms);
-        newElement.innerHTML = "<iframe width=100% height=1000px src= '/static/isos/" + id  + ".PDF')'> </iframe>";
+        newElement.innerHTML = "<iframe width=100% height=1000px src= '/edi2/isos/" + id  + ".PDF')'> </iframe>";
+        newElement.innerHTML ="<h1> hallooo </>"
         theDiv.appendChild(textElement);
         theDiv.appendChild(newElement);
     }
@@ -95,7 +96,7 @@ function change_isos_tab(id, term){
     if (term == "start"){
         term = 1;
     }
-    theDiv.innerHTML = "<iframe width=100% height=1000px src= '/static/isos/" + id  + ".PDF#page="+ term+"')'> </iframe>";
+    theDiv.innerHTML = "<iframe width=100% height=1000px src= '/edi2/isos/" + id  + ".PDF#page="+ term+"')'> </iframe>";
     console.log(id,term);
     return true;
 }

BIN
app/static/out.jpg


BIN
app/temporary/GV_12.PDF


BIN
app/temporary/Laeufer.PDF


BIN
app/temporary/out.jpg


+ 77 - 7
app/views.py

@@ -5,17 +5,20 @@ import subprocess
 import redis
 import random
 import PyPDF2
+import json
+import base64
 import os
 import json
 import re
 import base64
+#https://medium.com/@emerico/convert-pdf-to-image-using-python-flask-2864fb655e01
 
 #path = "/home/bscheibel/app/app"
-path = "/home/centurio/Projects/engineering_drawings_ui/app/app"
+path = "/home/centurio/Projects/engineering_drawings_ui/app"
 
 #path_extraction = '/home/bscheibel/PycharmProjects/dxf_reader/main.py'
 path_extraction = "/home/centurio/Projects/engineering_drawings_extraction/main.py"
-UPLOAD_FOLDER = path + "/temporary"
+UPLOAD_FOLDER = path + "/temporary/"
 app.config["UPLOAD_FOLDER"] = UPLOAD_FOLDER
 ALLOWED_EXTENSIONS = set(['pdf', 'png', 'jpg', 'jpeg', 'PDF'])
 
@@ -27,9 +30,10 @@ def allowed_file(filename):
 def convert_pdf_img(filename):
     PDFFILE = UPLOAD_FOLDER +"/" + filename
     subprocess.call(['pdftoppm', '-jpeg', '-singlefile',
-                     PDFFILE, path + '/temporary/out'])
+                     PDFFILE,  '/home/centurio/web/edi2/out'])
 
 def extract_all(uuid, filename, db):
+    #order_bounding_boxes_in_each_block.main(uuid, UPLOAD_FOLDER + "/" + filename)
     subprocess.call(['python3', path_extraction, str(uuid),UPLOAD_FOLDER + "/" + filename, db, str(0)])
 
 def get_file_size(file):
@@ -47,6 +51,19 @@ def get_file_size(file):
     print(w,h,OrientationDegrees)
     return w,h, orientation
 
+
+
+
+def check_config_file(d):
+    reg_search = d
+    #print(reg_search)
+
+    for conf in d:
+        print(conf)
+
+    return "blub"
+
+
 def check_links(isos):
     link_names = {}
     isos_names = []
@@ -57,6 +74,7 @@ def check_links(isos):
     for name in isos:
         if re.search(reg_isos, name):
             n = 1
+            #print(name)
             new_isos = re.search(reg_isos,name).group(1)
             number = re.search(reg_isos,name).group(2)
             while n <= int(number):
@@ -67,10 +85,16 @@ def check_links(isos):
     for name in isos_new:
         try:
             name = name.replace(" ", "")
+            #name = name.replace("-"," ")
             url1 = name + ".PDF"
+            #print(url)
+            file = send_from_directory("static/isos",url1)
             url = "isos/" + url1
+            #link_names.append(url)
             link_names[name] = url
+            #print(link_names)
         except:
+            #print(name)
             isos_names.append(name)
     return link_names, isos_names
 
@@ -99,10 +123,16 @@ def upload_file():
 @app.route('/show/<filename>&<uuid>')
 def uploaded_file(filename, uuid):
     file_out = "out.jpg"
+    #file_out = filename
+    #if request.method == 'POST':
+    #    uuid = 433
     if filename.endswith(".pdf") or filename.endswith(".PDF"):
         w,h, orientation = get_file_size(UPLOAD_FOLDER +"/" + filename)
         convert_pdf_img(filename)
-        db = redis.Redis("localhost")
+        db = redis.Redis(unix_socket_path='/tmp/redis.sock',db=7)
+        #db = redis.Redis("unix_socket_path='127.0.0.1',6379,db=7")
+        #isos = db.get(uuid+"dims")
+        #print(iso)
         gen_tol = db.get(str(uuid)+"tol")
         print(gen_tol)
         isos = json.loads(db.get(str(uuid)+"isos"))
@@ -110,15 +140,20 @@ def uploaded_file(filename, uuid):
         dims = json.loads(db.get(str(uuid)+"dims"))
         details = json.loads(db.get(str(uuid) + "details"))
         number_blocks = db.get(str(uuid)+"eps")
-        html_code = "General tolerances according to: " + gen_tol + "<br>"
+        html_code = "General tolerances according to: " + str(gen_tol) + "<br>"
         html_general = ""
         reg = r"(-?\d{1,}\.?\d*)"
+        #re_gewinde = r"M\d{1,2}"
+        #re_passungen = r"h\d{1,2}|H\d{1,2}"
         det_coords= "0,0,0,0"
-        with open(path+ '/config.json') as f:
+        with open(path +'/static/config.json') as f:
             config_file = json.load(f)
+            print(config_file)
 
         for dim in sorted(dims):
+            #print(dim)
             for det in details:
+                #print(det)
                 try:
                     if dim == det:
                         det_coords = details[det]
@@ -135,6 +170,16 @@ def uploaded_file(filename, uuid):
                 relevant_isos = []
                 search_terms = {}
                 terms = ''
+                #if "Ra" in d or "Rz" in d or "Rpk" in d:
+                #    relevant_isos.append("ISO4287.PDF")
+                #if u"\u27C2" in d or u"\u25CE" in d or u"\u232D" in d or u"\u2225" in d or u"\u232F" in d or u"\u2316" in d or u"\u2313" in d or u"\u23E5" in d:
+                #    relevant_isos.append("ISO1101.PDF")
+                #if re.search(re_gewinde,d):
+                #    relevant_isos.append("ISO6410.PDF")
+                #if "GG" in d or "CT" in d or "GX" in d:
+                #    relevant_isos.append("ISO14405-1.PDF")
+                #if re.search(re_passungen,d):
+                #    relevant_isos.append("ISO286-1.PDF")
                 for conf in config_file:
                     if re.search(conf,d):
                         iso = config_file[conf]
@@ -142,10 +187,17 @@ def uploaded_file(filename, uuid):
                             relevant_isos.append(key)
                             for blub in iso[key]:
                                 search_terms[blub] = iso[key][blub]
+
+                        #terms = '{"Symbole":1,"Tabelle":2,"Definition":3}'
                         if len(search_terms) < 1:
                             search_terms["Beginn"] = 1
                         terms = json.dumps(search_terms)
-                        terms = base64.b64encode(terms.encode())
+                        #print(terms)
+                        terms = base64.b64encode(terms.encode()).decode('utf-8')
+                        #terms = "blub"
+
+
+
                 try:
                     number = re.search(reg, d)
                     number = number.group(1)
@@ -171,19 +223,31 @@ def uploaded_file(filename, uuid):
 
                 relevant_isos = list(set(relevant_isos))
                 for x in relevant_isos:
+                    #html_code += "<td style='text-align:left'> <a href=" + url_for('static', filename="isos/"+x) + " >"+ x.partition(".")[0]  +"</a>  </td>"
                     html_code += "<td style='text-align:left' data-terms='" + terms + "'> <a onclick=ui_add_tab_active('#main','" + x.partition(".")[0] + "','" + x.partition(".")[0] +"',true,'isotab','"+terms+"')>" + x.partition(".")[0] + "</a>  </td>"
+                #print(html_code)
                 html_code += "</tr>"
                 html_links = ""
                 for link in links:
                     html_links += "<a onclick =ui_add_tab_active('#main','" + link + "','" + link +"',true,'isotab','empty')> Open " + link + "</a> <br>"
+                    #html_links += "<tr> <td> <a onclick =ui_add_tab_active('#main','iso1','iso1',true,'isotab')> Open " + link + " in Tab </a> </td> </tr>"""
+        #print("teeest")
         return render_template('index.html', filename=file_out, isos=isos, dims=dims, text=html_code,html_general=html_general, number=number_blocks, og_filename=filename, w=w, h=h, html_links=html_links, isos_names=isos_names, orientation=orientation)
+    #return render_template('test_pdfjs_textlayer.html', og_filename=filename)
+
+    #else:
+    #    filename = filename
+    #    return render_template('show_image.html', filename=filename)
+
 
 @app.route('/uploads/<filename>')
 def send_file(filename):
     return send_from_directory(UPLOAD_FOLDER, filename)
 
+# No caching at all for API endpoints.
 @app.after_request
 def add_header(response):
+    # response.cache_control.no_store = True
     response.headers['Cache-Control'] = 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0'
     response.headers['Pragma'] = 'no-cache'
     response.headers['Expires'] = '-1'
@@ -220,3 +284,9 @@ def redis_set(key):
         db.set(key, json_dict)
     return "OK"
 
+
+
+@app.route('/index')
+def test():
+    return render_template('index.html')
+

+ 1 - 0
gitignore

@@ -0,0 +1 @@
+app/static/isos/

BIN
out.jpg


+ 2 - 0
run.sh

@@ -0,0 +1,2 @@
+/home/centurio/.local/share/virtualenvs/ui-n1s1OmyL/bin/gunicorn --bind 0.0.0.0:9315 wsgi:app  -p wsgi.pid
+

+ 0 - 0
wsgi.pi


+ 2 - 1
wsgi.py

@@ -1,4 +1,5 @@
 from app import app
 
 if __name__ == "__main__":
-    app.run()
+    #app.run()
+    server = Flask(__name__, static_url_path="", static_folder="static")