// ==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
// ==/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', `<style>${css}</style>`);
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);
})();