Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GaúchaZH parou de funcionar #388

Open
rodorgas opened this issue Oct 11, 2023 · 6 comments
Open

GaúchaZH parou de funcionar #388

rodorgas opened this issue Oct 11, 2023 · 6 comments

Comments

@rodorgas
Copy link
Member

Conforme alguns comentários no site, a GaúchaZH parou de funcionar.

Percebi que podemos explorar o (pseudo?)SSR do React e montar o conteúdo ao invés de enganar o contador de artigos lidos. Afinal, o conteúdo é servido no HTML estático independente de qualquer coisa.

A seguinte prova de conceito funciona em geral (se abrir um página do ZH e colar no console):

const data = JSON.parse(decodeURI(window.__ISOMORPHIC_DATA__)).state.apollo.ROOT_QUERY
const key = Object.keys(data).filter(key => key.includes('article'))[0]

const parts = data[key].article_body_components
  .map(item => `<div class="article-paragraph">${item.html || item.data.embed}</div>`)
const content = parts.reduce((acc, curr) => acc + curr)

const article = document.querySelector('.article-paragraph')
article.insertAdjacentHTML('afterend', content)

Precisa de mais algumas coisas para funcionar com embeds (como tweets), como na notícia a seguir:

https://gauchazh.clicrbs.com.br/mundo/noticia/2023/10/incendio-florestal-atinge-arredores-de-cordoba-na-argentina-e-moradores-sao-evacuados-clnl45j28001h0154hmiiw1rq.html

A maior desvantagem é que isso não funciona com o roteador JS, então não dá pra usar o site como SPA. Isso é fácil de mitigar pra ficar funcional, basta interceptar os links e fazer o navegador navegar de verdade quando se clica neles. O problema é que isso vai tornar a experiência bem mais lenta (mas nem tanto pelas páginas serem SSR).

Isso é aceitável? Para funcionar com SPA precisa de uma solução completamente diferente. Eu nem olhei se tinha como adaptar a solução atual porque fiquei com preguiça de xeretar código minificado e isso parecia mais divertido.

@rodorgas
Copy link
Member Author

Relacionados:
#375
#355
#293

@rodorgas
Copy link
Member Author

cc @CaioWzy

@damico958
Copy link

Não funcionou para mim esse ajuste.

@rodorgas
Copy link
Member Author

Dei uma olhada e parece que houve uma mudança no site da GaúchaZH bem depois do lançamento da nova versão (que azar).

Em algumas notícias os primeiros parágrafos estão sendo removidos, que são o ponto "âncora" pra injetar o resto dos parágrafos. Por sorte, isso é fácil de corrigir.

@damico958 pode fazer o favor de testar esse userscript, chefe? Nos meus testes funcionou.

https://github.com/burlesco/burlesco/releases/download/v14.1-dev/burlesco.user.js

@damico958
Copy link

Que azar mesmo né 😅

Testei aqui e funcionou no Firefox o userscript via Tampermonkey.

O mesmo userscript não funcionou no Kiwi Browser que é por onde instalo a extensão do chromium no celular normalmente, mas deve ser algo que tenho que ajustar aqui ainda.

E valeu demais pela atenção e pela resposta, meu caro! O trabalho de vocês é show de bola 👏

@MauricioLucas
Copy link

Estou usando o Chrome no Linux e descobri que funciona se atualizar com F5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
@MauricioLucas @rodorgas @damico958 and others