Sobre o Expansor de Threads Federadas

O Expansor é um cliente web para o Mastodon, especializado em uma única ação: carregar uma thread de posts e exibi-la como um documento unificado, contendo a íntegra dos textos dos posts da thread, em sequência, sem separadores.

Este serviço foi disponibilizado para uso próprio, mas está à disposição para uso dos demais interessados. Basta acessar o Expansor, preencher a URL de uma thread do Mastodon, pressionar o botão , e a thread será carregada e exibida.

Por uma questão de privacidade (saiba mais), são incluídos no documento apenas os posts cujo autor for o mesmo do post original - ou seja, respostas de outros usuários na mesma thread são intencionalmente desconsideradas.

O texto é formatado com um título (reproduzindo a primeira frase do primeiro post da thread) e um rodapé contendo a identificação do autor da thread, suas preferências de privacidade (quando houver) e o link do post original.

Eu uso o Expansor principalmente para formatar minhas próprias threads de modo a poder copiá-las facilmente para o texto de um post de blog, ou uma nota no Obsidian.

Embora o Expansor use a API do Mastodon, outros serviços federados podem ser compatíveis (testei com o Sharkey, com sucesso).

Autoria e licença

O autor dos posts de cada thread expandida é indicado logo abaixo do texto exibido de maneira automatizada pelo Expansor. Esse autor indicado retém exclusiva responsabilidade, bem como os seus direitos, pelo material.

Este serviço é disponibilizado por mim (Augusto Campos - @augusto@social.br-linux.org), e inclui um pouco de código de minha autoria, e bastante código do Patrick M. Curry (@patrickmcurry@mastodon.social), que gentilmente me concedeu autorização para publicar esta versão modificada por mim do seu template “Embed a thread”.

O Patrick pretende adicionar uma licença formal ao código, mas não definiu prazo para isso.

As minhas contribuições estão listadas no próprio script, adotarão futuramente a mesma licença que o Patrick vier a escolher, e em resumo são:

O script é totalmente autocontido e está presente no cabeçalho do arquivo index.html.

Privacidade

Este serviço roda inteiramente no navegador do usuário, sem rotinas remotas nem armazenamento de dados em servidor externo. O navegador acessa diretamente o servidor Mastodon (ou compatível), obtém a thread, opera com ela em memória volátil, exibe os resultados na tela e, ao fechar a página, descarta todos os dados obtidos.

Eu tinha a intenção original de trabalhar mais no lado da privacidade desse script, mas em uma análise mais aprofundada logo verifiquei que o script original já dá bastante atenção à privacidade, exibindo apenas toots que são visíveis publicamente na web aberta (que são buscados usando apenas as chamadas de API anônimas mais básicas, renunciando a qualquer privilégio adicional que a conta do usuário pudesse ter, caso o script usasse chamadas de API autenticadas), e ignorando qualquer resposta no thread se seu autor não for a mesma conta que iniciou o thread.

Nas minhas adições ao script consta o recurso userFlags, que exibe – ao lado do nome do endereço da conta do autor, no rodapé – uma descrição textual de quatro sinalizadores de preferências de privacidade e identidade da conta, se presentes: discoverable, locked, noindex e bot.

Também adicionei uma nota, visível enquanto o script está se conectando ao servidor para solicitar a thread, informando que o conteúdo está carregando, e só será exibido se o servidor e as configurações de privacidade do usuário permitirem isso.

Talvez o aspecto mais importante relacionado à privacidade deste script seja que ele é um cliente Mastodon literal (como, por exemplo, o Phanpy ou o Elk, embora com muito menos recursos), e não um web scraper, um bot online ou um arquivador. Isso significa que ele só consegue exibir o conteúdo que estiver ativo durante sua execução – ele não armazena em nenhum outro lugar uma cópia, nem faz cache, das threads que exibe.

Assim, em uma nova visita, se o tópico tiver sido excluído, ou tornado privado/restrito, ou atualizado de alguma forma, o script refletirá esse novo status e conteúdo, conforme fornecido pela API do servidor – que é quem impõe todas as proteções de privacidade fornecidas pelo protocolo e pelas preferências do autor do thread.

Ou seja: ajustes de privacidade que o autor dos toots inclua originalmente ou venha a incluir posteriormente (incluindo remover os posts!) se refletem automaticamente nas eventuais tentativas de lê-los usando o script.

Acesso direto pela URL

Caso você queira (e saiba como) incluir o Expansor em uma automação sua, ou em um bookmarklet, o serviço pode ser acessado diretamente por meio de um endereço contendo a URL da thread a ser expandida.

Por exemplo, para expandir a minha thread sobre como organizar festas que acolhem os autistas – que está em https://social.br-linux.org/@augustocc/113704287818891733 – a url a ser acessada será:

https://expansor.online/?#url=https://social.br-linux.org/@augustocc/113704287818891733

(e você pode substituir a parte que vem depois do sinal de “=” pela url de qualquer outra thread válida.)

Contato

Para falar sobre este serviço, você pode entrar em contato diretamente comigo on-line, em @augusto@social.br-linux.org.

Caso deseje contribuir código, prefiro em formato de um patch que eu possa aplicar diretamente à versão publicada, e que venha acompanhado de descrição da funcionalidade e do motivo, para que possa ser adequadamente analisado.

E caso deseje entrar em contato com o Patrick, autor do template em que me baseei (e que forma a maior parte do código deste serviço), encontre-o em @patrickmcurry@mastodon.social.

 

 

© 2022- Patrick M. Curry.

© 2024- Augusto C. Campos.