¿Cómo determina Medium si un artículo ha sido leído?

Basado en un ensayo y error anecdótico, veo que se realiza una llamada PUT a una URL media para una publicación que termina con / state / read para rastrear que se ha leído, por ejemplo, https://medium.com/p/74b9f41509b …

Esta llamada PUT se produce después de que el usuario se haya desplazado hasta el final del artículo (no necesariamente el final de la página). Este evento se dispara independientemente de si uso la rueda de desplazamiento del mouse, arrastre la barra de desplazamiento en la ventana del navegador o use el atajo de teclado “ir al final” (por ejemplo, Fn + flecha derecha en una Mac).

Mirando a través de la fuente (pero sin pasar demasiado tiempo haciendo ingeniería inversa), parece que la línea que realiza el PUT en la URL / estado / lectura también tiene un evento de “final de desplazamiento” de algún tipo mencionado, por lo que es probable un controlador de eventos que se dispara al final de cada desplazamiento y comprueba la ubicación del lugar del artículo en el que se encuentra la ventana gráfica, antes de decidir enviar el PUT.

zgZi = function() { if (this.ra && Xr(this)) { var a = this.Pc.oa(this.ik), b = this.Pc.ve.ee(); b.top + b.height >= mk(a) + a.Bb - 100 && ((0,zv)(this.ba.put("/p/" + this.V + "/state/read", null, {background:!0, uc:!0}), z.Dh), (0,zU)(Kx, {collectionSlug:this.ta, postIds:[this.V], postId:this.V}), this.ka.pa("scroll-end", this.Zi, this)); } }; 

Si. También determina cómo es rojo y la profundidad de la comprensión.