Aclaración fecha errónea de edición de comentarios

Este comentario me hizo notar, no lo sabíamos, de la fecha de modificación incorrecta en los comentarios, incluso desde el primero:

(Nota: en realidad alguien me avisó de ese problema hace meses, pero no me di cuenta al no mirar comentarios anteriores)

Haciendo una búsqueda a la base de datos encontré es lo siguiente:

Básicamente que hay más de seis millones y medio con comentarios con ese problema. La fecha de edición son del 11 de julio de 2010. Justamente esos días hicimos un cambio importante en el código. La generación de los emoticonos y las etiquetas de negritas y cursivas consumían mucha CPU de los servidores web.

El 9 de agosto se hizo el cambio de los emoticonos, los códigos de los mismos se interpretan al insertar o editar el comentario y se almacenan con un código del tipo {wink} (podéis comprobarlo cuando editáis un comentario o nota) que hace que la traducción con expresiones regulares sea mucho más eficiente.

El día 11 de agosto se acabo con las etiquetras HTML, por lo que se guardan las etiquetas html admitidas (<b><i><strong><strike><em>) en el texto del comentario en vez de interpretar los “*”, “-” y “_” al momento de generar la página.

Estos cambios obligaban a cambiar también los comentarios anteriores para interpretar la codificación anterior y almacenarlos con la nueva. Ello obligaba a hacer un script que los recorriese, interpretara y almacenase el texto recodificado (el script se ve en la imagen siguiente). Aunque lo había probado en una base de datos de desarrollo, era relativamente peligroso, así que avisé en una notas cuando iba a comenzar  a hacerlo en la base de datos de “producción”. Al script lo ejecutamos por rangos, primero los más nuevos y luego los más antiguos. En otra nota mostré cómo se disparó el consumo de CPU de la base de datos durante una de las ejecuciones (y en otra la eficiencia ganada).

Para hacer esos cambios se hicieron tres scripts, uno para los enlaces, otro para comentarios y otro para las notas. En la imagen de abajo se ven los ficheros y el código del script de modificación de los comentarios. La función clean_text_with_tags() es la que interpreta los código de emoticonos y de negritas/cursivas para convertirlos en la nueva codifición (se la usa cuando se inserta o edita un comentario, la misma sirvió para recodificar los anteriores).

El problema fue que no tomé en cuenta que la función store() de comentarios (llamada como $p->store()) modifica también la fecha de edición del comentario (en comment_modified=now() del UPDATE):

Esa es la razón que todos esos comentarios hayan quedado con la hora en que el script recodificó cada comentario.

Fallo mío, y sólo mío, disculpad las molestias y confusiones.

PD: Por ahora dejaremos como está, en unos días modificaremos esos comentarios con la fecha de modificación errónea. Como son muchos lo tendremos que hacer en horario de poco tráfico, quizás en la madrugada del sábado o domigo.

About these ads

Un pensamiento en “Aclaración fecha errónea de edición de comentarios

  1. Pingback: Aclaración por las fechas erróneas de edición de comentarios en Menéame

Los comentarios están cerrados.