acecalisto3 commited on
Commit
8301ef9
·
verified ·
1 Parent(s): c7e50ec

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -12
app.py CHANGED
@@ -252,18 +252,38 @@ class FileProcessor:
252
 
253
  def generate_qr(json_data):
254
  """Generate QR code from JSON data and return the file path."""
255
- qr = qrcode.QRCode(
256
- version=40, # Force maximum version
257
- error_correction=qrcode.constants.ERROR_CORRECT_L, # Use lower error correction
258
- box_size=10,
259
- border=4,
260
- )
261
- qr.add_data(json_data)
262
- qr.make(fit=True)
263
- img = qr.make_image(fill_color="black", back_color="white")
264
- temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".png")
265
- img.save(temp_file.name)
266
- return temp_file.name
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
267
 
268
  def create_interface():
269
  """Create a comprehensive Gradio interface with advanced features"""
 
252
 
253
  def generate_qr(json_data):
254
  """Generate QR code from JSON data and return the file path."""
255
+ try:
256
+ # Try first with automatic version selection
257
+ qr = qrcode.QRCode(
258
+ error_correction=qrcode.constants.ERROR_CORRECT_L,
259
+ box_size=10,
260
+ border=4,
261
+ )
262
+ qr.add_data(json_data)
263
+ qr.make(fit=True)
264
+
265
+ img = qr.make_image(fill_color="black", back_color="white")
266
+ temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".png")
267
+ img.save(temp_file.name)
268
+ return temp_file.name
269
+ except Exception as e:
270
+ # If the data is too large for a QR code
271
+ logger.error(f"QR generation error: {e}")
272
+
273
+ # Create a simple QR with error message
274
+ qr = qrcode.QRCode(
275
+ version=1,
276
+ error_correction=qrcode.constants.ERROR_CORRECT_L,
277
+ box_size=10,
278
+ border=4,
279
+ )
280
+ qr.add_data("Error: Data too large for QR code")
281
+ qr.make(fit=True)
282
+
283
+ img = qr.make_image(fill_color="black", back_color="white")
284
+ temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".png")
285
+ img.save(temp_file.name)
286
+ return temp_file.name
287
 
288
  def create_interface():
289
  """Create a comprehensive Gradio interface with advanced features"""