Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
from __future__ import print_function
|
| 2 |
-
from flask import Flask, render_template,request,flash , json, url_for,g , redirect , jsonify , send_file
|
| 3 |
import os
|
| 4 |
import json
|
| 5 |
import fitz
|
|
@@ -34,6 +34,7 @@ import google_sheet_to_xml
|
|
| 34 |
from threading import Thread
|
| 35 |
import mainDBAlaa
|
| 36 |
import datetime
|
|
|
|
| 37 |
|
| 38 |
import ezdxf
|
| 39 |
app = Flask(__name__)
|
|
@@ -137,27 +138,32 @@ def hexRGB(color):
|
|
| 137 |
@app.route('/savebase64Img/',methods=["POST"])
|
| 138 |
def stringToRGB():
|
| 139 |
vv = eval(request.form.get('answers'))
|
|
|
|
| 140 |
if vv[5][2].startswith('3.2'):
|
| 141 |
print('3.2 section')
|
| 142 |
pdfpath,pdflink=tsadropboxretrieval.getPathtoPDF_File(nameofPDF=vv[0])
|
| 143 |
dbxTeam= tsadropboxretrieval.ADR_Access_DropboxTeam('user')
|
| 144 |
md, res =dbxTeam.files_download(path=pdfpath)
|
| 145 |
dataDoc = res.content
|
| 146 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 147 |
opencv_img,dataDoc = plan2img( str(vv[0]) )
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
if vv[
|
| 156 |
-
|
| 157 |
-
img=Image.open(io.BytesIO(imgdata))
|
| 158 |
-
opencv_img= cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR)
|
| 159 |
-
|
| 160 |
-
arr=measureproject(vv,dataDoc,opencv_img)
|
| 161 |
return jsonify(arr)
|
| 162 |
|
| 163 |
@app.route('/2.1Trial/',methods=["POST"])
|
|
@@ -168,7 +174,7 @@ def measure2_1():
|
|
| 168 |
return arr
|
| 169 |
#MAIN FUNCTION -- calls python code to measure the chosen plan from the interface
|
| 170 |
# @app.route('/projecttomeasure/<jsdata>',methods=["GET","POST"])
|
| 171 |
-
def measureproject(result,dataDoc,img=0,dxffile=0):
|
| 172 |
colorarr=[]
|
| 173 |
# result = json.loads(jsdata)
|
| 174 |
pdfpath='/'
|
|
@@ -197,12 +203,28 @@ def measureproject(result,dataDoc,img=0,dxffile=0):
|
|
| 197 |
temp_filename = temp_file.name
|
| 198 |
print(temp_filename)
|
| 199 |
doc,outputimg, SimilarAreaDictionary ,spreadsheetId, spreadsheet_url , namepathArr , list1,hatched_areas=dxf__omar3_2.mainFunctionDrawImgPdf(dataDoc,temp_filename,result[4] , pdfpath,result[0])
|
| 200 |
-
print('done measuring')
|
| 201 |
dbPath='/TSA JOBS/ADR Test'+pdfpath+'Measured Plan/'
|
| 202 |
pdflink= tsadropboxretrieval.uploadanyFile(doc=doc,path=dbPath,pdfname=result[0]) #doc=doc,pdfname=path,pdfpath=pdfpath+'Measured Plan/'
|
| 203 |
|
| 204 |
_, buffer = cv2.imencode('.png', outputimg)
|
| 205 |
arr=[ base64.b64encode(buffer).decode('utf-8'),SimilarAreaDictionary.to_dict(), spreadsheet_url,spreadsheetId,[],list1.to_dict(),pdflink,hatched_areas,namepathArr]# , spreadsheetId, spreadsheet_url , list1.to_dict()]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 206 |
################################# -2.2- #################################
|
| 207 |
# elif result[5][2].startswith('2.2'): #section value - 2.2 rc slabs
|
| 208 |
#add here python code
|
|
@@ -332,21 +354,21 @@ def modifyingcalcRefDynamic(img):
|
|
| 332 |
|
| 333 |
@app.route('/get-pdf/<jsdata>')
|
| 334 |
def get_pdf(jsdata):
|
|
|
|
| 335 |
# Download PDF from Dropbox
|
| 336 |
pdfpath,pdflink=tsadropboxretrieval.getPathtoPDF_File(nameofPDF=jsdata)
|
| 337 |
dbxTeam= tsadropboxretrieval.ADR_Access_DropboxTeam('user')
|
| 338 |
md, res =dbxTeam.files_download(path=pdfpath)
|
| 339 |
-
|
| 340 |
-
|
| 341 |
-
|
| 342 |
-
|
| 343 |
-
|
| 344 |
-
|
| 345 |
-
|
| 346 |
-
|
| 347 |
-
|
| 348 |
-
|
| 349 |
-
)
|
| 350 |
return response
|
| 351 |
|
| 352 |
|
|
@@ -640,7 +662,7 @@ def cvtSummarytoXML(jsdata):
|
|
| 640 |
# print(result[1])
|
| 641 |
xmllink=google_sheet_to_xml.create_xml(documentname=result[1],dbPath=path)
|
| 642 |
return jsonify(xmllink)
|
| 643 |
-
|
| 644 |
#_________________________________________________________________________________________________________________________
|
| 645 |
#_________________________________________________________________________________________________________________________
|
| 646 |
|
|
|
|
| 1 |
from __future__ import print_function
|
| 2 |
+
from flask import Flask, render_template,request,flash , json, url_for,g , redirect , jsonify , send_file ,make_response
|
| 3 |
import os
|
| 4 |
import json
|
| 5 |
import fitz
|
|
|
|
| 34 |
from threading import Thread
|
| 35 |
import mainDBAlaa
|
| 36 |
import datetime
|
| 37 |
+
import doors_fasterrcnn
|
| 38 |
|
| 39 |
import ezdxf
|
| 40 |
app = Flask(__name__)
|
|
|
|
| 138 |
@app.route('/savebase64Img/',methods=["POST"])
|
| 139 |
def stringToRGB():
|
| 140 |
vv = eval(request.form.get('answers'))
|
| 141 |
+
|
| 142 |
if vv[5][2].startswith('3.2'):
|
| 143 |
print('3.2 section')
|
| 144 |
pdfpath,pdflink=tsadropboxretrieval.getPathtoPDF_File(nameofPDF=vv[0])
|
| 145 |
dbxTeam= tsadropboxretrieval.ADR_Access_DropboxTeam('user')
|
| 146 |
md, res =dbxTeam.files_download(path=pdfpath)
|
| 147 |
dataDoc = res.content
|
| 148 |
+
if 'file' not in request.files:
|
| 149 |
+
print('error, No file part in the request')
|
| 150 |
+
else:
|
| 151 |
+
file = request.files['file']
|
| 152 |
+
print('file done, measuring')
|
| 153 |
+
arr=measureproject(vv,dataDoc,0,file)
|
| 154 |
+
return jsonify(arr)
|
| 155 |
+
|
| 156 |
+
if vv[5][2].startswith('1.0'):
|
| 157 |
opencv_img,dataDoc = plan2img( str(vv[0]) )
|
| 158 |
+
if vv[1]==220:
|
| 159 |
+
imgdata = base64.b64decode(vv[6])
|
| 160 |
+
img=Image.open(io.BytesIO(imgdata))
|
| 161 |
+
opencv_img= cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR)
|
| 162 |
+
arr=measureproject(vv,dataDoc,opencv_img)
|
| 163 |
+
|
| 164 |
+
|
| 165 |
+
if vv[5][2].startswith('2.8'):
|
| 166 |
+
arr=measureproject(vv)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 167 |
return jsonify(arr)
|
| 168 |
|
| 169 |
@app.route('/2.1Trial/',methods=["POST"])
|
|
|
|
| 174 |
return arr
|
| 175 |
#MAIN FUNCTION -- calls python code to measure the chosen plan from the interface
|
| 176 |
# @app.route('/projecttomeasure/<jsdata>',methods=["GET","POST"])
|
| 177 |
+
def measureproject(result,dataDoc=0,img=0,dxffile=0):
|
| 178 |
colorarr=[]
|
| 179 |
# result = json.loads(jsdata)
|
| 180 |
pdfpath='/'
|
|
|
|
| 203 |
temp_filename = temp_file.name
|
| 204 |
print(temp_filename)
|
| 205 |
doc,outputimg, SimilarAreaDictionary ,spreadsheetId, spreadsheet_url , namepathArr , list1,hatched_areas=dxf__omar3_2.mainFunctionDrawImgPdf(dataDoc,temp_filename,result[4] , pdfpath,result[0])
|
|
|
|
| 206 |
dbPath='/TSA JOBS/ADR Test'+pdfpath+'Measured Plan/'
|
| 207 |
pdflink= tsadropboxretrieval.uploadanyFile(doc=doc,path=dbPath,pdfname=result[0]) #doc=doc,pdfname=path,pdfpath=pdfpath+'Measured Plan/'
|
| 208 |
|
| 209 |
_, buffer = cv2.imencode('.png', outputimg)
|
| 210 |
arr=[ base64.b64encode(buffer).decode('utf-8'),SimilarAreaDictionary.to_dict(), spreadsheet_url,spreadsheetId,[],list1.to_dict(),pdflink,hatched_areas,namepathArr]# , spreadsheetId, spreadsheet_url , list1.to_dict()]
|
| 211 |
+
################################# -2.8- #################################
|
| 212 |
+
elif result[5][2].startswith('2.8'): #section value - 2.8 floor finishes
|
| 213 |
+
#vv[0] array of pdf names
|
| 214 |
+
for i in range(len(result[0])):
|
| 215 |
+
dbpdfpath,pdflink=tsadropboxretrieval.getPathtoPDF_File(nameofPDF=result[0][i])
|
| 216 |
+
dbxTeam= tsadropboxretrieval.ADR_Access_DropboxTeam('user')
|
| 217 |
+
md, res =dbxTeam.files_download(path=dbpdfpath)
|
| 218 |
+
dataDoc = res.content
|
| 219 |
+
annotatedimg,pdf_document=doors_fasterrcnn.main_run(dataDoc,'combined.pth',result[0][i])
|
| 220 |
+
|
| 221 |
+
dbPath='/TSA JOBS/ADR Test'+pdfpath+'Measured Plan/'
|
| 222 |
+
pdflink= tsadropboxretrieval.uploadanyFile(doc=pdf_document,path=dbPath,pdfname='annotated-'+result[0][i]) #doc=doc,pdfname=path,pdfpath=pdfpath+'Measured Plan/'
|
| 223 |
+
print(pdflink)
|
| 224 |
+
|
| 225 |
+
_, buffer = cv2.imencode('.png', annotatedimg)
|
| 226 |
+
arr=[ base64.b64encode(buffer).decode('utf-8'),pdflink]# , spreadsheetId, spreadsheet_url , list1.to_dict()]
|
| 227 |
+
|
| 228 |
################################# -2.2- #################################
|
| 229 |
# elif result[5][2].startswith('2.2'): #section value - 2.2 rc slabs
|
| 230 |
#add here python code
|
|
|
|
| 354 |
|
| 355 |
@app.route('/get-pdf/<jsdata>')
|
| 356 |
def get_pdf(jsdata):
|
| 357 |
+
|
| 358 |
# Download PDF from Dropbox
|
| 359 |
pdfpath,pdflink=tsadropboxretrieval.getPathtoPDF_File(nameofPDF=jsdata)
|
| 360 |
dbxTeam= tsadropboxretrieval.ADR_Access_DropboxTeam('user')
|
| 361 |
md, res =dbxTeam.files_download(path=pdfpath)
|
| 362 |
+
|
| 363 |
+
doc = fitz.open("pdf",res.content)
|
| 364 |
+
page=doc[0]
|
| 365 |
+
# print('get pdf size::',page.mediabox)
|
| 366 |
+
|
| 367 |
+
pdf_data = res.content # Ensure this is your correct PDF data from Dropbox
|
| 368 |
+
response = make_response(io.BytesIO(pdf_data).getvalue())
|
| 369 |
+
response.headers.set('Content-Type', 'application/pdf')
|
| 370 |
+
response.headers.set('Content-Disposition', 'attachment', filename='filename.pdf') # Replace with your desired file name
|
| 371 |
+
# return response
|
|
|
|
| 372 |
return response
|
| 373 |
|
| 374 |
|
|
|
|
| 662 |
# print(result[1])
|
| 663 |
xmllink=google_sheet_to_xml.create_xml(documentname=result[1],dbPath=path)
|
| 664 |
return jsonify(xmllink)
|
| 665 |
+
|
| 666 |
#_________________________________________________________________________________________________________________________
|
| 667 |
#_________________________________________________________________________________________________________________________
|
| 668 |
|