falcon

Listen for postMessage from parent, log to console, enter it into the chat input, and submit

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey, το Greasemonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

You will need to install an extension such as Tampermonkey to install this script.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Userscripts για να εγκαταστήσετε αυτόν τον κώδικα.

You will need to install an extension such as Tampermonkey to install this script.

Θα χρειαστεί να εγκαταστήσετε μια επέκταση διαχείρισης κώδικα χρήστη για να εγκαταστήσετε αυτόν τον κώδικα.

(Έχω ήδη έναν διαχειριστή κώδικα χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Έχω ήδη έναν διαχειριστή στυλ χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

// ==UserScript==
// @name         falcon
// @description  Listen for postMessage from parent, log to console, enter it into the chat input, and submit
// @match        https://chat.falconllm.tii.ae/*
// @version 0.0.1.20251209141918
// @namespace https://greasyfork.org/users/1435046
// ==/UserScript==

(function () {
  'use strict';

  window.addEventListener("message", (event) => {

    if (event.data && event.data.type === 'newChatButtonClicked') {

      // Click the "New Chat" button
      const newChatButton = document.querySelector('a[href="/"]');
      if (newChatButton) {
        newChatButton.click();
                         }
      return;
    }

if (event.data === 'reload') {
window.location.reload();
}

    let falconCssStyleId = document.getElementById('falconCssStyleId');

    let chatMessageInput = document.querySelector('div:has(> div > div > div > div > form > div > div > textarea#chat-input)');
    let chatMessageInputRule = 'div:has(> div > div > div > div > form > div > div > textarea#chat-input) {display: none !important;}';

    let header = document.querySelector('nav.sticky:has(> div > div > div > div > div[aria-label="Controls"])');
    let headerRule = 'nav.sticky:has(> div > div > div > div > div[aria-label="Controls"]) {display: none !important;}';

    //if event data type is defaultChatMessageInputDisplay
    if (event.data?.type === 'defaultChatMessageInputDisplay') {
      console.log('default');
      if (chatMessageInput) {

        falconCssStyleId.innerHTML = falconCssStyleId.innerHTML.replace(`${chatMessageInputRule}`, '');

        falconCssStyleId.innerHTML = falconCssStyleId.innerHTML.replace(`${headerRule}`, '');


        //return
        return;
      }
    }

    if (event.data?.type === 'customizeChatMessageInputDisplay') {
      console.log('customize');
      if (chatMessageInput) {

        falconCssStyleId.innerHTML += `${chatMessageInputRule}`
        falconCssStyleId.innerHTML += `${headerRule}`


        //return
        return;
      }
    }

    if (event.data?.type === "prompt") {
  const input = document.getElementById("chat-input");
  const button = document.getElementById("send-message-button");

  // Set the textarea value
  input.value = event.data.content;

  // Fire an input event so React updates state
  input.dispatchEvent(new Event("input", { bubbles: true }));

  const observer = new MutationObserver(() => {
    if (!button.hasAttribute("disabled")) {
      button.click();
      observer.disconnect();
    }
  });

  observer.observe(button, { attributes: true, attributeFilter: ["disabled"] });
}

  });
})();