MediaWiki:ChatBot.js

De wiki.verde.rj.def.br
Revisão de 17h19min de 13 de fevereiro de 2025 por Jonh21 (discussão | contribs)
Ir para navegação Ir para pesquisar

Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Internet Explorer/Edge: PressioneCtrl enquanto clica Recarregar, ou Pressione Ctrl-F5
  • Opera: Pressione Ctrl-F5.
/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */

function decodeChatBot(encodedText) {
    return atob(encodedText);
}

mw.loader.using('jquery', function () {
    $(document).ready(function () {
        var myPlace = document.getElementById('tpl-example-placeholder');
        if (!myPlace) {
            console.error("Elemento tpl-example-placeholder não encontrado.");
            return;
        }

        // Criar botão inicial (💬)
        var toggleButton = document.createElement('button');
        toggleButton.innerHTML = "💬";
        toggleButton.className = "bot-toggle";
        document.body.appendChild(toggleButton);

        // Criar contêiner do chatbot (inicialmente oculto)
        var projectId = 'Y2hhdGJvdC00NDk0MTc=';
        var agentId = 'OGVjYTljZWQtNDc1MC00YjQzLWIxNjYtOWVkYTEwN2Q4M2M2';
        var chatContainer = document.createElement('div');
        chatContainer.className = "bot";
        chatContainer.id = "chatbot-container";
        chatContainer.innerHTML =
            '<df-messenger ' +
            'project-id="'+decodeChatBot(projectId)+'" ' +
            'agent-id="'+decodeChatBot(agentId)+'" ' +
            'language-code="en" ' +
            'max-query-length="-1">' +
            '<df-messenger-chat chat-title="chatBot Verde"></df-messenger-chat>' +
            '</df-messenger>';

        document.body.appendChild(chatContainer);

        // Criar botão de fechar (X) dentro do chat
        var closeButton = document.createElement('button');
        closeButton.innerHTML = "✖";
        closeButton.className = "chat-close-btn";
        closeButton.style.display = "none"; // Inicialmente escondido
        chatContainer.appendChild(closeButton); // Adiciona dentro do contêiner do chat

        // Criar o script do Dialogflow e aguardar carregamento
        var script = document.createElement('script');
        script.src = "https://www.gstatic.com/dialogflow-console/fast/df-messenger/prod/v1/df-messenger.js";
        script.onload = function () {
            console.log("Script do Dialogflow carregado.");
        };
        document.body.appendChild(script);

        // Alternar exibição do chatbot
        toggleButton.addEventListener("click", function () {
            chatContainer.style.display = "block";
            toggleButton.style.display = "none"; // Esconde o botão de 💬 quando abrir
            closeButton.style.display = "flex"; // Exibe o botão X
        });

        // Fechar o chatbot ao clicar no botão X
        closeButton.addEventListener("click", function () {
            chatContainer.style.display = "none";
            toggleButton.style.display = "flex"; // Reexibe o botão de 💬
            closeButton.style.display = "none"; // Esconde o botão X
        });
    });
});