Plugins Fotos Facebook

Publicado por delfpc, Noviembre 16, 2012, 12:57:52 AM

Tema anterior - Siguiente tema

jmvasilyd

firecold , tienes mucha razon, voy a probar y publico si todo salio bien.- gracias otra vez.

firecold

Buenos dias Amigos del foro aqui publicando un aporte del amigo xtanctp, el cual estoy usando en este momento pruebenlo:

#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"
 
// use this line to compile 
// g++ -I. -fPIC -shared -g -o fbcdn.net.so fbcdn.net.cpp
// regex
// http.*\.fbcdn\.net.*(\.jpg|\.mp4)
 
   string dominiotxt="facebook";
   string get_filename(string url) {
         vector<string> resultado;
                   if (url.find("?") != string::npos) {
            stringexplode(url, "?", &resultado);
            stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
            return resultado.at(resultado.size()-1);          
         } else {
            stringexplode(url, "/", &resultado);
            return resultado.at(resultado.size()-1);
         }
   }

   extern "C" resposta getmatch(const string url) {
       resposta r;
  if ( (url.find("profile.ak.fbcdn.net/") != string::npos)
      ) {
   dominiotxt="facebook_profile";
   }
   if ((url.find("s480x480/")!= string::npos)
      ) {
   dominiotxt="facebook_photos";
   }
   if ( (url.find("p851x315/")!= string::npos) or
      (url.find("p370x247/")!= string::npos) or
     (url.find("s720x720/")!= string::npos)
      ) {
   dominiotxt="facebook/banner";
   }
  if ( (url.find("p843x403/")!= string::npos) or
      (url.find("p403x403/")!= string::npos) or
      (url.find("p206x206/")!= string::npos) or
      (url.find("p200x200/")!= string::npos) or
      (url.find("p133x133/")!= string::npos)
        {
   dominiotxt="facebook/muro";
   }
   if ( (url.find("video.ak.fbcdn.net/") != string::npos)
      ) {
   dominiotxt="facebook_video";
   }
   if ( (url.find("sphotos-[a-z]?.ak.fbcdn.net/") != string::npos) or
        (url.find("profile.ak.fbcdn.net/") != string::npos)   or
        (url.find("fbcdn.net/") != string::npos) and
  ((url.find(".jpg")!= string::npos) or
  (url.find(".mp4")!= string::npos))
      )  {
         r.file = get_filename(url);
         if (!r.file.empty()) {
            r.match = true;
            //r.domain = "facebook";
            r.domain = dominiotxt;
         } else {
            r.match = false;
         }
      } else {
         r.match = false;
      }
      return r;
   }


Espero les sirva Saludos

luistec

Cita de: firecold en Noviembre 30, 2012, 10:02:26 AM
Buenos dias Amigos del foro aqui publicando un aporte del amigo xtanctp, el cual estoy usando en este momento pruebenlo:

#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"
 
// use this line to compile 
// g++ -I. -fPIC -shared -g -o fbcdn.net.so fbcdn.net.cpp
// regex
// http.*\.fbcdn\.net.*(\.jpg|\.mp4)
   
    string dominiotxt="facebook";
    string get_filename(string url) {
          vector<string> resultado;
                    if (url.find("?") != string::npos) {
             stringexplode(url, "?", &resultado);
             stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
             return resultado.at(resultado.size()-1);           
          } else {
             stringexplode(url, "/", &resultado);
             return resultado.at(resultado.size()-1);
          }
    }

    extern "C" resposta getmatch(const string url) {
        resposta r;
   if ( (url.find("profile.ak.fbcdn.net/") != string::npos)
       ) {
    dominiotxt="facebook_profile";
    }
    if ((url.find("s480x480/")!= string::npos)
       ) {
    dominiotxt="facebook_photos";
    }
    if ( (url.find("p851x315/")!= string::npos) or
       (url.find("p370x247/")!= string::npos) or
      (url.find("s720x720/")!= string::npos)
       ) {
    dominiotxt="facebook/banner";
    }
   if ( (url.find("p843x403/")!= string::npos) or
       (url.find("p403x403/")!= string::npos) or
       (url.find("p206x206/")!= string::npos) or
       (url.find("p200x200/")!= string::npos) or
       (url.find("p133x133/")!= string::npos)
         {
    dominiotxt="facebook/muro";
    }
    if ( (url.find("video.ak.fbcdn.net/") != string::npos)
       ) {
    dominiotxt="facebook_video";
    }
    if ( (url.find("sphotos-[a-z]?.ak.fbcdn.net/") != string::npos) or
         (url.find("profile.ak.fbcdn.net/") != string::npos)   or
         (url.find("fbcdn.net/") != string::npos) and
   ((url.find(".jpg")!= string::npos) or
   (url.find(".mp4")!= string::npos))
       )  {
          r.file = get_filename(url);
          if (!r.file.empty()) {
             r.match = true;
             //r.domain = "facebook";
             r.domain = dominiotxt;
          } else {
             r.match = false;
          }
       } else {
          r.match = false;
       }
       return r;
    }


Espero les sirva Saludos

Ahora las imagenes del facebook no todas llevan la descripción por tamaño por lo tanto el filtro que pone talvez no sea tan efectivo.

Saludos.

firecold

Cita de: luistec en Noviembre 30, 2012, 10:29:15 AM
Ahora las imagenes del facebook no todas llevan la descripción por tamaño por lo tanto el filtro que pone talvez no sea tan efectivo.

Saludos.

Amigo luistec pruebelo y me avisa, por lo menos a mi me esta funcionando, Saludos

luistec

Cita de: firecold en Noviembre 30, 2012, 10:59:05 AM
Amigo luistec pruebelo y me avisa, por lo menos a mi me esta funcionando, Saludos
Es una deduccion por lógica amigo por lo que se ve como se esta filtrando, anteriormente tambien habia revisado las url y por eso vi que no todas las imagenes llevan esa descripcion por tamaño, ademas cuando uno hace la prueba con un plugin con un código diferente, el cache anterior ya no sirve.

Saludos.

firecold

Cita de: luistec en Noviembre 30, 2012, 11:13:48 AM
Es una deduccion por lógica amigo por lo que se ve como se esta filtrando, anteriormente tambien habia revisado las url y por eso vi que no todas las imagenes llevan esa descripcion por tamaño, ademas cuando uno hace la prueba con un plugin con un código diferente, el cache anterior ya no sirve.

Saludos.

tiene algo de logica lo que dices pero si no fuera cierto lo que te digo, no lo postearia, yo lo acabo de poner y mira el resultado, por ende borre la base de datos de las fotos de facebook y tambien en /thunder y este fue el resultado del plugin mensionado:



y eso fue lo que recolecto en lo que escribia este mensaje, Saludos

luistec

Cita de: firecold en Noviembre 30, 2012, 04:53:34 PM
tiene algo de logica lo que dices pero si no fuera cierto lo que te digo, no lo postearia, yo lo acabo de poner y mira el resultado, por ende borre la base de datos de las fotos de facebook y tambien en /thunder y este fue el resultado del plugin mensionado:

y eso fue lo que recolecto en lo que escribia este mensaje, Saludos
Creo que estas confundiendo el comentario, en ningun momento dije que no funcione lo que dije es que el filtrado por tamaño de imagenes tal vez no sea efectivo, esto por que en las urls de varias imagenes he podido ver ya no usan ese formato y por ende no los reconosca, y si no los reconoce en las lineas

(url.find("sphotos-[a-z]?.ak.fbcdn.net/") != string::npos) or
         (url.find("profile.ak.fbcdn.net/") != string::npos)   or
         (url.find("fbcdn.net/") != string::npos)

ya no hará cache de esas imagenes.

Saludos.

tonyvzla

Buenas tarde, amigos el plug de imágenes de facebook creo que esta fallando dejo captura de las imágenes:

Con thunder activado



Sin thunder:

En ayuda de los mas desprotegidos

tonyvzla

mas fallas:

Con thunder activado:



Sin thunder activado:

En ayuda de los mas desprotegidos

firecold

Cita de: tonyvzla en Diciembre 02, 2012, 02:00:11 PM
mas fallas:

Con thunder activado:



Sin thunder activado:


Si amigo tonyvzla me habia percatado de este problema, el error esta que cachea safe_image.php y app_full_proxy.php que son de external y platform ya al copiar estos dos archivos, empieza a dar problemas, en el script no te da problema con platform pero si con external, con una solucion momentanea hasta el momento, te dare el codigo para que lo pruebes, lo que unico que tienes que eliminar lo que ya tenias cacheado por el anterior plugin o puedes esperar alguna solucion tanto de luistec y joemg6, que siempre estan un paso adelante:

#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"
 
// use this line to compile 64
// g++ -I. -fPIC -shared -g -o fbcdn.net.so fbcdn.net.cpp
// regex
// http.*\.fbcdn\.net.*(\.jpg|\.mp4)
bool in_array(const string &needle, const vector< string > &haystack) {
   int max = haystack.size();

   if (max == 0) return false;

for (int iii = 0; iii < max; iii++) {
       if (regex_match(haystack[iii], needle) != "") {
           return true;
}
}
   return false;
}
   string dominiotxt="facebook";
   string get_filename(string url) {
         vector<string> resultado;
                   if (url.find("?") != string::npos) {
            stringexplode(url, "?", &resultado);
            stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
            return resultado.at(resultado.size()-1);          
         } else {
            stringexplode(url, "/", &resultado);
            return resultado.at(resultado.size()-1);
         }
   }

   extern "C" resposta getmatch(const string url) {
       resposta r;
vector<string> black_list;
black_list.push_back ("safe_image.php");

  if ( (url.find("profile.ak.fbcdn.net/") != string::npos)
      ) {
   dominiotxt="facebook_profile";
   }
   if ((url.find("s480x480/")!= string::npos)
      ) {
   dominiotxt="facebook_photos";
   }
   if ( (url.find("p851x315/")!= string::npos) or
      (url.find("p370x247/")!= string::npos) or
     (url.find("s720x720/")!= string::npos)
      ) {
   dominiotxt="facebook/banner";
   }
  if ( (url.find("p843x403/")!= string::npos) or
      (url.find("p403x403/")!= string::npos) or
      (url.find("p206x206/")!= string::npos) or
      (url.find("p200x200/")!= string::npos) or
      (url.find("p133x133/")!= string::npos)
      ) {
   dominiotxt="facebook/muro";
   }
   if ( (url.find("video.ak.fbcdn.net/") != string::npos)
      ) {
   dominiotxt="facebook_video";
   }
   if ( (url.find("sphotos-[a-z]?.ak.fbcdn.net/") != string::npos) or
        (url.find("profile.ak.fbcdn.net/") != string::npos)   or
        (url.find("fbcdn.net/") != string::npos) and
  ((url.find(".jpg")!= string::npos) or
  (url.find(".mp4")!= string::npos)) and (in_array(url, black_list) == false)
      )  {
         r.file = get_filename(url);
         if (!r.file.empty()) {
            r.match = true;
            //r.domain = "facebook";
            r.domain = dominiotxt;
         } else {
            r.match = false;
         }
      } else {
         r.match = false;
      }
      return r;
   }


Espero te sirva, Saludos

tonyvzla

Gracias amigo firecold, pero este plug es para 64? yo poseo 32 bits da un error al compilar:

root@proxy:/etc/thunder/pluginmaker/plugins# g++ -I. -fPIC -shared -g -o fbcdn.net.so fbcdn.net.cpp
fbcdn.net.cpp: In function âresposta getmatch(std::string)â:
fbcdn.net.cpp:59: error: expected â)â before â{â token
En ayuda de los mas desprotegidos

luistec

Cita de: tonyvzla en Diciembre 02, 2012, 10:01:46 PM
Gracias amigo firecold, pero este plug es para 64? yo poseo 32 bits da un error al compilar:

root@proxy:/etc/thunder/pluginmaker/plugins# g++ -I. -fPIC -shared -g -o fbcdn.net.so fbcdn.net.cpp
fbcdn.net.cpp: In function âresposta getmatch(std::string)â:
fbcdn.net.cpp:59: error: expected â)â before â{â token
Los códigos de fuente sirven tanto para 32 como 64 bits eso ya depende en que sistema se compile, el error que te sale es por que en el codigo de fuente en la línea 59 le falta cerrar con un parentesis " ) ".

Saludos.

firecold

Cita de: luistec en Diciembre 02, 2012, 11:01:55 PM
Los códigos de fuente sirven tanto para 32 como 64 bits eso ya depende en que sistema se compile, el error que te sale es por que en el codigo de fuente en la línea 59 le falta cerrar con un parentesis " ) ".

Saludos.

Siempre hago lo mismo verdad luistec siempre se me olvida algo, por lo menos hay alguien que se da cuenta, Gracias Amigo Luistec

tonyvzla

No soy muy ducho en códigos pero le doy de a poco: ya corregí la syntaxis en la linea 59 pero aun sigue dando errores, cuando lo tengas pulido amigo firecold lo publicas y probamos saludos:


root@proxy:/etc/thunder/plugins# g++ -I. -fPIC -shared -g -o fbcdn.net.so fbcdn.net.cpp
fbcdn.net.cpp:4:24: error: ../utils.cpp: No existe el fichero o el directorio
fbcdn.net.cpp:10: error: ISO C++ forbids declaration of âstringâ with no type
fbcdn.net.cpp:10: error: expected â,â or â...â before â&â token
fbcdn.net.cpp: In function âbool in_array(int)â:
fbcdn.net.cpp:11: error: âhaystackâ was not declared in this scope
fbcdn.net.cpp:16: error: âneedleâ was not declared in this scope
fbcdn.net.cpp:16: error: âregex_matchâ was not declared in this scope
fbcdn.net.cpp: At global scope:
fbcdn.net.cpp:22: error: âstringâ does not name a type
fbcdn.net.cpp:23: error: âstringâ does not name a type
fbcdn.net.cpp:35: error: ârespostaâ does not name a type
En ayuda de los mas desprotegidos

dgonzaleznet

Hola Firecold, estaba haciendo una limpieza de la base de datos para proceder con el pluggin y me salió este mensaje:

mysql> DELETE FROM thunder WHERE domain="facebook_small";
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

y no puedo borrar las entradas de esa base... cuando reinicie no levantó el mysql tampoco tuve que levantarlo manualmente, alguna sugerencia?
Saludos Cordiales,
Daniel González Peña

firecold

Cita de: tonyvzla en Diciembre 03, 2012, 05:44:01 AM
No soy muy ducho en códigos pero le doy de a poco: ya corregí la syntaxis en la linea 59 pero aun sigue dando errores, cuando lo tengas pulido amigo firecold lo publicas y probamos saludos:


root@proxy:/etc/thunder/plugins# g++ -I. -fPIC -shared -g -o fbcdn.net.so fbcdn.net.cpp
fbcdn.net.cpp:4:24: error: ../utils.cpp: No existe el fichero o el directorio
fbcdn.net.cpp:10: error: ISO C++ forbids declaration of âstringâ with no type
fbcdn.net.cpp:10: error: expected â,â or â...â before â&â token
fbcdn.net.cpp: In function âbool in_array(int)â:
fbcdn.net.cpp:11: error: âhaystackâ was not declared in this scope
fbcdn.net.cpp:16: error: âneedleâ was not declared in this scope
fbcdn.net.cpp:16: error: âregex_matchâ was not declared in this scope
fbcdn.net.cpp: At global scope:
fbcdn.net.cpp:22: error: âstringâ does not name a type
fbcdn.net.cpp:23: error: âstringâ does not name a type
fbcdn.net.cpp:35: error: ârespostaâ does not name a type


Amigo tienes instalado el pluginmaker, si ese es tu problema aqui esta el pluginmaker:

wget http://www.joemg.host56.com/pl/pluginmaker.zip
unzip pluginmaker.zip
mv pluginmaker /etc/thunder/


Luego ingresamos a la carpeta pluginmaker y dentro de esta carpeta hay una carpeta plugins donde estan los códigos de fuente.

cd /etc/thunder/pluginmaker/plugins/

Y si en todo cado no fuera eso revisa si copiaste bien, Saludos

tonyvzla

Si tengo instalado plugimaker amigo firecold
En ayuda de los mas desprotegidos

tonyvzla

Pero observando veo que squid hace cache de los jpg:

En ayuda de los mas desprotegidos

firecold

Cita de: tonyvzla en Diciembre 03, 2012, 07:13:38 PM
Pero observando veo que squid hace cache de los jpg:



Amigo reiniciaste el thunder para que leyera el nuevo plugin, a veces me pasa con chrome que tengo que cerrar la pestaña de facebook y volver a abrir el facebook, si no te funciona me avisas, Saludos

ingjaab

hola digamen ya funciona el plugin de facebook para hacerlo se agradece la ayuda  ???
Mueres siendo un héroe, o vives lo suficiente para convertirte en villano