Alterserv

RaptorCache => Plugins para RaptorCache => Mensaje publicado por: andersonscinfo en Enero 03, 2015, 10:07:23 PM

Título: Plugin para teste de velocidade
Publicado por: andersonscinfo en Enero 03, 2015, 10:07:23 PM
Boa noite, estou tentando fazer meu primeiro plugin de velocidade, mas ainda não sei se ta funcionando, gostaria que alguem desse uma olhada, segue abaixo.


#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o rjnet.com.br.so rjnet.com.br.cpp
// Regex
// http.*\.rjnet\.com\.br.*(\.swf|\.jpg|\.bmp|\.txt|\.jpeg)



string get_filename(string url) {
                vector<string> resultado;
        string retorna = "";
        stringexplode(url, "/", &resultado);
        retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
        return retorna;
}

extern "C" resposta getmatch(const string url) {
        resposta r;       

               
  if ( (url.find("rjnet.com.br") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "rjnet.com.br";       
      } else {
         r.match = false;
      }
   }
   else
   {
      r.match = false;
   }
   return r;
}



Att.
Anderson Junior
Título: Re:Plugin para teste de velocidade
Publicado por: firecold en Enero 03, 2015, 10:10:46 PM
Cita de: andersonscinfo en Enero 03, 2015, 10:07:23 PM
Boa noite, estou tentando fazer meu primeiro plugin de velocidade, mas ainda não sei se ta funcionando, gostaria que alguem desse uma olhada, segue abaixo.


#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o rjnet.com.br.so rjnet.com.br.cpp
// Regex
// http.*\.rjnet\.com\.br.*(\.swf|\.jpg|\.bmp|\.txt|\.jpeg)



string get_filename(string url) {
               vector<string> resultado;
       string retorna = "";
       stringexplode(url, "/", &resultado);
       retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
       return retorna;
}

extern "C" resposta getmatch(const string url) {
       resposta r;        

               
 if ( (url.find("rjnet.com.br") != string::npos)
    ) {
     r.file = get_filename(url);
     if (!r.file.empty()) {
        r.match = true;
        r.domain = "rjnet.com.br";      
     } else {
        r.match = false;
     }
  }
  else
  {
     r.match = false;
  }
  return r;
}


Att.
Anderson Junior

Amigo tienes las urls de dicho sitio, ya que dependiendo como se entrega el contenido el sitio, asi tambien cambia la forma de crear el plugin, Saludos
Título: Re:Plugin para teste de velocidade
Publicado por: andersonscinfo en Enero 03, 2015, 11:24:02 PM
Ola, ainda não tenho facilidade em fazer os plugins, conheço o raptorcache a 5 dias, se entendi bem você disse que pode mudar a forma de fazer o plugin dependendo da url, segue as urls que acho que devem ser cacheadas.

onde fica o medidor de velocidade.
http://www.rjnet.com.br/3velocimetro.php

olhando para os fontes tambem achei esse endereço
http://www.rjnet.com.br/speedtest.swf?v=2.2

se puder dar uma olhada fico agradecido.

Att.
Anderson Junior
Título: Re:Plugin para teste de velocidade
Publicado por: francisco.romero87 en Enero 06, 2015, 01:49:39 PM
pruebalo y nos avisas

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o rjnet.com.br.so rjnet.com.br.cpp
// Regex
// http.*\.rjnet\.com\.br.*(\.jpeg|\.png)

string get_filename(string url) {
                vector<string> resultado;
        string retorna = "";
        stringexplode(url, "/", &resultado);
        retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
        return retorna;
}

extern "C" resposta getmatch(const string url) {
        resposta r;       
               
  if ( (url.find("rjnet.com.br/") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "rjnet.com.br";       
      } else {
         r.match = false;
      }
   }
   else
   {
      r.match = false;
   }
   return r;
}
Título: Re:Plugin para teste de velocidade
Publicado por: andersonscinfo en Enero 06, 2015, 07:53:53 PM
Ola, obrigado pelo exemplo, mas ainda não funcionou, percebi que o arquivo usado pelo velocimetro é um arquivo com a extenção jpg exemplo:

http://www.rjnet.com.br/speedtest/random350x350.jpg?x=1420591701100-2

alterei o regex para:

http.*\.rjnet\.com\.br.*(\.jpg\?.*|\.png)

só que mesmo assim não funcionou, ainda não encontrei onde estou errando.

Att.
Anderson Junior
Título: Re:Plugin para teste de velocidade
Publicado por: firecold en Enero 06, 2015, 09:48:00 PM
Cita de: andersonscinfo en Enero 06, 2015, 07:53:53 PM
Ola, obrigado pelo exemplo, mas ainda não funcionou, percebi que o arquivo usado pelo velocimetro é um arquivo com a extenção jpg exemplo:

http://www.rjnet.com.br/speedtest/random350x350.jpg?x=1420591701100-2

alterei o regex para:

http.*\.rjnet\.com\.br.*(\.jpg\?.*|\.png)

só que mesmo assim não funcionou, ainda não encontrei onde estou errando.

Att.
Anderson Junior

Para evitar tanta cosa puedes hacerlo con este:

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);
        }
}


Asi evitamos los de los signos de interrogacion, Saludos
Título: Re:Plugin para teste de velocidade
Publicado por: andersonscinfo en Enero 07, 2015, 05:23:24 AM
Ola, obrigado pela dica, fiz a alteração no plugin, mas parece não ter surtido efeito, olhando para o header da pagina parece que o squid continua fazendo o trabalho que era pra ser do raptor, o squid mesmo com o regex dizendo para não cachear ele continua cacheando, olhe a imagem por favor.

(http://s3.postimg.org/q1zer7lbn/nota20.png)

Att.
Anderson Junior
Título: Re:Plugin para teste de velocidade
Publicado por: Calamardo en Mayo 09, 2015, 04:48:33 PM
Yo a igual que tu ando loco realizando pluings para engañar al cliente y que salga del cache pero a lo que he leido es imposible de hacer ya  :(
Título: Re:Plugin para teste de velocidade
Publicado por: brunosaraiva en Junio 27, 2015, 06:11:43 AM
Bom dia a todos,

Aproveitando os códigos acima, consegui fazer MISS do arquivos deste site de testes: speedtest.copel.net, mas não esta dando HIT.

Acredito que seja a REGEX que esteja com algum erro, gostaria da ajuda dos mais experientes, para dizer onde estou errando e como devo proceder!


#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o speedtest.copel.net.so speedtest.copel.net.cpp
// Regex
// http.*\.speedtest.copel\.net.*(\.jpeg|\.png|\.txt)

string get_filename(string url) {
                vector<string> resultado;
        string retorna = "";
        stringexplode(url, "/", &resultado);
        retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
        return retorna;
}

extern "C" resposta getmatch(const string url) {
        resposta r;       
               
  if ( (url.find("speedtest.copel.net/speedtest/") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "speedtest.copel.net";       
      } else {
         r.match = false;
      }
   }
   else  if ( (url.find("speedtest2.copel.net/speedtest/") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "speedtest2.copel.net";       
      } else {
         r.match = false;
      }
   }else if ( (url.find("speedtest7.copel.net/speedtest/") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "speedtest7.copel.net";       
      } else {
         r.match = false;
      }
   }else if ( (url.find("speedtest8.copel.net/speedtest/") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "speedtest8.copel.net";       
      } else {
         r.match = false;
      }
   }else{
      r.match = false;
   }
   return r;
}


OBS.: O .txt, é para testar a possibilidade de diminuir a latencia, mas acredito não fazer diferença usando deste modo.

Att