Adicione proteção de direitos autorais a tópicos marcados

Olá,

Muitos dos nossos membros têm tópicos de qualidade, artigos de blog, etc… Infelizmente, outros roubam estes (e tornam públicos em outros sites como se fossem deles, sem qualquer fonte), mesmo que o autor diga claramente: “Eu só escrevo para este site, por favor, não roube… Se quiser usar este conteúdo, por favor, contacte-me antes.” Tivemos de fazer algo porque os nossos autores estão simplesmente desmotivados a criar novos conteúdos de qualidade. Não queremos tornar o fórum fechado (privado) porque muitos visitantes leem estes conteúdos de fora do fórum.

Sabemos que esta é a internet e não existe uma solução 100% para o conteúdo protegido por direitos de autor, mas podemos torná-lo mais difícil ou menos fácil de roubar estes conteúdos. Sei que isto parece uma perda de tempo, mas muitos ladrões desistem se uma simples seleção e cópia de texto não funcionar.

O que fazemos é usar uma tag copy-protected e reutilizar isto: Disable right click on image lightbox - #7 by awesomerobot

Adicionamos uma opção a cada membro para adicionar uma tag #copy-protected aos tópicos.
Esta tag tem algumas funcionalidades:

  • desativa o clique direito (em todo o conteúdo do primeiro post OP com a classe .cooked)
  • desativa a cópia e o corte (em todo o conteúdo do primeiro post OP com a classe .cooked)
  • para anónimos (visitantes não registados) desativa a seleção de texto (em todo o conteúdo do primeiro post OP com a classe .cooked)
  • adiciona uma nota de proteção de direitos de autor acima da secção do título do tópico.

1. Aqui está o código que usamos para isto no cabeçalho. Quando os autores adicionam a tag de direitos de autor ao tópico, ela será ativada.

<script type="text/discourse-plugin" version="0.8">
const TopicRoute = require("discourse/routes/topic").default;

TopicRoute.reopen({
  activate: function() {
    this._super();
    Em.run.next(function() {
      // Desativa o clique direito
      $('.tag-copy-protected #post_1 .cooked').on('contextmenu', function(e) { return false; });
      // Desativa a cópia e o corte
      $('.tag-copy-protected #post_1 .cooked').bind('cut copy', function (e) { e.preventDefault(); });
    });
  }
});
</script>

2. Para anónimos (visitantes não registados) usamos uma camada extra, desativa a seleção de texto. Usamos CSS para isto em comum.

.anon {
  .tag-copy-protected {
    #post_1 .cooked {
      -webkit-user-select: none;
      -khtml-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      -o-user-select: none;
      user-select: none;
    }
  }
}

3. Adicionamos também um pequeno aviso vermelho acima da secção do título do tópico. Que diz Este conteúdo foi protegido por direitos de autor pelo autor!

.tag-copy-protected #topic-title .title-wrapper {
  &:before {
    content: 'Este conteúdo foi protegido por direitos de autor pelo autor!';
    color: #e40202;
  }
}

4. Usamos a configuração do site impedir que anónimos descarreguem ficheiros para que apenas os Membros possam descarregar ficheiros.


Isto é o que fizemos para lidar com este problema. Os nossos autores estão satisfeitos com esta solução e com o facto de nos importarmos e os apreciarmos. :slightly_smiling_face: :heart: Espero que isto ajude um pouco e traga o resultado esperado. :crossed_fingers:

18 curtidas

Bom trabalho!

Parece uma ótima oportunidade para empacotar isso em um Componente de Tema?

4 curtidas

Obrigado, Robert! :slightly_smiling_face:

Claro, um Componente de Tema é uma ótima ideia! Eu ficaria grato se você pudesse fazê-lo, claro, se você quiser e tiver tempo para isso :slightly_smiling_face:

3 curtidas

Ficarei feliz em ajudar. Podemos hospedá-lo e dar suporte no Pavilion e darei a você e ao Awesomerobot o crédito como autores.

Meu foco atual é em obter a compatibilidade dos meus plugins e do Ember-CLI do TC e em alguns bugs, mas posso cuidar disso em seguida.

Enviarei uma mensagem privada para você para testes.

Talvez possamos adicionar algumas configurações em algum momento, se ligar e desligar for útil? Talvez possamos adicionar uma configuração para selecionar a tag específica, etc.

Pode haver outros que achem isso útil como um TC (@davidkingham?)

6 curtidas

É uma ótima ideia ter isso como um TC para que outros possam usar, eu realmente não preciso dos recursos extras além da proteção de clique direito que já tenho.

2 curtidas

Não está funcionando comigo..

Você pode esclarecer um pouco? Eu verifiquei isso duas vezes e funciona como esperado. Tentarei criar um Componente de Tema a partir disso para facilitar o uso. :slightly_smiling_face:

1 curtida

Isso seria ótimo; já que não estou usando o tema padrão do Discourse, mas não funciona para mim em nenhum dos temas… um componente seria uma boa ideia.. obrigado!

1 curtida

Eu alterei o código e criei um componente a partir disso. Não era tão compatível com o carregamento do spinner, espero que isso corrija o problema. Acho que quebrou quando a lista de classes do body foi atualizada.

Adicionei algumas configurações.


Aqui você pode encontrar isso.

4 curtidas

Funciona perfeitamente, apenas o visitante pode abrir/salvar as imagens… mas o resto funciona bem.

1 curtida

Há 3 pontos no vídeo que os usuários podem baixar. Quero desabilitar o download - apenas visualização… https://discourse.fotografos.online/t/fotografia-como-aumentar-a-percepcao-de-valor/223449 Verifiquei “impedir que anônimos baixem arquivos”, mas isso não funcionou… alguma ideia? @jaymf ou outros no canal de suporte? muito obrigado!

Olá,

Aqui está uma solução rápida e improvisada para desabilitar o download em vídeos.

Cole isso em Common / Header

Use isto, se você quiser desabilitar apenas o botão de download dos controles do vídeo.

<script type="text/discourse-plugin" version="0.8">
  api.decorateCooked(
    $elem => $elem.find('video').attr('controlsList', 'nodownload'),
    { id: 'disable-video-download-button' }
  );
</script>

Use isto, se você quiser desabilitar o botão de download dos controles do vídeo e desabilitar o clique com o botão direito (menu de contexto) no vídeo. Assim, ele impede o download do vídeo com o clique com o botão direito ou toque longo (celular) no menu de contexto.

<script type="text/discourse-plugin" version="0.8">
  api.decorateCooked(
    $elem => $elem.find('video')
    // desabilita o botão de download dos controles
    .attr('controlsList', 'nodownload')
    // desabilita o menu de contexto do clique com o botão direito
    .on('contextmenu', function(e) {
      e.preventDefault()
    }),
    { id: 'disable-video-download' }
  );
</script>
1 curtida

Como isso funcionaria? Tecnicamente, os vídeos precisam ser baixados antes que possam ser exibidos, mas mesmo que o significado seja remover o botão de download, meu iPhone e iPad perguntarão o que quero fazer ao clicar em um vídeo: baixar (salvar como) ou visualizar.

Você também pode simplesmente pegar a URL da aba de rede e jogá-la no wget.

Isso funcionou perfeitamente! Muito obrigado! Vamos bloquear o conteúdo premium e isso funcionaria perfeitamente!

2 curtidas