Citar se rompe cuando el nombre coincide con el nombre de usuario

Continuando de Configuring Twitter login and rich embeds for Discourse - #114 by Hifihedgehog

Recibí un correo electrónico sobre esto y me sentí muy confundido, ya que no recordaba haber publicado algo así.

Tengo curiosidad sobre cómo se cambió “taylor” aquí en la respuesta citada. ¿Es un error de edición manual (no estoy seguro de cómo hacer un bloque de cita con una fuente manualmente, o si eso es siquiera posible)? ¿O hay algún error en la lógica de respuesta? @tshenry

1 me gusta

He intentado citar algunas publicaciones y creo que está pasando algo raro con el nombre de usuario y el nombre completo. Probablemente este commit reciente:

1 me gusta

Hola @JammyDodger,

¿Puedes darme más información sobre

Con la configuración del sitio prioritize username in ux activada y display name on posts desactivada, deberías ver el nombre de usuario en la cita, y viceversa para ver el nombre completo.

1 me gusta

Lo siento, podría haber sido mucho más útil allí. :slightly_smiling_face: Acabo de intentar citar varias de las publicaciones en este tema, y hubo algunos resultados extraños en mi editor:

Publicación de @Hifihedgehog:

[quote=", post:114, topic:13395"]
¡tienes razón! Eso tomó un par de minutos y me aprobaron al instante. ¡Las correcciones simples siempre son agradables! :smile:
[/quote]

Publicación de @tshenry:

[quote="Taylor, post:113, topic:13395"]
Puedes obtener acceso a la API v1.1 de forma gratuita bajo el plan Elevated. Simplemente necesitas solicitarlo desde tu panel de desarrollador. Me pareció muy rápido y fácil. Los inicios de sesión de Twitter de Discourse funcionaron sin problemas después de eso :tada:
[/quote]

(ese es el estilo por el que @taylor recibió una notificación)

4 Me gusta

Ah, gracias por señalar esto… sí, esto no es deseable / intencionado. ¡Investigaré esto!

3 Me gusta

Así que la razón por la que @taylor fue etiquetado en esta cita (y recibió un correo electrónico) es porque su nombre de usuario - Taylor es el mismo que el nombre completo de @tshenry - Taylor :open_mouth: que (el nombre completo) se prioriza correctamente en las citas debido a los cambios añadidos en DEV: Prioritize full name when setting active (#15820) · discourse/discourse@5a93ce4 · GitHub.

De todos modos, ¡gracias por el consejo, lo arreglaré!

9 Me gusta

Para que conste, también deja las citas sin nombres completos en blanco:

[quote=“, post:114, topic:13395”]¡tienes razón! Me llevó un par de minutos y me aprobaron al instante. ¡Las correcciones sencillas siempre son bienvenidas! :smile:
[/quote]

4 Me gusta

¿Estamos bien con esto ahora @isaac?

Sí, revertimos el cambio y estoy trabajando en la corrección de la lógica antes de volver a fusionar.

3 Me gusta

Al actualizar la lógica de las citas para permitirnos alternar entre nombre de usuario o nombre completo a través de una configuración del sitio, me he encontrado con un problema (parte del problema se señaló anteriormente), permítanme crear un escenario hipotético…

  • Tim crea una publicación
  • Se agrega y activa una configuración del sitio para alternar el nombre de visualización del OP a nombre de usuario (estaba activo) o nombre completo (ahora activo)
  • Un usuario cita a Tim en una nueva publicación, pero debido a que ahora usamos el nombre completo para las citas, nuestro otro usuario TimTam, nombre completo: Tim, recibe una notificación de que alguien lo citó en una publicación que él nunca creó.

Rehacer todas las citas tampoco es una opción. Si esta configuración del sitio se alternó varias veces y rehacemos varias veces, una cita que se está convirtiendo de nombre completo a nombre de usuario no es única y podría encontrar a varios usuarios.

La vía que veo que tomaremos es agregar un atributo de datos adicional a la cita de data-full-name="true" (o algo así) para verificar si debemos reemplazar el nombre de usuario con el nombre completo en la experiencia de usuario, en lugar de manipular data-username.

ej.

data-username="always.users.username" data-post="1" data-topic="1" data-full-name="true"

y ahorrarnos la molestia de preocuparnos si estamos consultando o enviando notificaciones sobre el nombre de usuario o el nombre completo. ¿Opiniones? ¿Vale la pena el esfuerzo de actualizar PrettyText y nuestro generador de citas para este cambio?

5 Me gusta

Prefiero no añadir soporte para un cambio. Esta es una decisión que se toma al principio de la configuración de tu comunidad, ya que dar soporte a un cambio muy fluido es extremadamente caro y conlleva una serie de concesiones.

Si te cito con el nombre de usuario como prioridad, renderizamos este markdown

[quote="isaacjanzen, post:12, topic:217633"]
¿Opiniones?
[/quote]

Si te cito con el nombre como prioridad, renderizamos este markdown

[quote="Isaac Janzen, post:12, topic:217633"]
¿Opiniones?
[/quote]

Hay que tener cuidado con las comas en los nombres completos, pero apoyo eliminarlas para este caso de uso o, supongo, puedes introducir algún truco de escape.

4 Me gusta

¿Estás diciendo que recomendarías que dejemos de intentar añadir la capacidad de mostrar citas con nombres completos? Inevitablemente nos encontraremos con estos casos de cambio… por ejemplo, cualquier comunidad existente con una cita.

1 me gusta

No, no del todo… meta tiene prioritize username in ux deshabilitado. La cita que acabo de hacer debería ser: (a la que le falta un avatar que necesita ser arreglado)

El marcado aquí debería ser:

[quote="Isaac Janzen, post:14, topic:217633"]
¿Estás diciendo que recomendarías que dejáramos de intentar agregar la capacidad de mostrar citas con nombres completos?
[/quote]

El único cambio necesario es hacer que el widget de cita sea consciente de la configuración para que complete el nombre completo en lugar del nombre de usuario. No te preocupes por la migración y el historial.

1 me gusta

No estoy seguro de que estemos en la misma página aquí… cuando fusionamos DEV: Prioritize full name when setting active (#15820) · discourse/discourse@5a93ce4 · GitHub logramos

  # quote.js
  # opts.displayName = true si la configuración del sitio prioriza el nombre completo
  const name = opts.displayName
    ? opts.name || post.name
    : opts.username || post.username;

  # construir el markdown de la cita
  const params = [
    name,
    `post:${opts.post || post.post_number}`,
    `topic:${opts.topic || post.topic_id}`,
  ];

para obtener la salida de

pero el problema era que la búsqueda de usuario basada en el nombre completo estaba rompiendo las citas existentes que se crearon con el nombre de usuario.

Así que parece que es imposible ignorar

1 me gusta

Estoy súper confundido porque meta tiene:

Entonces, ¿por qué falta el nombre en la cita anterior? ¿Se revirtió el cambio?

De acuerdo, necesitamos hacer más aquí:

Necesitamos obtener el nombre de usuario de la combinación “post / topic” y colocarlo en el markdown cocido (deberíamos hacerlo incondicionalmente), de lo contrario, no podremos mostrar avatares para el nombre completo.

También nos permite solucionar este caso extremo, para que no muestre mi avatar en esta cita errónea. (o incluso resalte una cita errónea)

1 me gusta

Ah, sí

Estoy de acuerdo y puedo añadir esto.

2 Me gusta

Estoy totalmente abierto a corregir algunos casos extremos mientras tanto:

  1. Coincidencia de nombre de usuario incorrecta
    • ¿qué hacemos con el avatar?
    • ¿qué hacemos con el nombre de usuario?
  2. Coincidencia de nombre completo incorrecta
    • ¿qué hacemos con el avatar?
    • ¿qué hacemos con el nombre?

Creo que lo mejor que podemos hacer por ahora es simplemente “anular”. Si la publicación tiene un nombre / nombre de usuario, úsalo en lugar del que se proporcionó en la cita. Cocina con el nombre actual / nombre de usuario actual.

3 Me gusta

De acuerdo, tengo una PR que aclara las cosas.

Puntos clave

Ahora pasamos el nombre de usuario cuando

siteSettings.display_name_on_posts && !siteSettings.prioritize_username_in_ux && post.name

así como el nombre completo para garantizar que no tengamos ninguna discrepancia al consultar por usuario / avatar.

por ej.

[quote="Isaac Janzen, post:3, topic:7, full:true, username:isaac.janzen"]
bing bong
[/quote]

¿Qué opinas @sam?

3 Me gusta

Supongo que puedo aceptar un cambio de markdown para que podamos evitar caer en un agujero de conejo de una enorme aventura de seguridad. Sin embargo, el cambio debe ser hiperquirúrgico.

¿Puedes confirmar que la nueva sintaxis detallada solo ocurre si ambos siteSettings.display_name_on_posts y !siteSettings.prioritize_username_in_ux están activos?

[quote="Isaac Janzen, post:3, topic:7, username:isaac.janzen"]
....
[/quote]

Lo que significa que si no activas tanto display_name_on_posts como desactivas prioritize_username_in_ux

Entonces el antiguo formato de cita debería permanecer:

[quote="isaac.janzen, post:3, topic:7"]
....
[/quote]

Estoy dispuesto a aceptar esto como un paso intermedio por ahora, pero nuestro objetivo a largo plazo sería eliminar este ruido del bloque de citas (reforzar la seguridad, restringir el abuso) y admitir el formato de cita abreviado que siempre tuvimos, trabajando a través de la lata de serpientes de seguridad, al igual que nos vemos obligados a hacerlo ahora para las cajas de cita en línea, por ejemplo: Quoting broken when name matches username - #20 by isaachttps://meta.discourse.org/t/quoting-broken-when-name-matches-username/217633/20?u=sam

Mencionando a @tobiaseigen aquí para visibilidad, ya que esto se relaciona con discusiones anteriores.

En resumen:

  • En mi opinión, está bien cambiar el formato de markdown por ahora para este caso límite, y solo para este caso límite, @codinghorror para confirmar.
  • Pendiente de programar el trabajo de seguridad para que el bloque de citas se convierta en [quote="TOTALMENTE OPCIONAL SE PESCARÁ DE LA PUBLICACIÓN SI LA SEGURIDAD SE ALINEA Y LA INFORMACIÓN EN LA PUBLICACIÓN SE PRIORIZA SOBRE ESTE TEXTO, post:3, topic:7"]. - Recomendamos esperar un tiempo con esto.
3 Me gusta

Se fusionó y desplegó https://github.com/discourse/discourse/pull/16078

Confirmo.

3 Me gusta