Marthee commited on
Commit
4a0f3d6
·
verified ·
1 Parent(s): da9843d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -29
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
- else:
 
 
 
 
 
 
 
 
147
  opencv_img,dataDoc = plan2img( str(vv[0]) )
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
- if vv[1]==220:
156
- imgdata = base64.b64decode(vv[6])
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
- # Convert res.content to a BytesIO object
340
- pdf_stream = io.BytesIO(res.content)
341
- # Attempt to seek to the beginning of the BytesIO stream
342
- pdf_stream.seek(0)
343
- # Send file
344
- response = send_file(
345
- pdf_stream,
346
- as_attachment=True,
347
- mimetype='application/pdf',
348
- download_name='downloaded_file.pdf'
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