Lyon28 commited on
Commit
bb995b4
Β·
verified Β·
1 Parent(s): ca075a0

Upload index.html

Browse files
Files changed (1) hide show
  1. index.html +28 -43
index.html CHANGED
@@ -395,11 +395,11 @@
395
  .chat-container {
396
  height: 100vh;
397
  }
398
-
399
  .bubble {
400
  max-width: 85%;
401
  }
402
-
403
  .settings-popup {
404
  right: 8px;
405
  min-width: 260px;
@@ -535,8 +535,7 @@
535
  userName: 'Kamu',
536
  situation: 'Santai',
537
  location: 'Ruang tamu',
538
- maxLength: 150,
539
- sessionId: 'default_session' // Added session ID
540
  };
541
 
542
  // Emoji list
@@ -593,7 +592,7 @@
593
  // Settings inputs
594
  document.getElementById('charNameInput').addEventListener('input', updateCharName);
595
  document.getElementById('maxLengthRange').addEventListener('input', updateMaxLength);
596
-
597
  // Model select
598
  document.getElementById('modelSelect').addEventListener('change', function() {
599
  currentSettings.model = this.value;
@@ -657,11 +656,11 @@
657
  const start = input.selectionStart;
658
  const end = input.selectionEnd;
659
  const text = input.value;
660
-
661
  input.value = text.substring(0, start) + emoji + text.substring(end);
662
  input.selectionStart = input.selectionEnd = start + emoji.length;
663
  input.focus();
664
-
665
  document.getElementById('emojiPicker').classList.remove('show');
666
  }
667
 
@@ -677,10 +676,10 @@
677
  const chatBody = document.getElementById('chatBody');
678
  const messageDiv = document.createElement('div');
679
  messageDiv.className = `message ${isUser ? 'user' : 'char'}`;
680
-
681
  const time = showTime ? getCurrentTime() : '';
682
  const checkmarks = isUser ? '<span class="checkmarks">βœ“βœ“</span>' : '';
683
-
684
  messageDiv.innerHTML = `
685
  <div class="message-avatar"></div>
686
  <div class="bubble">
@@ -691,7 +690,7 @@
691
  </div>
692
  </div>
693
  `;
694
-
695
  chatBody.appendChild(messageDiv);
696
  chatBody.scrollTop = chatBody.scrollHeight;
697
  }
@@ -699,10 +698,10 @@
699
  function showTyping() {
700
  if (isTyping) return;
701
  isTyping = true;
702
-
703
  document.getElementById('status').textContent = 'mengetik...';
704
  document.getElementById('typingIndicator').classList.add('show');
705
-
706
  const chatBody = document.getElementById('chatBody');
707
  chatBody.scrollTop = chatBody.scrollHeight;
708
  }
@@ -710,7 +709,7 @@
710
  function hideTyping() {
711
  if (!isTyping) return;
712
  isTyping = false;
713
-
714
  document.getElementById('status').textContent = 'online';
715
  document.getElementById('typingIndicator').classList.remove('show');
716
  }
@@ -718,32 +717,32 @@
718
  async function sendMessage() {
719
  const input = document.getElementById('messageInput');
720
  const message = input.value.trim();
721
-
722
  if (!message) return;
723
-
724
  // Update settings from inputs
725
  currentSettings.charName = document.getElementById('charNameInput').value || 'Sayang';
726
  currentSettings.userName = document.getElementById('userNameInput').value || 'Kamu';
727
  currentSettings.situation = document.getElementById('situationInput').value || 'Santai';
728
  currentSettings.location = document.getElementById('locationInput').value || 'Ruang tamu';
729
-
730
  // Add user message
731
  addMessage(message, true);
732
  input.value = '';
733
  input.style.height = 'auto';
734
-
735
  // Show typing
736
  showTyping();
737
-
738
  // Disable send button
739
  const sendBtn = document.getElementById('sendBtn');
740
  sendBtn.disabled = true;
741
-
742
  try {
743
  const response = await fetch(`${API_BASE}/chat`, {
744
  method: 'POST',
745
  headers: {
746
- 'Content-Type': 'application/json'
747
  },
748
  body: JSON.stringify({
749
  message: message,
@@ -752,43 +751,29 @@
752
  location: currentSettings.location,
753
  char_name: currentSettings.charName,
754
  user_name: currentSettings.userName,
755
- max_length: currentSettings.maxLength,
756
- session_id: currentSettings.sessionId
757
  })
758
  });
759
-
760
  const data = await response.json();
761
-
762
  // Simulate typing delay
763
  await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 2000));
764
-
765
  hideTyping();
766
-
767
  if (data.status === 'success') {
768
- addMessage(data.response, 'character');
769
-
770
- // Update enhanced features if available
771
- if (data.enhanced_features) {
772
- enhancedFeatures = { ...enhancedFeatures, ...data.enhanced_features };
773
- updateEnhancedUI();
774
- }
775
-
776
- // Update status with enhanced info
777
- const relationshipInfo = data.enhanced_features ?
778
- ` | Relationship: ${data.enhanced_features.relationship_status} (${data.enhanced_features.relationship_level})` : '';
779
-
780
- document.getElementById('status').textContent =
781
- `Model: ${data.model} | Time: ${data.processing_time}${relationshipInfo}`;
782
  } else {
783
- addMessage(data.response || 'Maaf, ada masalah dengan sistem. Coba lagi ya!', 'character');
784
  }
785
-
786
  } catch (error) {
787
  hideTyping();
788
  console.error('Error:', error);
789
  addMessage('Ups, koneksi bermasalah. Coba lagi nanti ya! πŸ”„');
790
  }
791
-
792
  // Re-enable send button
793
  sendBtn.disabled = false;
794
  }
 
395
  .chat-container {
396
  height: 100vh;
397
  }
398
+
399
  .bubble {
400
  max-width: 85%;
401
  }
402
+
403
  .settings-popup {
404
  right: 8px;
405
  min-width: 260px;
 
535
  userName: 'Kamu',
536
  situation: 'Santai',
537
  location: 'Ruang tamu',
538
+ maxLength: 150
 
539
  };
540
 
541
  // Emoji list
 
592
  // Settings inputs
593
  document.getElementById('charNameInput').addEventListener('input', updateCharName);
594
  document.getElementById('maxLengthRange').addEventListener('input', updateMaxLength);
595
+
596
  // Model select
597
  document.getElementById('modelSelect').addEventListener('change', function() {
598
  currentSettings.model = this.value;
 
656
  const start = input.selectionStart;
657
  const end = input.selectionEnd;
658
  const text = input.value;
659
+
660
  input.value = text.substring(0, start) + emoji + text.substring(end);
661
  input.selectionStart = input.selectionEnd = start + emoji.length;
662
  input.focus();
663
+
664
  document.getElementById('emojiPicker').classList.remove('show');
665
  }
666
 
 
676
  const chatBody = document.getElementById('chatBody');
677
  const messageDiv = document.createElement('div');
678
  messageDiv.className = `message ${isUser ? 'user' : 'char'}`;
679
+
680
  const time = showTime ? getCurrentTime() : '';
681
  const checkmarks = isUser ? '<span class="checkmarks">βœ“βœ“</span>' : '';
682
+
683
  messageDiv.innerHTML = `
684
  <div class="message-avatar"></div>
685
  <div class="bubble">
 
690
  </div>
691
  </div>
692
  `;
693
+
694
  chatBody.appendChild(messageDiv);
695
  chatBody.scrollTop = chatBody.scrollHeight;
696
  }
 
698
  function showTyping() {
699
  if (isTyping) return;
700
  isTyping = true;
701
+
702
  document.getElementById('status').textContent = 'mengetik...';
703
  document.getElementById('typingIndicator').classList.add('show');
704
+
705
  const chatBody = document.getElementById('chatBody');
706
  chatBody.scrollTop = chatBody.scrollHeight;
707
  }
 
709
  function hideTyping() {
710
  if (!isTyping) return;
711
  isTyping = false;
712
+
713
  document.getElementById('status').textContent = 'online';
714
  document.getElementById('typingIndicator').classList.remove('show');
715
  }
 
717
  async function sendMessage() {
718
  const input = document.getElementById('messageInput');
719
  const message = input.value.trim();
720
+
721
  if (!message) return;
722
+
723
  // Update settings from inputs
724
  currentSettings.charName = document.getElementById('charNameInput').value || 'Sayang';
725
  currentSettings.userName = document.getElementById('userNameInput').value || 'Kamu';
726
  currentSettings.situation = document.getElementById('situationInput').value || 'Santai';
727
  currentSettings.location = document.getElementById('locationInput').value || 'Ruang tamu';
728
+
729
  // Add user message
730
  addMessage(message, true);
731
  input.value = '';
732
  input.style.height = 'auto';
733
+
734
  // Show typing
735
  showTyping();
736
+
737
  // Disable send button
738
  const sendBtn = document.getElementById('sendBtn');
739
  sendBtn.disabled = true;
740
+
741
  try {
742
  const response = await fetch(`${API_BASE}/chat`, {
743
  method: 'POST',
744
  headers: {
745
+ 'Content-Type': 'application/json',
746
  },
747
  body: JSON.stringify({
748
  message: message,
 
751
  location: currentSettings.location,
752
  char_name: currentSettings.charName,
753
  user_name: currentSettings.userName,
754
+ max_length: currentSettings.maxLength
 
755
  })
756
  });
757
+
758
  const data = await response.json();
759
+
760
  // Simulate typing delay
761
  await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 2000));
762
+
763
  hideTyping();
764
+
765
  if (data.status === 'success') {
766
+ addMessage(data.response);
 
 
 
 
 
 
 
 
 
 
 
 
 
767
  } else {
768
+ addMessage('Maaf, ada masalah dengan sistem. Coba lagi ya! πŸ˜…');
769
  }
770
+
771
  } catch (error) {
772
  hideTyping();
773
  console.error('Error:', error);
774
  addMessage('Ups, koneksi bermasalah. Coba lagi nanti ya! πŸ”„');
775
  }
776
+
777
  // Re-enable send button
778
  sendBtn.disabled = false;
779
  }