seawolf2357 commited on
Commit
0626714
ยท
verified ยท
1 Parent(s): f3fff63

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -63
app.py CHANGED
@@ -1311,51 +1311,38 @@ document.addEventListener('keydown', function(e) {{
1311
  }}
1312
  }});
1313
 
1314
- // postMessage๋กœ ๋ฏธ๋””์–ด ๋ฐ์ดํ„ฐ ์ˆ˜์‹ 
1315
- window.addEventListener('message', function(e) {{
1316
- console.log('Received message:', e.data ? e.data.type : 'unknown');
1317
- if (e.data && e.data.type === 'loadMedia' && e.data.encoded) {{
1318
- try {{
1319
- var jsonStr = atob(e.data.encoded);
1320
- var mediaList = JSON.parse(jsonStr);
1321
- console.log('Loading media from postMessage:', mediaList.length, 'items');
1322
- mediaList.forEach(function(m, idx) {{
1323
- console.log('Adding media:', idx, m.name, m.type);
1324
- addMedia(m.name, m.type, m.dataUrl, m.filePath);
1325
- }});
1326
- stat('๋ฏธ๋””์–ด ' + mediaList.length + '๊ฐœ ๋กœ๋“œ๋จ');
1327
- }} catch(err) {{
1328
- console.error('Decode error:', err);
1329
- stat('๋ฏธ๋””์–ด ๋กœ๋“œ ์˜ค๋ฅ˜');
1330
- }}
1331
- }}
1332
- }});
1333
-
1334
  // ์ดˆ๊ธฐํ™”
1335
  init();
1336
  renderTL();
1337
  stat('์ค€๋น„๋จ | ๋‹จ์ถ•ํ‚ค: Space(์žฌ์ƒ), Delete(์‚ญ์ œ), โ†โ†’(์ด๋™)');
1338
 
1339
- try {{
 
1340
  var encodedData = '{media_data}';
1341
- console.log('Encoded data length:', encodedData.length);
1342
- if (encodedData && encodedData.length > 10) {{
1343
- var jsonStr = atob(encodedData);
1344
- var initData = JSON.parse(jsonStr);
1345
- console.log('Parsed initData:', initData.length, 'items');
1346
- if (initData && Array.isArray(initData) && initData.length > 0) {{
1347
- initData.forEach(function(m, idx) {{
1348
- console.log('Adding media:', idx, m.name, m.type);
1349
- addMedia(m.name, m.type, m.dataUrl, m.filePath);
1350
- }});
 
 
 
 
 
 
 
 
 
1351
  }}
1352
  }} else {{
1353
- console.log('No encoded data, waiting for postMessage...');
1354
  }}
1355
- }} catch(e) {{
1356
- console.error('Init error:', e);
1357
- stat('postMessage ๋Œ€๊ธฐ ์ค‘...');
1358
- }}
1359
  </script>
1360
  </body>
1361
  </html>'''
@@ -1417,34 +1404,18 @@ def process_files(files):
1417
 
1418
  def make_editor(media_list):
1419
  """์—๋””ํ„ฐ HTML ์ƒ์„ฑ"""
 
1420
  j = json.dumps(media_list, ensure_ascii=False)
1421
- # ์—๋””ํ„ฐ HTML (๋ฐ์ดํ„ฐ ์—†์ด)
1422
- h = get_editor_html("W10=").replace("'", "&#39;")
1423
- # JavaScript๋กœ ๋ฐ์ดํ„ฐ ์ฃผ์ž…
1424
- inject_script = ""
1425
- if media_list:
1426
- # base64๋กœ ์ธ์ฝ”๋”ฉํ•ด์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌ
1427
- encoded = base64.b64encode(j.encode('utf-8')).decode('ascii')
1428
- inject_script = f'''
1429
- <script>
1430
- (function() {{
1431
- var checkIframe = setInterval(function() {{
1432
- var iframe = document.querySelector('iframe');
1433
- if (iframe && iframe.contentWindow) {{
1434
- try {{
1435
- iframe.contentWindow.postMessage({{type: 'loadMedia', encoded: '{encoded}'}}, '*');
1436
- console.log('Sent encoded media data');
1437
- clearInterval(checkIframe);
1438
- }} catch(e) {{
1439
- console.error('PostMessage error:', e);
1440
- }}
1441
- }}
1442
- }}, 500);
1443
- setTimeout(function() {{ clearInterval(checkIframe); }}, 10000);
1444
- }})();
1445
- </script>
1446
- '''
1447
- return f"<iframe srcdoc='{h}' style='width:100%;height:700px;border:none;border-radius:10px'></iframe>{inject_script}"
1448
 
1449
 
1450
  def export_mp4(export_json):
 
1311
  }}
1312
  }});
1313
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1314
  // ์ดˆ๊ธฐํ™”
1315
  init();
1316
  renderTL();
1317
  stat('์ค€๋น„๋จ | ๋‹จ์ถ•ํ‚ค: Space(์žฌ์ƒ), Delete(์‚ญ์ œ), โ†โ†’(์ด๋™)');
1318
 
1319
+ // ๋ฏธ๋””์–ด ๋ฐ์ดํ„ฐ ๋กœ๋“œ
1320
+ (function() {{
1321
  var encodedData = '{media_data}';
1322
+ console.log('[VideoEditor] Encoded data length:', encodedData.length);
1323
+
1324
+ if (encodedData && encodedData.length > 4) {{
1325
+ try {{
1326
+ var jsonStr = atob(encodedData);
1327
+ console.log('[VideoEditor] Decoded JSON length:', jsonStr.length);
1328
+ var mediaList = JSON.parse(jsonStr);
1329
+ console.log('[VideoEditor] Parsed media count:', mediaList.length);
1330
+
1331
+ if (mediaList && mediaList.length > 0) {{
1332
+ mediaList.forEach(function(m, idx) {{
1333
+ console.log('[VideoEditor] Adding:', idx, m.name, m.type);
1334
+ addMedia(m.name, m.type, m.dataUrl, m.filePath);
1335
+ }});
1336
+ stat('๋ฏธ๋””์–ด ' + mediaList.length + '๊ฐœ ๋กœ๋“œ๋จ');
1337
+ }}
1338
+ }} catch(e) {{
1339
+ console.error('[VideoEditor] Parse error:', e);
1340
+ stat('๋ฏธ๋””์–ด ๋กœ๋“œ ์˜ค๋ฅ˜: ' + e.message);
1341
  }}
1342
  }} else {{
1343
+ console.log('[VideoEditor] No media data');
1344
  }}
1345
+ }})();
 
 
 
1346
  </script>
1347
  </body>
1348
  </html>'''
 
1404
 
1405
  def make_editor(media_list):
1406
  """์—๋””ํ„ฐ HTML ์ƒ์„ฑ"""
1407
+ # ๋ฏธ๋””์–ด ๋ฐ์ดํ„ฐ๋ฅผ base64๋กœ ์ธ์ฝ”๋”ฉ
1408
  j = json.dumps(media_list, ensure_ascii=False)
1409
+ encoded = base64.b64encode(j.encode('utf-8')).decode('ascii')
1410
+
1411
+ # HTML ์ƒ์„ฑ (์ธ์ฝ”๋”ฉ๋œ ๋ฐ์ดํ„ฐ ํฌํ•จ)
1412
+ h = get_editor_html(encoded)
1413
+
1414
+ # srcdoc ์†์„ฑ(double quote)์„ ์œ„ํ•ด double quote๋งŒ ์ด์Šค์ผ€์ดํ”„
1415
+ # single quote๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€ (JavaScript ๋ฌธ์ž์—ด ๋“ฑ์—์„œ ์‚ฌ์šฉ)
1416
+ h = h.replace('"', '&quot;')
1417
+
1418
+ return f'<iframe srcdoc="{h}" style="width:100%;height:700px;border:none;border-radius:10px"></iframe>'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1419
 
1420
 
1421
  def export_mp4(export_json):