-
-
Save thihxm/ea2779cec517f3c126d34c8b374b409d to your computer and use it in GitHub Desktop.
// ==UserScript== | |
// @name No Blur RespondeAí | |
// @namespace thihxm | |
// @match *://*.respondeai.com.br/* | |
// @downloadURL https://gist.githubusercontent.com/thihxm/ea2779cec517f3c126d34c8b374b409d/raw/NoBlurRespondeAi.js | |
// @run-at document-idle | |
// @grant none | |
// @version 2.9 | |
// @author thihxm | |
// @description Libera o acesso aos conteúdos da plataforma sem precisar fazer login | |
// ==/UserScript== | |
(function() { | |
'use strict'; | |
const removePaywall = () => { | |
document.querySelectorAll('login-disclaimer').forEach((disclaimer) => { | |
disclaimer.remove(); | |
}); | |
document.querySelectorAll('overlay-disclaimer').forEach((disclaimer) => { | |
disclaimer.remove(); | |
}); | |
document.querySelectorAll('.blur').forEach((element) => { | |
element.classList.remove('blur'); | |
}); | |
document.querySelectorAll('.expand-btn').forEach((element) => { | |
if (element.innerHTML === 'MOSTRAR SOLUÇÃO COMPLETA') { | |
element.remove(); | |
} | |
}); | |
document.querySelectorAll('.ReactModalPortal').forEach((disclaimer) => { | |
disclaimer.remove(); | |
document.body.classList.remove('ReactModal__Body--open'); | |
}); | |
const loginAlertTexts = Array.from(document.querySelectorAll('h2')).filter(el => el.innerText.includes('Loga aí pra continuar')); | |
loginAlertTexts.forEach(loginAlert => { | |
loginAlert.remove(); | |
}); | |
const exerciseContainer = document.querySelector('div[class^="BookEditionPage__Container"]'); | |
if (exerciseContainer) observerPaywall.observe(exerciseContainer, observerPaywallConfig); | |
document.querySelectorAll('.paywall').forEach(el => { | |
el.classList.replace('paywall', 'autoHeight'); | |
}); | |
const paywallElements = document.querySelectorAll('[class*="ExpandPaywallContainer"]'); | |
paywallElements.forEach(el => { | |
el.remove(); | |
}); | |
const paywallOverlays = document.querySelectorAll('[class*="PaywallOverlayContainer"]'); | |
paywallOverlays.forEach(el => { | |
el.parentNode.style.height = 'auto !important'; | |
el.remove(); | |
}); | |
const paywallHeadings = document.querySelectorAll('[class*="PaywallHeadingsSection"]'); | |
paywallHeadings.forEach(el => { | |
el.remove(); | |
}); | |
} | |
window.removePaywall = removePaywall; | |
const observerStyle = new MutationObserver(function(mutations) { | |
mutations.forEach(function(mutation) { | |
mutation.target.removeAttribute("style"); | |
}); | |
}); | |
const observerPaywall = new MutationObserver(function(mutations) { | |
mutations.forEach(function(mutation) { | |
removePaywall(); | |
}); | |
}); | |
const observerStyleConfig = { | |
attributes: true, | |
attributeOldValue: true, | |
} | |
const observerPaywallConfig = { | |
...observerStyleConfig, | |
childList: true, | |
} | |
const overlay = document.querySelector('.login-overlay'); | |
const main_wrapper = document.querySelector('.main-wrapper') || document.querySelector('.main-container'); | |
const btn = document.querySelector('#exercise-expand-button'); | |
const style = document.createElement('style'); | |
style.innerHTML = | |
'@layer importantOverrides {' + | |
'* {' + | |
'-webkit-filter: none !important;' + | |
'filter: none !important;' + | |
'}' + | |
'.autoHeight {' + | |
'height: auto !important;' + | |
'}' + | |
'.content-card * {' + | |
'user-select: auto !important;' + | |
'}' + | |
'.blur {' + | |
'-webkit-filter: none !important;' + | |
'filter: none !important;' + | |
'pointer-events: all;' + | |
'}' + | |
'}'; | |
document.querySelector('head').appendChild(style); | |
if (overlay) observerStyle.observe(overlay, observerStyleConfig); | |
if (main_wrapper) observerStyle.observe(main_wrapper, observerStyleConfig); | |
observerPaywall.observe(document.body, observerStyleConfig); | |
window.onload = () => { | |
removePaywall(); | |
} | |
btn && btn.parentNode.removeChild(btn); | |
overlay && overlay.parentNode.removeChild(overlay); | |
})(); |
Eu fiz um escript bem simples para tentar burlar isso. Segue o link: https://github.com/brenovambaster/responde-ai
Eu fiz um escript bem simples para tentar burlar isso. Segue o link: https://github.com/brenovambaster/responde-ai
ah sim, breno. fiz aqui e funcionou... muito obrigado, tenho prova semana q vem e as resoluçoes no halliday ajudam bastante o estudo. abraços!
Bons estudos!
boa tarde, thiago. o site atualizou, quebrando o script atual. existe a possibilidade de vc atualizar o script? agradeço desde já
Bom dia, @caioba1. O pessoal do RespondeAí atualizou no modo que eles apresentam as informações do backend das soluções comentadas de livros, agora somente o primeiro passo é retornado na página. Por exemplo nesse livro do Sadiku https://app.respondeai.com.br/materias/solucionario/livro/27/edicao/45/exercicio/49288. Você consegue ver que tem todos os passos, mas são todos iguais. Teria que fazer alguma modificação na requisição inicial ao site, esse script que fiz só altera o frontend depois de receber todas as respostas do servidor
Ainda não tive tempo de atualizar o script, mas as requisições retornam todos os passos. Preciso fazer um redesign completo no funcionamento para pegar os dados das requisições ao invés de somente alterar a tela
Boa noite Tiago, o código acima está atualizado(não manjo de git) ? Pq não estou conseguindo ver o conteúdo das respostas .
Boa noite Tiago, o código acima está atualizado(não manjo de git) ? Pq não estou conseguindo ver o conteúdo das respostas .
Esse código ali não é meu, mas acho que não funciona com todas as páginas mesmo. Ele não considera todas as possibilidades de classes dentro do RespondeAí
@Ernany404 O responde aí atualizou as classes novamente. O código que fiz ficou desatualizado, como @thihxm disse, ele não considera todas as classes. É um código simples que só funcionava na pagina de questão.
Uma maneira simples de resolver isso é usando um comando css global. Com explica o seguinte vídeo: https://youtu.be/CalBlzFGoQM
Boa noite Tiago, o código acima está atualizado(não manjo de git) ? Pq não estou conseguindo ver o conteúdo das respostas .
Esse código ali não é meu, mas acho que não funciona com todas as páginas mesmo. Ele não considera todas as possibilidades de classes dentro do RespondeAí
A sim valeu.
@Ernany404 O responde aí atualizou as classes novamente. O código que fiz ficou desatualizado, como @thihxm disse, ele não considera todas as classes. É um código simples que só funcionava na pagina de questão.
Entendi. Valeu mano. Esse código ajudou d+, você pretende atualizar ele pra voltar a funcionar no novo site ?
Uma maneira simples de resolver isso é usando um comando css global. Com explica o seguinte vídeo: https://youtu.be/CalBlzFGoQM
Funcionou, obrigado !
Entendi. Valeu mano. Esse código ajudou d+, você pretende atualizar ele pra voltar a funcionar no novo site ?
Agora estou meio sem tempo, mas a intenção é reformular o script e criar uma extensão para o chrome. Fiz uma pesquisa rápida e fica mais viável de criar um proxy para as requisições e apresentar direto na tela os resultados, antes mesmo que o site possa fazer qualquer ofuscação.
Algum plano para atualizar? um site até postou uma versão aprimorada desse seu, mas hoje já parou de pegar novamente :(
Algum plano para atualizar? um site até postou uma versão aprimorada desse seu, mas hoje já parou de pegar novamente :(
Lancei uma correção para a parte de conteúdos, acredito que agora esteja funcionando
Alguém aqui sabe como remover o blur das respostas do site ingês Chegg? Cara, eu preciso muito! Aquele site tem todas as questôes que vc precisar
Quando você vai atualizar o código para pegar na nova versão do site?
Pretende adaptar o codigo novamente?
O site deles foi atualizado essa semana
Olá, tudo bem? Ainda é possível atualizar o script? Nunca precisei tanto como agora : (
boa tarde, thiago. o site atualizou, quebrando o script atual. existe a possibilidade de vc atualizar o script? agradeço desde já