Foro de elhacker.net

Foros Generales => Sugerencias y dudas sobre el Foro => Mensaje iniciado por: JorgeEMX en 19 Junio 2014, 22:47 pm



Título: Notificaciones en el navegador para el foro
Publicado por: JorgeEMX en 19 Junio 2014, 22:47 pm
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


Título: Re: Notificaciones en el navegador para el foro
Publicado por: engel lex en 20 Junio 2014, 07:36 am
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
  1. var pagina = "http://foro.elhacker.net/unread.html";
  2. var solicitud = new XMLHttpRequest();
  3. solicitud.open('GET', pagina, false);
  4. solicitud.send(null);
  5. var respuesta = solicitud.responseText
  6. var inicio = respuesta.indexOf("windowbg\"");
  7. inicio = respuesta.indexOf("<a",inicio);
  8. inicio = respuesta.indexOf(">",inicio)+1;
  9. var fin = respuesta.indexOf("</", inicio);
  10. var titulo_ultimo_post = respuesta.substr(inicio, fin-inicio).trim();
  11. inicio = respuesta.indexOf("windowbg\"",fin);
  12. inicio = respuesta.indexOf(">",inicio)+1;
  13. fin = respuesta.indexOf("</", inicio);
  14. var respuestas_ultimo_post = respuesta.substr(inicio, fin-inicio).trim();
  15. var contenido = [titulo_ultimo_post ,respuestas_ultimo_post ];
  16. //contenido[0] = titulo
  17. //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 -.-


Título: Re: Notificaciones en el navegador para el foro
Publicado por: JorgeEMX en 20 Junio 2014, 09:21 am
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


Título: Re: Notificaciones en el navegador para el foro
Publicado por: EFEX en 20 Junio 2014, 09:41 am
Por eso siempre se pidio armar una API.


Título: Re: Notificaciones en el navegador para el foro
Publicado por: engel lex en 20 Junio 2014, 15:21 pm
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  ::)


Título: Re: Notificaciones en el navegador para el foro
Publicado por: MinusFour en 26 Junio 2014, 07:11 am
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.


Título: Re: Notificaciones en el navegador para el foro
Publicado por: 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


Título: Re: Notificaciones en el navegador para el foro
Publicado por: MinusFour en 26 Junio 2014, 07:59 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).


Título: Re: Notificaciones en el navegador para el foro
Publicado por: engel lex en 26 Junio 2014, 08:11 am
yo solo estoy esperando propuestas y ver que se puede hacer al respecto... por eso mismo que dices es que lo hice jscript...

Citar
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.

tienes algo en mente? no importa que sea tonto, de algo tonto se puede armar mucho si se refina...


Título: Re: Notificaciones en el navegador para el foro
Publicado por: MinusFour en 26 Junio 2014, 08:52 am
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).


Título: Re: Notificaciones en el navegador para el foro
Publicado por: JorgeEMX en 26 Junio 2014, 17:25 pm
Con los hooks no creo que sea tan complicado ya que se ejecutaría cada que ocurra cierto evento. Yo estoy esperando a que me conteste el-brujo el mp para saber por dónde empezar.

Si no se da permiso para hacer por servidor ya se pensará en otra cosa entonces, como por ejemplo usar una extensión en Chrome que valida si estás en sesión o algo así.


Título: Re: Notificaciones en el navegador para el foro
Publicado por: engel lex en 26 Junio 2014, 21:19 pm
Aunque la idea de.minus four mega puestoa pensar... estoy viendo si con una pagina independiente intermedia se puede y como


Título: Re: Notificaciones en el navegador para el foro
Publicado por: JorgeEMX en 1 Julio 2014, 17:16 pm
Que posibilidad habría de poder usar SSI? http://wiki.simplemachines.org/smf/Available_Includes.

Sólo se necesitaría un pequeño script en PHP que incluya dicho archivo y se hagan las consultas necesarias, sería como una pequeña API. Lógicamente lo único que se haría serían operaciones de lectura y quedaría respaldado por estar alojado en el servidor de elhacker.net (sin intervención de ningún agente tercero). 

Sería bueno saber si es posible y así empezar a realizar la funcionalidad de forma local y cuando esté listo, hacerlo pasar a el-brujo para que lo suba y empiece a funcionar la extensión de Chrome.

Espero algún comentario.
Saludos.


Título: Re: Notificaciones en el navegador para el foro
Publicado por: MinusFour en 1 Julio 2014, 19:30 pm
Hmm, solo operaciones de lectura? Yo creo que por lo menos vas a necesitar escribir las notificaciones y a quienes van dirigidas.

No creo haya algo en el SSI.php que pueda ayudar, quizás BoardNews... tendrias que tener un Cron Job para que funcione así.


Título: Re: Notificaciones en el navegador para el foro
Publicado por: Slava_TZD en 1 Julio 2014, 22:32 pm
No son en el navegador, pero casi...A partir de ahí, se pueden hacer mil virguerías (hacer un demonio, modificar las notificaciones al gusto de cada cual...). Hecho en 10 minutos, lleváis discutiendo desde hace 10 días, se supone que es un foro de 'hackers'...

(http://i.imgur.com/aceiDJR.png)

Código
  1. #!/usr/bin/perl
  2. use WWW::Mechanize;
  3. use Gtk2::Notify -init, "Nuevo mensaje";
  4.  
  5. $m = WWW::Mechanize->new;
  6. $umsg= "Starting";
  7. $no;
  8.  
  9. for(;;) {
  10. sleep(5);
  11. $m->get("http://elhacker.info");
  12. $m->text =~ /ltimos mensajes en el foro (.*?)Hoy a las/;
  13.  
  14. if(($umsg cmp $1)==0) {
  15. next;
  16. }
  17. else {
  18. if($no) { $no->close; }
  19. $umsg = $1;
  20. $no = Gtk2::Notify->new($umsg);
  21. $no->show;
  22. }
  23. }


Título: Re: Notificaciones en el navegador para el foro
Publicado por: MinusFour en 1 Julio 2014, 22:48 pm
No son en el navegador, pero casi...A partir de ahí, se pueden hacer mil virguerías (hacer un demonio, modificar las notificaciones al gusto de cada cual...). Hecho en 10 minutos, lleváis discutiendo desde hace 10 días, se supone que es un foro de 'hackers'...

(http://i.imgur.com/aceiDJR.png)

Código
  1. #!/usr/bin/perl
  2. use WWW::Mechanize;
  3. use Gtk2::Notify -init, "Nuevo mensaje";
  4.  
  5. $m = WWW::Mechanize->new;
  6. $umsg= "Starting";
  7. $no;
  8.  
  9. for(;;) {
  10. sleep(5);
  11. $m->get("http://elhacker.info");
  12. $m->text =~ /ltimos mensajes en el foro (.*?)Hoy a las/;
  13.  
  14. if(($umsg cmp $1)==0) {
  15. next;
  16. }
  17. else {
  18. if($no) { $no->close; }
  19. $umsg = $1;
  20. $no = Gtk2::Notify->new($umsg);
  21. $no->show;
  22. }
  23. }


Bueno si lees el segundo post del tema te hubieras dado cuenta que ya habían propuesto algo similar... sin usar perl, simple javascript... pero lo que esta sugeriendo el OP es algo diferente.


Título: Re: Notificaciones en el navegador para el foro
Publicado por: Slava_TZD en 1 Julio 2014, 23:03 pm
...lo que esta sugeriendo el OP es algo diferente.

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

No entiendo cual es el problema de parsear(para una cosa tan simple)...menos rollos, menos problemas.


Título: Re: Notificaciones en el navegador para el foro
Publicado por: engel lex en 2 Julio 2014, 02:23 am
Tzhed\ Kyperf/ no se discute hace 10 días... se abrió hace 10 días, se ha discutido poco... lo del foro de hackers ni lo tocaré XD...

la intención que exponen es que no se haga así porque si no, son en ciertos momentos miles de peticiones seguidas o simultaneas al servidor... aunque yo defiendo que son muy pequeñas... pero desde cierto punto de vista es medio complicado porque se puede DDoSear al foro por momentos :s no por la carga, sino por las peticiones


un pequeño código para saber el peso sería...
Código
  1. var pagina = "http://foro.elhacker.net/unread.html";
  2. var solicitud = new XMLHttpRequest();
  3. solicitud.open('GET', pagina, true);
  4. solicitud.onreadystatechange = function(){
  5.  if (solicitud.readyState==4 && solicitud.status==200){ alert(solicitud .getAllResponseHeaders());};
  6. };
  7. solicitud.send(null);

no siempre el servidor manda la cabecera Content-Length, pero cuando lo manda se ve que esta petición es de aprox 8kb no es mucho... creo yo


Título: Re: Notificaciones en el navegador para el foro
Publicado por: JorgeEMX en 2 Julio 2014, 02:44 am
Más que un gran proyecto es un capricho que se me ha ocurrido hacer ;). El problema de parsear ésto, ni siquiera son el número de peticiones, si no que es una total estupidez hacerlo si existe una forma mejor (además, sólo están viendo la parte de "temas no vistos desde que visitaste el foro").

Ya veremos que tal sale, para mi va hacer mucho más cómodo estar al pendiente del foro con unas cuantas notificaciones (sin estar realmente pegado al foro pulsando F5 o entrando cada x tiempo, yo por ejemplo entro sólo unos minutos cada par de días). Ya que tenga algo serio lo publicamos por acá.

Saludos


Título: Re: Notificaciones en el navegador para el foro
Publicado por: JorgeEMX en 2 Julio 2014, 02:47 am
Bloqueo ésto por lo mientras (si, extrañamente tengo esos permisos en éste foro).


Título: Re: Notificaciones en el navegador para el foro
Publicado por: JorgeEMX en 11 Julio 2014, 06:06 am
Aquí hay algunas capturas de lo que serían las notificaciones:

Notificación:

(http://i.imgur.com/ndUdsfbl.png) (http://imgur.com/ndUdsfb)

Información que proporcionaría la extensión:

(http://i.imgur.com/vIyLakEl.png) (http://imgur.com/vIyLakE)

Aún no tiene mucha funcionalidad que digamos, pero el problema de cómo hacerlo creo que ya se está resolviendo. Ahora, no sé si alguien se anime a cooperar y quizá poder crear un proyecto en GitHUB o similar para ir añadiendo características.

La idea es tener opciones para marcar los "foros" (boards) que nos interesen y aparir de ahí obtener las notificaciones de los temas recientes. Podríamos añadir las respuestas a los temas que creamos o participemos. La parte del buscador me parece buena, se podría consultar de forma rápida y que nos redirija al foro para ver el tema completo.

Comentarios? Ideas?


Título: Re: Notificaciones en el navegador para el foro
Publicado por: MinusFour en 11 Julio 2014, 06:35 am
Se ve muy bien :o.

¿Que estás haciendo para recuper la lista de mensajes nuevos? ¿AJAX?


Título: Re: Notificaciones en el navegador para el foro
Publicado por: JorgeEMX en 11 Julio 2014, 06:43 am
Se ve muy bien :o.

¿Que estás haciendo para recuper la lista de mensajes nuevos? ¿AJAX?

Si, por medio de AJAX.


Título: Re: Notificaciones en el navegador para el foro
Publicado por: MinusFour en 11 Julio 2014, 06:51 am
Pues yo si estoy dispuesto a ayudar en cualquier cosa. Hay muchas cosas que le pudieras agregar pero no estoy seguro del rendimiento. ¿Con cuanta frecuencia estás haciendo las peticiones?


Título: Re: Notificaciones en el navegador para el foro
Publicado por: JorgeEMX en 11 Julio 2014, 06:59 am
30 seg! de prueba. Se podría poner un tiempo mínimo permisible de 5 min? 10 min? Quizá hasta deshabilitar las notificaciones y dejar sólo la información de la extensión. Todo eso debería poder ser modificable por el usuario. 


Título: Re: Notificaciones en el navegador para el foro
Publicado por: MinusFour en 11 Julio 2014, 07:02 am
A ver si puedes publicar el código por ahí para echarle un ojo.


Título: Re: Notificaciones en el navegador para el foro
Publicado por: JorgeEMX en 11 Julio 2014, 07:06 am
A ver si puedes publicar el código por ahí para echarle un ojo.

Terminaré de ordenar un poco todo y hacer la estructura de la sección de "settings" (básica, login y quizá el tiempo de las notificaciones) y entonces lo publicamos por GitHUB.