您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Kenite AI: A Cutting-Edge Virtual Assistant 🤖 ✨
// ==UserScript== // @name Kenite IA 🚀✨ // @namespace http://tampermonkey.net/ // @version 4.0 // @description Kenite AI: A Cutting-Edge Virtual Assistant 🤖 ✨ // @match https://*.wikipedia.org/* // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @grant GM_xmlhttpRequest // ==/UserScript== (function() { 'use strict'; // 🎨 Estilos CSS GM_addStyle(` @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap'); @keyframes backgroundColorChange { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } @keyframes entradaSuave { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes loaderDot { 0%, 80%, 100% { transform: translateY(0); opacity: 0.5; } 40% { transform: translateY(-10px); opacity: 1; } } @keyframes sparkle { 0% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.2); opacity: 0.8; } 100% { transform: scale(1); opacity: 1; } } #ia-assistente { position: fixed; bottom: 20px; right: 20px; width: 420px; border-radius: 30px; font-family: 'Roboto', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; z-index: 9999; overflow: hidden; transition: all 0.5s cubic-bezier(0.68, -0.55, 0.27, 1.55); box-shadow: 0 10px 30px rgba(0,0,0,0.4); border: 3px solid rgba(255, 255, 255, 0.8); animation: entradaSuave 1s ease-out; } #ia-assistente.tema-padrao { background: linear-gradient(135deg, #4a3080, #7b3d91, #9d50bb, #6e48aa); background-size: 300% 300%; animation: entradaSuave 1s ease-out, backgroundColorChange 15s ease infinite; } #ia-assistente.tema-escuro { background: linear-gradient(135deg, #1a1a2e, #16213e, #0f3460, #1a1a2e); background-size: 300% 300%; animation: entradaSuave 1s ease-out, backgroundColorChange 15s ease infinite; } #ia-assistente.tema-claro { background: linear-gradient(135deg, #f0f0f5, #e6e6fa, #d8bfd8, #f0f0f5); background-size: 300% 300%; animation: entradaSuave 1s ease-out, backgroundColorChange 15s ease infinite; color: #333; } #ia-cabecalho { background-color: rgba(0,0,0,0.2); color: #ffffff; padding: 20px 25px; font-size: 26px; font-weight: bold; display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid rgba(255,255,255,0.1); } #ia-toggle { cursor: pointer; font-size: 30px; transition: transform 0.4s ease; } #ia-toggle.fechado { transform: rotate(180deg); } #ia-conteudo { padding: 25px; max-height: 550px; overflow-y: auto; color: #ffffff; scrollbar-width: none; -ms-overflow-style: none; } #ia-conteudo::-webkit-scrollbar { display: none; } #ia-input { width: 340px; padding: 15px; margin-bottom: 20px; border: none; border-radius: 15px; background-color: rgba(255,255,255,0.15); color: #ffffff; font-size: 18px; transition: all 0.3s ease; } #ia-input:focus { outline: none; box-shadow: 0 0 0 3px rgba(255,255,255,0.3); background-color: rgba(255,255,255,0.2); } #ia-input::placeholder { color: rgba(255,255,255,0.5); } #ia-resposta { background-color: rgba(255,255,255,0.1); padding: 20px; border-radius: 20px; margin-top: 20px; font-size: 17px; line-height: 1.7; transition: all 0.3s ease; text-shadow: 0 1px 2px rgba(0,0,0,0.1); font-family: 'Roboto', 'Segoe UI', Arial, sans-serif; font-size: 16px; line-height: 1.6; letter-spacing: 0.3px; } #ia-resposta p { margin-bottom: 15px; } #ia-resposta strong { font-weight: 600; color: #ffd700; } #ia-resposta em { font-style: italic; color: #add8e6; } #ia-resposta ul, #ia-resposta ol { margin-left: 20px; margin-bottom: 15px; } #ia-resposta li { margin-bottom: 5px; } #ia-resposta a { color: #ff69b4; text-decoration: none; border-bottom: 1px dotted #ff69b4; transition: all 0.3s ease; } #ia-resposta a:hover { color: #ff1493; border-bottom: 1px solid #ff1493; } #ia-loader { display: none; text-align: center; padding: 20px; height: 40px; } #ia-loader span { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background-color: rgba(255, 255, 255, 0.9); margin: 0 5px; animation: loaderDot 1.4s infinite ease-in-out both; } #ia-loader span:nth-child(1) { animation-delay: -0.32s; } #ia-loader span:nth-child(2) { animation-delay: -0.16s; } .titulo-resposta { font-size: 26px; font-weight: bold; color: #ffffff; margin-bottom: 20px; text-shadow: 2px 2px 4px rgba(0,0,0,0.3); letter-spacing: 0.5px; } .destaque { background-color: rgba(255,255,255,0.2); padding: 2px 6px; border-radius: 6px; font-weight: 500; color: #fff; text-shadow: 1px 1px 2px rgba(0,0,0,0.2); } .topicos-relacionados { margin-top: 25px; padding: 15px; background-color: rgba(255,255,255,0.1); border-radius: 20px; transition: all 0.3s ease; box-shadow: inset 0 0 10px rgba(255,255,255,0.1); } .topico-item { display: inline-block; margin: 6px; padding: 8px 15px; background-color: rgba(255,255,255,0.15); border-radius: 20px; cursor: pointer; transition: all 0.3s ease; font-weight: 500; text-shadow: 1px 1px 2px rgba(0,0,0,0.1); } .topico-item:hover { background-color: rgba(255,255,255,0.25); transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.1); } #ia-botoes { display: flex; justify-content: space-between; margin-top: 15px; } #ia-idioma-select, #ia-tema-select, .ia-botao { margin-top: 10px; padding: 7px; margin-right: 5px; border-radius: 10px; background-color: rgba(255,255,255,0.15); color: #ffffff; border: none; font-size: 16px; cursor: pointer; transition: all 0.3s ease; } #ia-idioma-select option, #ia-tema-select option { background-color: #4a3080; color: #ffffff; } .ia-botao:hover, #ia-idioma-select:hover, #ia-tema-select:hover { background-color: rgba(255,255,255,0.25); } #ia-historico { margin-top: 20px; padding: 15px; background-color: rgba(255,255,255,0.1); border-radius: 20px; max-height: 150px; overflow-y: auto; scrollbar-width: none; -ms-overflow-style: none; } #ia-historico::-webkit-scrollbar { display: none; } .historico-item { padding: 8px 12px; margin: 8px 0; background-color: rgba(255,255,255,0.15); border-radius: 10px; cursor: pointer; transition: all 0.3s ease; font-weight: 500; text-shadow: 1px 1px 2px rgba(0,0,0,0.1); } .historico-item:hover { background-color: rgba(255,255,255,0.25); transform: translateX(5px); } .emoji-title { font-size: 19px; margin-bottom: 15px; text-align: center; text-shadow: 0 2px 4px rgba(0,0,0,0.2); } .emoji-separator { font-size: 20px; text-align: center; margin: 10px 0; } .fancy-text { font-family: 'Georgia', serif; line-height: 1.8; letter-spacing: 0.5px; } .highlight-box { background: linear-gradient(45deg, rgba(255,255,255,0.1), rgba(255,255,255,0.2)); border-radius: 15px; padding: 15px; margin: 15px 0; box-shadow: 0 4px 6px rgba(0,0,0,0.1); } .fancy-list { list-style-type: none; padding-left: 0; } .fancy-list li { margin-bottom: 10px; padding-left: 25px; position: relative; } .fancy-list li::before { content: '🔹'; position: absolute; left: 0; top: 2px; } .sparkle { display: inline-block; animation: sparkle 1.5s infinite; } #ia-assistente.tema-claro #ia-cabecalho, #ia-assistente.tema-claro #ia-input, #ia-assistente.tema-claro #ia-resposta, #ia-assistente.tema-claro #ia-idioma-select, #ia-assistente.tema-claro #ia-tema-select, #ia-assistente.tema-claro .ia-botao, #ia-assistente.tema-claro .historico-item { color: #333; background-color: rgba(0,0,0,0.1); } #ia-assistente.tema-claro #ia-input::placeholder { color: rgba(0,0,0,0.5); } #ia-assistente.tema-claro #ia-resposta { color: #333; text-shadow: none; } #ia-assistente.tema-claro #ia-resposta strong { color: #0066cc; } #ia-assistente.tema-claro #ia-resposta em { color: #006400; } #ia-assistente.tema-claro #ia-resposta a { color: #8b008b; border-bottom: 1px dotted #8b008b; } #ia-assistente.tema-claro #ia-resposta a:hover { color: #4b0082; border-bottom: 1px solid #4b0082; } #ia-assistente.tema-claro .titulo-resposta { color: #333; text-shadow: 1px 1px 2px rgba(0,0,0,0.1); } #ia-assistente.tema-claro .destaque { background-color: rgba(0,0,0,0.1); color: #333; text-shadow: none; } .citacao { font-style: italic; color: #ffa07a; display: block; margin: 10px 0; padding-left: 15px; border-left: 3px solid #ffa07a; } .nota { background-color: rgba(255,255,0,0.2); padding: 10px; border-radius: 10px; margin: 10; } .definicao { font-weight: bold; text-decoration: underline; } .palavra-chave { font-weight: bold; color: #ff69b4; text-shadow: 0 0 3px rgba(255,105,180,0.5); } `); // 🏗️ Criar e adicionar o assistente ao DOM const assistente = document.createElement('div'); assistente.id = 'ia-assistente'; assistente.innerHTML = ` <div id="ia-cabecalho"> <span id="ia-titulo">🤖 Kenite IA</span> <span id="ia-toggle">▼</span> </div> <div id="ia-conteudo"> <input type="text" id="ia-input" placeholder="🔍 Faça uma pergunta..."> <div id="ia-resposta"></div> <div id="ia-loader"><span></span><span></span><span></span></div> <div id="ia-botoes"> <select id="ia-idioma-select"> <option value="pt">🇧🇷 Português</option> <option value="en">🇬🇧 English</option> <option value="es">🇪🇸 Español</option> <option value="fr">🇫🇷 Français</option> </select> <select id="ia-tema-select"> <option value="padrao">🌈 Tema Padrão</option> <option value="escuro">🌙 Tema Escuro</option> <option value="claro">☀️ Tema Claro</option> </select> <button id="ia-limpar-historico" class="ia-botao">🗑️ Limpar Histórico</button> </div> <div id="ia-historico"></div> </div> `; document.body.appendChild(assistente); // 🎛️ Elementos do DOM const toggle = document.getElementById('ia-toggle'); const conteudo = document.getElementById('ia-conteudo'); const input = document.getElementById('ia-input'); const resposta = document.getElementById('ia-resposta'); const loader = document.getElementById('ia-loader'); const titulo = document.getElementById('ia-titulo'); const idiomaSelect = document.getElementById('ia-idioma-select'); const temaSelect = document.getElementById('ia-tema-select'); const limparHistoricoBtn = document.getElementById('ia-limpar-historico'); const historicoDiv = document.getElementById('ia-historico'); // 🌐 Variáveis globais let idiomaAtual = GM_getValue('idiomaAssistente', 'pt'); let temaAtual = GM_getValue('temaAssistente', 'padrao'); let historico = GM_getValue('historicoAssistente', []); idiomaSelect.value = idiomaAtual; temaSelect.value = temaAtual; // 🗣️ Traduções const traducoes = { pt: { assistenteIA: '🤖 Kenite IA', placeholder: '🔍 Faça uma pergunta...', topicosRelacionados: '🔗 Tópicos Relacionados', semInformacoes: '❓ Desculpe, não encontrei informações sobre isso.', erro: '❌ Desculpe, ocorreu um erro ao buscar a informação.', limparHistorico: '🗑️ Limpar Histórico', historico: '📜 Histórico' }, en: { assistenteIA: '🤖 Kenite AI', placeholder: '🔍 Ask a question...', topicosRelacionados: '🔗 Related Topics', semInformacoes: '❓ Sorry, I couldn\'t find any information about that.', erro: '❌ Sorry, an error occurred while fetching the information.', limparHistorico: '🗑️ Clear History', historico: '📜 History' }, es: { assistenteIA: '🤖 Kenite IA', placeholder: '🔍 Haz una pregunta...', topicosRelacionados: '🔗 Temas Relacionados', semInformacoes: '❓ Lo siento, no encontré información sobre eso.', erro: '❌ Lo siento, ocurrió un error al buscar la información.', limparHistorico: '🗑️ Borrar Historial', historico: '📜 Historial' }, fr: { assistenteIA: '🤖 Kenite IA', placeholder: '🔍 Posez une question...', topicosRelacionados: '🔗 Sujets Connexes', semInformacoes: '❓ Désolé, je n\'ai pas trouvé d\'informations à ce sujet.', erro: '❌ Désolé, une erreur s\'est produite lors de la recherche d\'informations.', limparHistorico: '🗑️ Effacer l\'historique', historico: '📜 Historique' } }; // 🔄 Função para traduzir function traduzir(chave) { return traducoes[idiomaAtual][chave] || traducoes['en'][chave]; } // 🔍 Função para pesquisar na Wikipedia async function pesquisarWikipedia(query) { loader.style.display = 'block'; resposta.innerHTML = ''; try { const url = `https://${idiomaAtual}.wikipedia.org/w/api.php?action=query&format=json&prop=extracts|links&exintro=1&explaintext=1&titles=${encodeURIComponent(query)}&origin=*`; const response = await fetch(url); const data = await response.json(); const page = Object.values(data.query.pages)[0]; const extract = page.extract; const links = page.links || []; const respostaProcessada = processarResposta(extract, links); exibirRespostaAnimada(respostaProcessada); adicionarAoHistorico(query); } catch (error) { resposta.innerHTML = `<div class="erro-mensagem">${traduzir('erro')} ❌</div>`; } finally { loader.style.display = 'none'; } } // 🧠 Função para processar a resposta function processarResposta(texto, links) { let respostaProcessada = ''; if (texto) { respostaProcessada += `<div class="titulo-resposta">${traduzir('assistenteIA')}:</div>`; respostaProcessada += `<div class="resposta-conteudo">${aprimorarTextoIA(texto)}</div>`; } else { respostaProcessada += `<div class="sem-info">${traduzir('semInformacoes')}</div>`; } if (links.length > 0) { respostaProcessada += `<div class="topicos-relacionados"><strong>${traduzir('topicosRelacionados')}:</strong><br>`; respostaProcessada += links.slice(0, 5).map(link => `<span class="topico-item">🔹 ${link.title}</span>`).join(''); respostaProcessada += '</div>'; } return respostaProcessada; } // 🖌️ Função para aprimorar o texto da IA function aprimorarTextoIA(texto) { const emojis = { positivo: ['😊', '👍', '🎉', '✨', '🌟', '💖', '🙌', '🔥'], negativo: ['😔', '👎', '💔', '🚫', '⚠️', '😢', '🙅', '❌'], ideia: ['💡', '🤔', '🧠', '🔍', '📚', '🎓', '🏆', '🚀'], tempo: ['⏰', '🕒', '📅', '⌛', '🗓️', '🌙', '☀️', '🌈'], dinheiro: ['💰', '💸', '💲', '🤑', '💳', '💵', '🏦', '💹'], tecnologia: ['💻', '📱', '🤖', '🔧', '🖥️', '📡', '🛰️', '⚙️'], natureza: ['🌿', '🌳', '🌺', '🌊', '🏔️', '🌎', '🌞', '🍃'], comida: ['🍎', '🍕', '🍣', '🍔', '🍰', '🍓', '🥑', '🍜'], viagem: ['✈️', '🏖️', '🗺️', '🏞️', '🚆', '🚢', '🏰', '🎒'], esporte: ['⚽', '🏀', '🎾', '🏊', '🚴', '🏋️', '🥇', '🏆'] }; // Adicionar emojis Object.keys(emojis).forEach(categoria => { const regex = new RegExp(`\\b(${categoria}|${categoria}s)\\b`, 'gi'); texto = texto.replace(regex, match => { const emojiAleatorio = emojis[categoria][Math.floor(Math.random() * emojis[categoria].length)]; return `${emojiAleatorio} ${match}`; }); }); // Adicionar formatação avançada texto = texto.replace(/\b(importante|atenção|dica|nota)\b/gi, match => `<strong class="destaque sparkle">💥 ${match.toUpperCase()} 💥</strong>`); texto = texto.replace(/(".*?")/g, match => `<span class="citacao">💬 ${match} 💬</span>`); texto = texto.replace(/\b([A-Z][a-z]+ é|são|foram|era|eram)\b/g, match => `<span class="definicao">📌 ${match}</span>`); // Adicionar títulos e separadores com emojis texto = texto.replace(/^(.+)$/m, match => `<div class="emoji-title">🌟 ${match} 🌟</div>`); texto = texto.replace(/\n\n/g, '\n<div class="emoji-separator">✨✨✨</div>\n'); // Criar listas fancy texto = texto.replace(/^[-*]\s(.+)$/gm, '<li>$1</li>'); texto = texto.replace(/<li>(.+\n?)+/g, match => `<ul class="fancy-list">${match}</ul>`); // Adicionar caixas de destaque texto = texto.replace(/\[(.*?)\]/g, '<div class="highlight-box">$1</div>'); // Destacar palavras-chave const palavrasChave = ['importante', 'crucial', 'essencial', 'fundamental', 'chave', 'principal']; const regexPalavrasChave = new RegExp(`\\b(${palavrasChave.join('|')})\\b`, 'gi'); texto = texto.replace(regexPalavrasChave, match => `<span class="palavra-chave">🔑 ${match}</span>`); // Adicionar classe para texto fancy texto = `<div class="fancy-text">${texto}</div>`; return texto; } // 🎭 Função para exibir a resposta com animação function exibirRespostaAnimada(texto) { resposta.innerHTML = texto; resposta.style.display = 'block'; resposta.style.opacity = '0'; resposta.style.transform = 'translateY(20px)'; setTimeout(() => { resposta.style.opacity = '1'; resposta.style.transform = 'translateY(0)'; }, 50); resposta.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); } // 📜 Função para adicionar ao histórico function adicionarAoHistorico(query) { historico = historico.filter(item => item !== query); historico.unshift(query); if (historico.length > 10) historico.pop(); GM_setValue('historicoAssistente', historico); atualizarHistorico(); } // 🔄 Função para atualizar o histórico na interface function atualizarHistorico() { historicoDiv.innerHTML = `<div class="emoji-title"> ${traduzir('historico')}</div>`; historico.forEach(item => { const itemElement = document.createElement('div'); itemElement.className = 'historico-item'; itemElement.innerHTML = `🔍 ${item}`; itemElement.onclick = () => { input.value = item; pesquisarWikipedia(item); }; historicoDiv.appendChild(itemElement); }); } // 🎨 Função para mudar o tema function mudarTema(tema) { const assistente = document.getElementById('ia-assistente'); assistente.className = ''; // Remove todas as classes assistente.classList.add(`tema-${tema}`); GM_setValue('temaAssistente', tema); } // 🎧 Event listeners toggle.addEventListener('click', () => { conteudo.style.display = conteudo.style.display === 'none' ? 'block' : 'none'; toggle.textContent = conteudo.style.display === 'none' ? '▼' : '▲'; toggle.classList.toggle('fechado'); }); input.addEventListener('keypress', (e) => { if (e.key === 'Enter') { pesquisarWikipedia(input.value); } }); resposta.addEventListener('click', (e) => { if (e.target.classList.contains('topico-item')) { input.value = e.target.textContent.replace('🔹 ', ''); pesquisarWikipedia(input.value); } }); idiomaSelect.addEventListener('change', (e) => { idiomaAtual = e.target.value; GM_setValue('idiomaAssistente', idiomaAtual); titulo.textContent = traduzir('assistenteIA'); input.placeholder = traduzir('placeholder'); limparHistoricoBtn.textContent = traduzir('limparHistorico'); atualizarHistorico(); if (resposta.innerHTML) { pesquisarWikipedia(input.value); } }); temaSelect.addEventListener('change', (e) => { mudarTema(e.target.value); }); limparHistoricoBtn.addEventListener('click', () => { historico = []; GM_setValue('historicoAssistente', historico); atualizarHistorico(); }); // 🚀 Inicialização mudarTema(temaAtual); atualizarHistorico(); titulo.textContent = traduzir('assistenteIA'); input.placeholder = traduzir('placeholder'); limparHistoricoBtn.textContent = traduzir('limparHistorico'); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址