Agregar protección de derechos de autor a temas etiquetados

Hola,

Muchos de nuestros miembros tienen temas de calidad, artículos de blog, etc. Desafortunadamente, otros los roban (y los publican en otros sitios como propios sin ninguna fuente), incluso si el autor dice claramente: “Solo lo escribo para este sitio, por favor no lo robes… Si quieres usar este contenido, contáctame antes.” Tuvimos que hacer algo porque nuestros autores simplemente se desaniman de crear nuevos contenidos de calidad. No queremos hacer el foro cerrado (privado) porque muchos visitantes leen estos contenidos desde fuera del foro.

Sabemos que esto es Internet y que no hay una solución del 100% para el contenido con derechos de autor, pero podemos hacerlo más difícil o menos fácil de robar estos contenidos. Sé que esto parece una pérdida de tiempo, pero muchos ladrones se rinden si una simple selección y copia de texto no funciona.

Lo que hacemos es usar una etiqueta copy-protected y reutilizar esto Disable right click on image lightbox - #7 by awesomerobot

Añadimos una opción a cada miembro para añadir una etiqueta #copy-protected a los temas.
Esta etiqueta tiene algunas características:

  • deshabilita el clic derecho (en todo el contenido del primer post OP con la clase .cooked)
  • deshabilita la copia y el corte (en todo el contenido del primer post OP con la clase .cooked)
  • para los anónimos (visitantes no registrados) deshabilita la selección de texto (en todo el contenido del primer post OP con la clase .cooked)
  • añade una nota de copyright protegido encima de la sección del título del tema.

1. Aquí está el código que usamos para esto en la cabecera. Cuando los autores añaden la etiqueta de copyright al tema, se activará.

<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() {
      // Deshabilitar clic derecho
      $('.tag-copy-protected #post_1 .cooked').on('contextmenu', function(e) { return false; });
      // Deshabilitar copia y corte
      $('.tag-copy-protected #post_1 .cooked').bind('cut copy', function (e) { e.preventDefault(); });
    });
  }
});

</script>

2. Para los anónimos (visitantes no registrados) usamos una capa extra, deshabilitamos la selección de texto. Usamos CSS para esto en común.

.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. También añadimos un pequeño aviso rojo encima de la sección del título del tema. Que dice ¡Este contenido ha sido protegido por derechos de autor por el autor!

.tag-copy-protected #topic-title .title-wrapper {
  &:before {
    content: 'Este contenido ha sido protegido por derechos de autor por el autor!';
    color: #e40202;
  }
}

4. Usamos la configuración del sitio prevent anons from downloading files para que solo los Miembros puedan descargar archivos.


Esto es lo que hicimos para manejar este problema. Nuestros autores están contentos con esta solución y con que nos preocupamos por ellos y los apreciamos. :slightly_smiling_face: :heart: Espero que esto ayude un poco y traiga el resultado esperado. :crossed_fingers:

18 Me gusta

¡Buen trabajo!

¿Suena como una gran oportunidad para empaquetar esto en un componente temático?

4 Me gusta

¡Gracias Robert! :slightly_smiling_face:

¡Claro, un Componente Temático es una gran idea! Te estaría agradecido si pudieras hacerlo, por supuesto, si quieres y tienes tiempo para ello :slightly_smiling_face:

3 Me gusta

Estaría encantado de ayudarte. Podemos alojarlo y darle soporte en Pavilion y te daré crédito a ti y a Awesomerobot como autores.

Mi enfoque actual es conseguir la compatibilidad de mis plugins y de Ember-CLI de TC, además de un par de errores, pero puedo ocuparme de esto a continuación.

Te enviaré un mensaje privado para hacer pruebas.

¿Quizás podamos añadir algunas configuraciones en algún momento si resulta útil activar y desactivar cosas? Quizás podamos añadir una configuración para seleccionar la etiqueta específica, etc.

Quizás haya otros a quienes les resulte útil como TC (@davidkingham ?)

6 Me gusta

Es una gran idea tener esto como un TC para que otros lo usen, realmente no necesito las funciones adicionales más allá de la protección de clic derecho que ya tengo.

2 Me gusta

No me funciona..

¿Puedes aclarar un poco? Revisé esto dos veces y funciona como se esperaba. Intentaré hacer un Componente de Tema con esto para que sea más fácil de usar. :slightly_smiling_face:

1 me gusta

Eso sería genial; ya que no estoy usando el tema predeterminado de Discourse; pero no me funciona con ninguno de los dos temas… un componente sería una buena idea… ¡gracias!

1 me gusta

Cambié el código e hice un componente a partir de esto. No era muy compatible con el spinner de carga, espero que solucione el problema. Creo que se rompió cuando se actualizó la lista de clases del body.

He añadido algunas configuraciones.


Aquí puedes encontrar esto.

4 Me gusta

Funciona perfecto, solo que el visitante puede abrir/guardar las imágenes… pero el resto funciona bien.

1 me gusta

Hay 3 puntos en el video que los usuarios pueden descargar. Quiero deshabilitar la descarga, para que solo se pueda ver… https://discourse.fotografos.online/t/fotografia-como-aumentar-a-percepcao-de-valor/223449 Ya revisé la opción “impedir que los anónimos descarguen archivos”, pero no funcionó… ¿alguna idea? @jaymf u otros en el canal de soporte? ¡Muchas gracias!

Hola,

Aquí tienes una solución rápida y rudimentaria para deshabilitar la descarga en videos.

Pega esto en Common / Header

Usa esto si solo quieres deshabilitar el botón de descarga de los controles del video.


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

Usa esto si quieres deshabilitar el botón de descarga de los controles del video y deshabilitar el clic derecho (menú contextual) en el video. Así se evita la descarga del video con clic derecho o toque largo (móvil) desde el menú contextual.


<script type="text/discourse-plugin" version="0.8">
  api.decorateCooked(
    $elem => $elem.find('video')
    // deshabilitar botón de descarga de los controles
    .attr('controlsList', 'nodownload')
    // deshabilitar menú contextual de clic derecho
    .on('contextmenu', function(e) {
      e.preventDefault()
    }),
    { id: 'disable-video-download' }
  );
</script>
1 me gusta

¿Cómo funcionaría eso? Técnicamente, los videos deben descargarse antes de que se puedan mostrar, pero incluso si el significado es quitar el botón de descarga, mi iPhone y iPad preguntarán qué quiero hacer al hacer clic en un video: descargar (guardar como) o ver.

También puedes simplemente tomar la URL de la pestaña de red y lanzarla a wget.

¡Esto funcionó a la perfección! ¡Muchas gracias! ¡Estaremos bloqueando contenido premium y esto funcionaría perfectamente!

2 Me gusta