seawolf2357 commited on
Commit
5a89bda
ยท
verified ยท
1 Parent(s): ab367d9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +94 -19
app.py CHANGED
@@ -445,18 +445,56 @@ def load_json_data():
445
  # ์ „์—ญ ๋ณ€์ˆ˜๋กœ ํ…œํ”Œ๋ฆฟ ๋ฐ์ดํ„ฐ ์บ์‹œ
446
  TEMPLATE_CACHE = None
447
 
448
- def load_session_history(selected_session=None):
449
  global TEMPLATE_CACHE
450
 
451
  try:
452
- if TEMPLATE_CACHE:
453
- return TEMPLATE_CACHE
454
-
455
- # ์ตœ์†Œํ•œ์˜ ์นด๋“œ๋งŒ ๋จผ์ € ๋กœ๋“œ (์ฒซ 12๊ฐœ)
456
- json_data = load_json_data()[:16]
 
 
 
 
 
 
 
 
 
457
 
458
  html_content = """
459
  <style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
460
  .prompt-grid {
461
  display: grid;
462
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
@@ -501,18 +539,35 @@ def load_session_history(selected_session=None):
501
  padding: 8px;
502
  border-radius: 4px;
503
  }
 
 
 
 
 
 
504
  </style>
505
- <div class="prompt-grid" id="promptGrid">
 
 
 
 
506
  """
507
 
508
- for item in json_data:
 
509
  html_content += f"""
510
- <div class="prompt-card" onclick="copyToInput(this)" data-prompt="{html.escape(item.get('prompt', ''))}">
511
- <img src="{item.get('image_url', '')}" class="card-image" loading="lazy" alt="{html.escape(item.get('name', ''))}">
512
- <div class="card-name">{html.escape(item.get('name', ''))}</div>
513
- <div class="card-prompt">{html.escape(item.get('prompt', ''))}</div>
514
- </div>
515
  """
 
 
 
 
 
 
 
 
 
516
 
517
  html_content += """
518
  <script>
@@ -525,12 +580,32 @@ def load_session_history(selected_session=None):
525
  document.querySelector('.session-drawer .close-btn').click();
526
  }
527
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
528
  </script>
529
- </div>
530
  """
531
 
532
- TEMPLATE_CACHE = gr.HTML(value=html_content)
533
- return TEMPLATE_CACHE
534
 
535
  except Exception as e:
536
  print(f"Error in load_session_history: {str(e)}")
@@ -686,16 +761,16 @@ with gr.Blocks(css_paths="app.css",theme=theme) as demo:
686
  outputs=[history_drawer]
687
  )
688
 
689
-
690
-
691
  # ์„ธ์…˜ ๋ฒ„ํŠผ ํด๋ฆญ ์ด๋ฒคํŠธ ์ˆ˜์ •
692
  sessionBtn.click(
693
  fn=lambda: (gr.update(open=True), load_session_history()),
694
  inputs=[],
695
  outputs=[session_drawer, session_history],
696
- queue=False # ํ ๋น„ํ™œ์„ฑํ™”๋กœ ์ฆ‰์‹œ ์‹คํ–‰
697
  )
698
 
 
 
699
  # ์„ธ์…˜ ๋“œ๋กœ์–ด ๋‹ซ๊ธฐ ์ด๋ฒคํŠธ ์ˆ˜์ •
700
  session_drawer.close(
701
  lambda: (gr.update(open=False), gr.HTML("")),
 
445
  # ์ „์—ญ ๋ณ€์ˆ˜๋กœ ํ…œํ”Œ๋ฆฟ ๋ฐ์ดํ„ฐ ์บ์‹œ
446
  TEMPLATE_CACHE = None
447
 
448
+ def load_session_history(template_type="best"):
449
  global TEMPLATE_CACHE
450
 
451
  try:
452
+ json_data = load_json_data()
453
+
454
+ # ๋ฐ์ดํ„ฐ๋ฅผ ์„ธ ์„น์…˜์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ
455
+ templates = {
456
+ "best": json_data[:12], # ๋ฒ ์ŠคํŠธ ํ…œํ”Œ๋ฆฟ
457
+ "trending": json_data[12:24], # ํŠธ๋ Œ๋”ฉ ํ…œํ”Œ๋ฆฟ
458
+ "new": json_data[24:36] # NEW ํ…œํ”Œ๋ฆฟ
459
+ }
460
+
461
+ titles = {
462
+ "best": "๐Ÿ† ๋ฒ ์ŠคํŠธ ํ…œํ”Œ๋ฆฟ",
463
+ "trending": "๐Ÿ”ฅ ํŠธ๋ Œ๋”ฉ ํ…œํ”Œ๋ฆฟ",
464
+ "new": "โœจ NEW ํ…œํ”Œ๋ฆฟ"
465
+ }
466
 
467
  html_content = """
468
  <style>
469
+ .template-nav {
470
+ display: flex;
471
+ gap: 10px;
472
+ margin: 20px;
473
+ position: sticky;
474
+ top: 0;
475
+ background: white;
476
+ z-index: 100;
477
+ padding: 10px 0;
478
+ border-bottom: 1px solid #eee;
479
+ }
480
+ .template-btn {
481
+ padding: 8px 16px;
482
+ border: 1px solid #1890ff;
483
+ border-radius: 4px;
484
+ cursor: pointer;
485
+ background: white;
486
+ color: #1890ff;
487
+ font-weight: bold;
488
+ transition: all 0.3s;
489
+ }
490
+ .template-btn:hover {
491
+ background: #1890ff;
492
+ color: white;
493
+ }
494
+ .template-btn.active {
495
+ background: #1890ff;
496
+ color: white;
497
+ }
498
  .prompt-grid {
499
  display: grid;
500
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
 
539
  padding: 8px;
540
  border-radius: 4px;
541
  }
542
+ .template-section {
543
+ display: none;
544
+ }
545
+ .template-section.active {
546
+ display: block;
547
+ }
548
  </style>
549
+ <div class="template-nav">
550
+ <button class="template-btn" onclick="showTemplate('best')">๐Ÿ† ๋ฒ ์ŠคํŠธ</button>
551
+ <button class="template-btn" onclick="showTemplate('trending')">๐Ÿ”ฅ ํŠธ๋ Œ๋”ฉ</button>
552
+ <button class="template-btn" onclick="showTemplate('new')">โœจ NEW</button>
553
+ </div>
554
  """
555
 
556
+ # ๊ฐ ์„น์…˜์˜ ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑ
557
+ for section, items in templates.items():
558
  html_content += f"""
559
+ <div class="template-section" id="{section}-templates">
560
+ <div class="prompt-grid">
 
 
 
561
  """
562
+ for item in items:
563
+ html_content += f"""
564
+ <div class="prompt-card" onclick="copyToInput(this)" data-prompt="{html.escape(item.get('prompt', ''))}">
565
+ <img src="{item.get('image_url', '')}" class="card-image" loading="lazy" alt="{html.escape(item.get('name', ''))}">
566
+ <div class="card-name">{html.escape(item.get('name', ''))}</div>
567
+ <div class="card-prompt">{html.escape(item.get('prompt', ''))}</div>
568
+ </div>
569
+ """
570
+ html_content += "</div></div>"
571
 
572
  html_content += """
573
  <script>
 
580
  document.querySelector('.session-drawer .close-btn').click();
581
  }
582
  }
583
+
584
+ function showTemplate(type) {
585
+ // ๋ชจ๋“  ์„น์…˜ ์ˆจ๊ธฐ๊ธฐ
586
+ document.querySelectorAll('.template-section').forEach(section => {
587
+ section.style.display = 'none';
588
+ });
589
+ // ๋ชจ๋“  ๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™”
590
+ document.querySelectorAll('.template-btn').forEach(btn => {
591
+ btn.classList.remove('active');
592
+ });
593
+
594
+ // ์„ ํƒ๋œ ์„น์…˜ ๋ณด์ด๊ธฐ
595
+ document.getElementById(type + '-templates').style.display = 'block';
596
+ // ์„ ํƒ๋œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”
597
+ event.target.classList.add('active');
598
+ }
599
+
600
+ // ์ดˆ๊ธฐ ๋กœ๋“œ์‹œ ๋ฒ ์ŠคํŠธ ํ…œํ”Œ๋ฆฟ ํ‘œ์‹œ
601
+ document.addEventListener('DOMContentLoaded', function() {
602
+ showTemplate('best');
603
+ document.querySelector('.template-btn').classList.add('active');
604
+ });
605
  </script>
 
606
  """
607
 
608
+ return gr.HTML(value=html_content)
 
609
 
610
  except Exception as e:
611
  print(f"Error in load_session_history: {str(e)}")
 
761
  outputs=[history_drawer]
762
  )
763
 
 
 
764
  # ์„ธ์…˜ ๋ฒ„ํŠผ ํด๋ฆญ ์ด๋ฒคํŠธ ์ˆ˜์ •
765
  sessionBtn.click(
766
  fn=lambda: (gr.update(open=True), load_session_history()),
767
  inputs=[],
768
  outputs=[session_drawer, session_history],
769
+ queue=False
770
  )
771
 
772
+
773
+
774
  # ์„ธ์…˜ ๋“œ๋กœ์–ด ๋‹ซ๊ธฐ ์ด๋ฒคํŠธ ์ˆ˜์ •
775
  session_drawer.close(
776
  lambda: (gr.update(open=False), gr.HTML("")),