Notificaciones en el navegador para el foro

Iniciado por JorgeEMX, 19 Junio 2014, 22:47 PM

0 Miembros y 1 Visitante están viendo este tema.

JorgeEMX

Hoy en días muchas aplicaciones hacen uso de las notificaciones en el navegador, estaría bueno tener algo así en el foro. No sé si exista algo ya hecho para SMF o podríamos intentar hacer algo entre los integrantes del foro.

Imaginen, tener notificaciones cada vez que alguien responda a un tema, o a tu foro favorite, o un mensaje privado.

Les dejo el tema, a ver que piensan.
Saludos

engel lex

#1
si te animas te ayudo... aqui mi primer esfuerzo... lee la pagina de unread busca el primer post saca el titulo y las respuestas... eso lo puedes almacenar, si una de las 2 es diferente, quiere decir que algo se publicó y puedes usar "contenido" para obtener el titulo

Código (javascript) [Seleccionar]
var pagina = "http://foro.elhacker.net/unread.html";
var solicitud = new XMLHttpRequest();
solicitud.open('GET', pagina, false);
solicitud.send(null);
var respuesta = solicitud.responseText
var inicio = respuesta.indexOf("windowbg\"");
inicio = respuesta.indexOf("<a",inicio);
inicio = respuesta.indexOf(">",inicio)+1;
var fin = respuesta.indexOf("</", inicio);
var titulo_ultimo_post = respuesta.substr(inicio, fin-inicio).trim();
inicio = respuesta.indexOf("windowbg\"",fin);
inicio = respuesta.indexOf(">",inicio)+1;
fin = respuesta.indexOf("</", inicio);
var respuestas_ultimo_post = respuesta.substr(inicio, fin-inicio).trim();
var contenido = [titulo_ultimo_post ,respuestas_ultimo_post ];
//contenido[0] = titulo
//contenido[1] = cantidad de respuestas


este codigo es perfectamente funcional para unreadreplies

aunque este código sería util algo así como que una llamada cada 15 o 30 segundos para evitar la sobrecarga del server

eres libre de hacer las preguntas necesarias sobre el codigo ya que no lo expliqué, pero si tienes dudas primero revisa el codigo fuente de la pagina, pensaba hacerlo con solo headers, pero el foro lanza "last modified" cada vez que se recarga -.-
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

JorgeEMX

Gracias por el primer aporte @engel lex, pero tenía más la idea de integrarlo directamente al SMF (obviamente con previa autorización de el brujo). Aunque para eso primero se tiene que tener algo estable, y bueno... como te decía, pensaba algo más integrado al SMF y no "parsear" la vista tal cual.

Estaba viendo que se pueden agregar hooks, aunque no estoy seguro si podría servir. Estaré investigando más a fondo.

Saludos

EFEX

GITHUB 

engel lex

Que tanto quieres que haga la api?  :huh:

Se activa rss seria lo mismo, un parser igual, y cualquier otra cosa sería el foro haciendo el parser y nosotros capturando... :-\

Si pudieras dar mas detalle de lo que esperas y ser mas especifico se podría hacer una solución correcta  ::)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MinusFour

Debe de haber opciones mas robustas, estar parseando una respuesta así cada 15-30 segundos no es efficiente, en especial cuando contemplas multiples notificaciones de diferentes partes.

engel lex

para ser sincero es más ligero esto a nivel de servidor, que si el llega y por su cuenta lo parsée y cree una cadena json para que nosotros la leamos cada 30 segundos... en este sentido no es tan pesado porque la peticion son unos pocos kb ya que no incluye imagenes, embebidos ni linkeados...

si alguien considera una mejor opcion opine y yo puedo intentar hacer algo que cumpla las condiciones
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MinusFour

Cita de: engel lex en 26 Junio 2014, 07:20 AM
para ser sincero es más ligero esto a nivel de servidor, que si el llega y por su cuenta lo parsée y cree una cadena json para que nosotros la leamos cada 30 segundos... en este sentido no es tan pesado porque la peticion son unos pocos kb ya que no incluye imagenes, embebidos ni linkeados...

si alguien considera una mejor opcion opine y yo puedo intentar hacer algo que cumpla las condiciones

Es mejor asi pero ahi ya estas hablando de implementarlo en el servidor. Necesitas que te lo valide el admin. Tambien necestarías mantener el código una vez que actualizen SMF (que no ocurre muy a menudo).

engel lex

yo solo estoy esperando propuestas y ver que se puede hacer al respecto... por eso mismo que dices es que lo hice jscript...

CitarDebe de haber opciones mas robustas, estar parseando una respuesta así cada 15-30 segundos no es efficiente, en especial cuando contemplas multiples notificaciones de diferentes partes.

tienes algo en mente? no importa que sea tonto, de algo tonto se puede armar mucho si se refina...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MinusFour

Yo no digo que este mal hacerlo desde el server, solo digo que si se hace algo desde el server va a necesitar mantenimiento y autorización... solo eso.

No se me ocurre mucho si quieres estar parseando la información desde afuera. Talvez delegar las cargas haciendo un sitio secundario que se encargue de hacer el JSON pero entonces te limitas a lo que todo el mundo ve y no puedes hacer notificaciones para mensajes privados. Sin mencionar que es basicamente lo mismo a menos que mucha gente empieze a usar el script externo (que no creo que sean muchos).