- // ==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);
- })();