Menú principal

Plugins Facebook

Publicado por tonyvzla, Abril 29, 2013, 06:57:00 PM

Tema anterior - Siguiente tema

btocarmona

Amigos he instalado desde 0 el raptor en debian 7 por suerte salio funcionando todo bien el tema es que compile este plugin para hecharlo a andar en mi nuevo raptor pero no hay caso de que funcione, inclusive hice un backup de los plugin que tenia en mi antiguo raptor los copie lesdi permiso reinicie y salieron todos andando pero este no me funciona puse bien el regex lo compile le di permisos pero no me aparece en el reporte ni un solo archivo en cache que sera ?

juliobrenis

Cita de: joemg6 en Mayo 09, 2013, 07:04:27 PM
Como hay casos que tienen problemas con el plugin de facebook vamos a limitar para que ya no haga cache a los objetos pequeños de facebook, ya que al tener en ocasiones un gran numero de objetos puede que no se resuelva bien estas peticiones lo que provocaría que no funcione bien.
El código de fuente siguiente  hará cache a las fotos, videos y a las imagenes que tengan el tamaño de 160x160 px.

Código (cpp) [Seleccionar]

#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"
   
using namespace std;
   
// use this line to compile
// g++ -I. -fPIC -shared -g -o fbcdn.net.so fbcdn.net.cpp
// Regex
// http.*(profile|s?photo|video).*\.fbcdn\.net.*(\.jpg$|\.mp4)

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()-3)+"_"+resultado.at(resultado.size()-2)+"_"+resultado.at(resultado.size()-1);          
} else {
stringexplode(url, "/", &resultado);
return resultado.at(resultado.size()-3)+"_"+resultado.at(resultado.size()-2)+"_"+resultado.at(resultado.size()-1);
}
   }
   
extern "C" resposta getmatch(const string url) {
       resposta r;
         
       vector<string> resultado;
       string tmp;
       if (
               (url.find("profile") != string::npos) and  (url.find("s160x160") != string::npos)
            {
               r.match = true;
               r.domain = "facebook_profile";
               resultado.clear();
               stringexplode(url, "/", &resultado);
               r.file = resultado.at(resultado.size()-3)+"_"+resultado.at(resultado.size()-2)+"_"+resultado.at(resultado.size()-1);
       }  else if (
               (url.find("sphotos") != string::npos) or (url.find("photos") != string::npos)
            {
               r.match = true;
               r.domain = "facebook_photos";
               resultado.clear();
               stringexplode(url, "/", &resultado);
               r.file = resultado.at(resultado.size()-3)+"_"+resultado.at(resultado.size()-2)+"_"+resultado.at(resultado.size()-1);
       } else if (
                  (url.find("video") != string::npos) or (url.find(".mp4") != string::npos)
            {
               r.file = get_filename(url);
               if (!r.file.empty()) {
                  r.match = true;
                  r.domain = "facebook_video";      
                  } else {
                  r.match = false;}
       }  else {
               r.match = false;
           }
           return r;
}


PD.- No olvidar si se va a usar este plugin borrar el contenido del plugin anterior.

Amigo Joem gracias por tus valiosos aportes las fotos han mejorado ya que anteriormente se veian muy pixeleadas.
OK

andret1719

Cita de: joemg6 en Mayo 09, 2013, 07:04:27 PM
Como hay casos que tienen problemas con el plugin de facebook vamos a limitar para que ya no haga cache a los objetos pequeños de facebook, ya que al tener en ocasiones un gran numero de objetos puede que no se resuelva bien estas peticiones lo que provocaría que no funcione bien.
El código de fuente siguiente  hará cache a las fotos, videos y a las imagenes que tengan el tamaño de 160x160 px.

Código (cpp) [Seleccionar]

#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"
   
using namespace std;
   
// use this line to compile
// g++ -I. -fPIC -shared -g -o fbcdn.net.so fbcdn.net.cpp
// Regex
// http.*(profile|s?photo|video).*\.fbcdn\.net.*(\.jpg$|\.mp4)

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()-3)+"_"+resultado.at(resultado.size()-2)+"_"+resultado.at(resultado.size()-1);          
} else {
stringexplode(url, "/", &resultado);
return resultado.at(resultado.size()-3)+"_"+resultado.at(resultado.size()-2)+"_"+resultado.at(resultado.size()-1);
}
   }
   
extern "C" resposta getmatch(const string url) {
       resposta r;
         
       vector<string> resultado;
       string tmp;
       if (
               (url.find("profile") != string::npos) and  (url.find("s160x160") != string::npos)
            {
               r.match = true;
               r.domain = "facebook_profile";
               resultado.clear();
               stringexplode(url, "/", &resultado);
               r.file = resultado.at(resultado.size()-3)+"_"+resultado.at(resultado.size()-2)+"_"+resultado.at(resultado.size()-1);
       }  else if (
               (url.find("sphotos") != string::npos) or (url.find("photos") != string::npos)
            {
               r.match = true;
               r.domain = "facebook_photos";
               resultado.clear();
               stringexplode(url, "/", &resultado);
               r.file = resultado.at(resultado.size()-3)+"_"+resultado.at(resultado.size()-2)+"_"+resultado.at(resultado.size()-1);
       } else if (
                  (url.find("video") != string::npos) or (url.find(".mp4") != string::npos)
            {
               r.file = get_filename(url);
               if (!r.file.empty()) {
                  r.match = true;
                  r.domain = "facebook_video";      
                  } else {
                  r.match = false;}
       }  else {
               r.match = false;
           }
           return r;
}


PD.- No olvidar si se va a usar este plugin borrar el contenido del plugin anterior.

Perdona mi ignorancia pero quiero saber si  este plugin ya esta incluido en la ultima versión de raptor o tengo que agregarlo?

andret1719

Cita de: luistec en Mayo 10, 2013, 12:12:59 PM
No olviden de comentar como les va con este nuevo codigo los que hayan tenido problemas con el plugin anterior, porque talvez puede ser que sean causas extenas al raptor como sucedio en una fecha pasada.

Saludos.

Amigo buenas noches, este plugin de Facebook esta funcionando y es que ya trae la ultima versión de raptor?

luistec

Cita de: andret1719 en Enero 07, 2015, 11:05:13 PM
Amigo buenas noches, este plugin de Facebook esta funcionando y es que ya trae la ultima versión de raptor?
Viene incluido, pero no tiene efectividad, ya que facebook utiliza el protocolo https.

Saludos.

firecold

Cita de: andret1719 en Enero 07, 2015, 11:05:13 PM
Amigo buenas noches, este plugin de Facebook esta funcionando y es que ya trae la ultima versión de raptor?

Amigo como ya lo hemos hecho mencion tanto Joemg6, Luistec y mi persona, Raptor y cualquier otro Proxy por asi decirlo trabaja con http (80) y no se puede hacer cache con https (443) ya que es trafico encriptado o protegido y desde que facebook empezo a usar https (443), raptor dejo de hacerle cache, pero como comenta Luistec el plugin viene por defecto en la instalacion, pero no funciona por el detalle antes mencionado, pero quien sabe algun dia se pueda, Saludos