// ==UserScript== // @name Unlock Brainly Answers // @name:pt-BR Desbloquear Respostas Brainly // @name:en-US Unlock Brainly Answers // @name:es-ES Desbloquear Respuestas de Brainly // @name:fr-FR Débloquer les Réponses de Brainly // @name:zh-CN 解锁 Brainly 答案 // @name:ar-SA فتح إجابات Brainly // @namespace DesbloquearRespostasBrainly // @version 1.0 // @description This script allows you to unlock the main answer to Brainly questions in a simple and direct way, without simulating a Pro account. It uses a technique based on simulated anonymous access, bypassing view restrictions and displaying the full answer — no login or incognito tab required. // @description:pt-Br Este script permite desbloquear a resposta principal das perguntas no Brainly de forma simples e direta, sem simular uma conta Pro. Ele utiliza uma técnica baseada em acesso anônimo simulado, contornando as restrições de visualização e exibindo a resposta completa — sem precisar fazer login ou abrir guia anônima. // @description:zh-Cn 该脚本可以简单直接地解锁 Brainly 上问题的主要答案,无需模拟 Pro 账户。它使用一种模拟匿名访问的技术,绕过查看限制并显示完整答案 —— 无需登录或打开无痕窗口。 // @description:es-ES Este script permite desbloquear la respuesta principal de las preguntas en Brainly de forma simple y directa, sin simular una cuenta Pro. Utiliza una técnica basada en el acceso anónimo simulado, eludiendo las restricciones de visualización y mostrando la respuesta completa — sin necesidad de iniciar sesión ni abrir una pestaña de incógnito. // @homepage https://ko-fi.com/l4pisd4silv4# // @license MIT // @author L4pisD4Silv4 // @match *://*.brainly.com.br/* // @match *://*.brainly.com/* // @match *://brainly.com/* // @match *://brainly.co.id/* // @match *://brainly.in/* // @match *://brainly.ph/* // @match *://brainly.ro/* // @match *://brainly.lat/* // @match *://brainly.pl/* // @icon https://img.icons8.com/?size=512&id=DBQ34fANpy5j&format=png // @grant GM_xmlhttpRequest // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_addStyle // @grant GM_getValue // @grant GM_setValue // @connect * // @run-at document-start // @downloadURL none // ==/UserScript== (function() { 'use strict'; const languageData = { 'pt-BR': { name: 'Português Brasil', image: 'https://i.imgur.com/q9l7QVj.png', menu: { language: 'Idioma', support: 'Apoiar', reload: '🔁 Recarregar Página' } }, 'en-US': { name: 'English', image: 'https://i.imgur.com/luel00S.png', menu: { language: 'Language', support: 'Support', reload: '🔁 Reload Page' } }, 'es-ES': { name: 'Español', image: 'https://i.imgur.com/Tcm93e3.png', menu: { language: 'Idioma', support: 'Apoyar', reload: '🔁 Recargar página' } }, 'fr-FR': { name: 'Français', image: 'https://i.imgur.com/iTSrDGI.png', menu: { language: 'Langue', support: 'Soutenir', reload: '🔁 Recharger la page' } }, 'zh-CN': { name: '中文', image: 'https://i.imgur.com/eac2uZV.png', menu: { language: '语言', support: '支持', reload: '🔁 重新加载页面' } }, 'ar-SA': { name: 'العربية', image: 'https://i.imgur.com/pHyXvRh.png', menu: { language: 'اللغة', support: 'الدعم', reload: '🔁 إعادة تحميل الصفحة' } } }; let currentLang = GM_getValue('lang') || Object.keys(languageData)[0]; let menuIDs = { language: null, support: null, reload: null }; const initializeUnlocker = () => { const limparTudo = () => { document.cookie.split(";").forEach(cookie => { const [key] = cookie.split('='); if (key.trim().match(/^(session|auth)/i)) { document.cookie = `${key}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`; } }); try { localStorage.clear(); indexedDB.deleteDatabase('Brainly'); } catch(e) {} window.__BRAZIL_SESSION__ = undefined; window.__USER_DATA__ = undefined; }; const originalOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function(method, url) { if (url.includes('/api/auth/check')) { this.addEventListener('load', () => { if (this.readyState === 4) { Object.defineProperty(this, 'responseText', { value: JSON.stringify({ isAuthenticated: false }) }); } }); } originalOpen.apply(this, arguments); }; const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { mutation.addedNodes.forEach(node => { if (node.nodeType === 1) { if (node.classList?.contains('sg-modal') || node.classList?.contains('paywall')) { node.remove(); } if (node.classList?.contains('brn-answer__content--locked')) { node.style.cssText = 'filter:none!important; opacity:1!important;'; } } }); }); }); const css = ` .brn-answer__content--locked, .js-paywall, .blurred-container, .sg-overlay { filter: none !important; opacity: 1 !important; pointer-events: auto !important; } [data-test="paid-content"] { display: block !important; } `; document.head.insertAdjacentHTML('beforeend', ``); limparTudo(); observer.observe(document.body, { childList: true, subtree: true }); setInterval(limparTudo, 3000); }; const initializeLanguageSystem = () => { const updateLanguage = (lang) => { currentLang = lang; GM_setValue('lang', lang); GM_unregisterMenuCommand(menuIDs.language); GM_unregisterMenuCommand(menuIDs.support); GM_unregisterMenuCommand(menuIDs.reload); registerMenuCommands(); }; const registerMenuCommands = () => { menuIDs.language = GM_registerMenuCommand( languageData[currentLang].menu.language, showLanguageModal ); menuIDs.support = GM_registerMenuCommand( languageData[currentLang].menu.support, showSupportModal ); menuIDs.reload = GM_registerMenuCommand( languageData[currentLang].menu.reload, () => window.location.reload(true) ); }; const showLanguageModal = () => { const modal = document.createElement('div'); modal.className = 'lang-modal'; Object.keys(languageData).forEach(lang => { const btn = document.createElement('button'); btn.className = 'lang-option'; btn.textContent = languageData[lang].name; btn.onclick = () => { updateLanguage(lang); modal.remove(); }; modal.appendChild(btn); }); document.body.appendChild(modal); document.addEventListener('click', (e) => { if (!modal.contains(e.target)) modal.remove(); }); }; const showSupportModal = () => { const container = document.createElement('div'); container.style.cssText = ` position: fixed !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 1600px !important; height: 1000px !important; z-index: 99999 !important; `; const overlay = document.createElement('div'); overlay.style.cssText = ` position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; background: rgba(0,0,0,0.6) !important; backdrop-filter: blur(5px) !important; z-index: 99998 !important; `; const bgImage = document.createElement('img'); bgImage.src = languageData[currentLang].image; bgImage.style.cssText = ` position: absolute !important; width: 100% !important; height: 100% !important; object-fit: cover !important; `; const kofiBtn = document.createElement('img'); kofiBtn.src = 'https://i.imgur.com/T32os95.png'; kofiBtn.className = 'hover-zoom'; kofiBtn.style.cssText = ` position: absolute !important; left: 956px !important; top: 356px !important; width: 426px !important; height: 116px !important; cursor: pointer !important; `; kofiBtn.onclick = () => window.open('https://ko-fi.com/l4pisd4silv4#', '_blank'); const exitBtn = document.createElement('img'); exitBtn.src = 'https://i.imgur.com/HbC1dXb.png'; exitBtn.className = 'hover-zoom'; exitBtn.style.cssText = ` position: absolute !important; left: 1445px !important; top: 855px !important; width: 52px !important; height: 52px !important; cursor: pointer !important; `; exitBtn.onclick = () => { container.remove(); overlay.remove(); }; container.appendChild(bgImage); container.appendChild(kofiBtn); container.appendChild(exitBtn); document.body.appendChild(overlay); document.body.appendChild(container); overlay.onclick = () => { container.remove(); overlay.remove(); }; }; GM_addStyle(` .lang-modal { position: fixed !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 300px !important; padding: 10px !important; background: #1e1e1e !important; border: 1px solid #444 !important; border-radius: 8px !important; z-index: 99999 !important; color: #fff !important; } .lang-option { margin: 6px 0 !important; padding: 12px !important; width: 100% !important; border: none !important; border-radius: 6px !important; background: #333 !important; color: #fff !important; cursor: pointer !important; transition: all 0.3s ease !important; } .lang-option:hover { background: #444 !important; transform: scale(1.02) !important; } .hover-zoom { transition: transform 0.2s ease !important; cursor: pointer !important; } .hover-zoom:hover { transform: scale(1.15) !important; } `); registerMenuCommands(); }; if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', () => { initializeUnlocker(); initializeLanguageSystem(); }); } else { initializeUnlocker(); initializeLanguageSystem(); } setInterval(() => { if (document.querySelector('.brn-answer__content--locked')) { window.location.reload(true); } }, 5000); })();