Instalación de ThunderCache 3.1 paralelo a Mikrotik

Publicado en 'Redes Inalámbricas' por joemg6, 8 Ago 2011.





  1. luistec

    luistec Miembro frecuente

    Registro:
    5 Mar 2012
    Mensajes:
    206
    Likes:
    19
    Temas:
    0




    No es que no sea valientes el detalle es que otros utilisan esa informacion para lucrarse y eso creo esta mal por lo menos deben de aportar al foro lo que se ha aprendido porque he visto esos casos, y es tal ves ese motivo por lo que no lo hacen tan publico, por lo particular a mi si me han ayudado bastante en ese aspecto si no los nombro es por respeto, el detalle es que debe de partir la iniciativa de cada uno y no esperar que te dean el codigo de fuente listo por asi decirlo.
     


  2. javierorrala

    javierorrala Miembro nuevo

    Registro:
    31 Oct 2011
    Mensajes:
    14
    Likes:
    0
    Temas:
    0
    Interesante aunque los ejemplos estan disponibles en la web doy mi aporte aqui, aun no le entiendo muy bien y varia dependiendo de como el sitio almacene los contenidos :
    ESTE LE MODIFIQUE PARA FULLTONO.COM

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

    // use this line to compile
    // g++ -I. -fPIC -shared -g -o fulltono.com.so fulltono.com.cpp

    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(".fulltono.com/") != string::npos) and
    (url.find(".ftm") != string::npos) or (url.find(".sdk") != string::npos)
    ) {

    r.file = get_filename(url);
    if (!r.file.empty()) {
    r.match = true;
    r.domain = "fulltono";
    } else {
    r.match = false;
    }
    } else {
    r.match = false;
    }
    return r;
    }

    ----- mensaje añadido, 15-abr-2012 a las 10:50 -----

    este para videcaserox.com

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

    // use this line to compile
    // g++ -I. -fPIC -shared -g -o videocaserox.com.so videocaserox.com.cpp

    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("videocaserox.com/") != string::npos) and
    (url.find("uploads") != string::npos) and (url.find(".flv") != string::npos)
    ) {

    r.file = get_filename(url);
    if (!r.file.empty()) {
    r.match = true;
    r.domain = "videocaserox";
    } else {
    r.match = false;
    }
    } else {
    r.match = false;
    }
    return r;
    }

    ----- mensaje añadido, 15-abr-2012 a las 10:55 -----

    http.*\.fulltono\.com.*(\.ftm|\.sdk)
    http.*\.videocaserox\.com.*\.flv

    ----- mensaje añadido, 15-abr-2012 a las 10:57 -----

    Esta modificacion del Avast que la version 7 no me cacheaba

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

    // use this line to compile
    // g++ -I. -fPIC -shared -g -o avast.com.so avast.com.cpp

    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(".avast.com/") != string::npos) and
    ( (url.find(".vpu") != string::npos) or (url.find(".vpx") != string::npos) or (url.find(".smtap") != string::npos) ) and
    (url.find("servers.def.vpu") == string::npos) or (url.find("servers.def.vpx") == string::npos) // this catch servers.def.vpu.smtap too
    ) {

    r.file = get_filename(url);
    if (!r.file.empty()) {
    r.match = true;
    r.domain = "avast";
    } else {
    r.match = false;
    }
    } else {
    r.match = false;
    }
    return r;
    }

    ----- mensaje añadido, 15-abr-2012 a las 10:58 -----

    aun no logro que me cache el norton 2012 cuando activo el plugin ni me baja las actualizaciones

    ----- mensaje añadido, 15-abr-2012 a las 11:02 -----

    Asi almacenaba fulltono las musicas que se reproducian.

    server9.fulltono.com/ae5b3122-d5ed-4494-abd8-6948dbb5c4e8-5824742.ftm
    server8.fulltono.com/4bbdff0d-e240-4833-b561-e07baedb1b36-241.ftm
    server13.fulltono.com/f72e014a-99c3-4003-8f77-ef2fd12e92ad-4499446.ftm
     
  3. Firecold

    Firecold Miembro frecuente

    Registro:
    27 Feb 2012
    Mensajes:
    87
    Likes:
    6
    Temas:
    0
    Ahora bien como haces para que sean por ejemplo avast.com.so, por decirlo en terminos tecnicos como los compilas, pregunta quisiera saber, nunca hace daño saber como se hace algo que te interesa., tambien quiero comentar que el plugin de youtube me esta funcionando al 80%, que es mejor a que no cachee nada, gracias amigos por contribuir tanto, soy nuevo en linux y me parece sorprendente todo lo que se puede hacer, Garcias Saludos
     
    Última edición: 15 Abr 2012
  4. coolporro

    coolporro Miembro nuevo

    Registro:
    25 Mar 2012
    Mensajes:
    29
    Likes:
    0
    Temas:
    0
    totalmente de acuerdo contigo
     
  5. williamsio

    williamsio Miembro maestro

    Registro:
    17 May 2009
    Mensajes:
    439
    Likes:
    28
    Temas:
    3
    //Fulltono Optimizado Programador: javierorrala
    #include <iostream>
    #include <cstring>
    #include <vector>
    #include "../utils.cpp"

    // use this line to compile
    // g++ -I. -fPIC -shared -g -o fulltono.com.so fulltono.com.cpp

    string get_filename(string url) {
    vector<string> resultado;
    //la reduccion de codigo en esta zona solo es por razones de performance, va funcionar tambien el codigo anterior
    //tenia cosas de mas
    stringexplode(url, "/", &resultado);
    return resultado.at(resultado.size()-1);
    }

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

    if ((url.find(".fulltono.com/") != string::npos) and
    (url.find(".ftm") != string::npos))
    {
    r.file = get_filename(url);
    if (!r.file.empty()) {
    r.match = true;
    r.domain = "fulltono";
    } else {
    r.match = false;
    }
    } else {
    r.match = false;
    }
    return r;
    }
    //-------------------------------------------------------------------------------
    :hi:
    quite lo del sdk pprque para mis pruebas nunca me toco un archivo de musica con ese formato, y quite lo demas solo por performance

    ----- mensaje añadido, 15-abr-2012 a las 16:31 -----

    //VideosX jaja la porno: Programador javierorrala optimizada
    #include <iostream>
    #include <cstring>
    #include <vector>
    #include "../utils.cpp"

    // use this line to compile
    // g++ -I. -fPIC -shared -g -o videocaserox.com.so videocaserox.com.cpp

    string get_filename(string url) {
    vector<string> resultado;
    stringexplode(url, "/", &resultado);
    return resultado.at(resultado.si ze()-1);
    }

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

    if ( (url.find("videocaserox.com/") != string::npos) and
    (url.find("uploads") != string::npos) and (url.find(".flv") != string::npos)
    ) {

    r.file = get_filename(url);
    if (!r.file.empty()) {
    r.match = true;
    r.domain = "videocaserox";
    } else {
    r.match = false;
    }
    } else {
    r.match = false;
    }
    return r;
    }
    :hi:
    caso parecido al anterior solo quite lo que no es nesesario para este caso

    las 2 van a trabajar OK test :w0w: Be happy
     
    Última edición: 15 Abr 2012
  6. joemg6

    joemg6 Miembro maestro

    Registro:
    5 May 2010
    Mensajes:
    455
    Likes:
    198
    Temas:
    4
    [FONT=&quot][/FONT][FONT=&quot]El código puede quedar aún más corto todavía quitando "and (url.find(".ftm") != string::npos)" en el caso del fulltono igual en el caso de videocaserox se quitaría las extensiones, puesto que el contenido llamemoslo no está dinámicamente escondido, las extensiones solo pondrían en el regexp del thunder.lst, el código del fulltono quedaría:[/FONT]
    Código:
    #include <iostream>
    #include <cstring>
    #include <vector>
    #include "../utils.cpp"
    
    // use this line to compile
    // g++ -I. -fPIC -shared -g -o fulltono.com.so fulltono.com.cpp
    
    string get_filename(string url) {
        vector<string> resultado; 
        stringexplode(url, "/", &resultado);
        return resultado.at(resultado.size()-1);
    }
    
    extern "C" resposta getmatch(const string url) {
    resposta r;
    
       if (url.find(".fulltono.com/") != string::npos) 
        {
          r.file = get_filename(url);
             if (!r.file.empty()) {
                    r.match = true;
                    r.domain = "fulltono";
             } else {
                    r.match = false;
             }
       } else {
             r.match = false;
       }
       return r;
    }
    
     
    Última edición: 15 Abr 2012
  7. williamsio

    williamsio Miembro maestro

    Registro:
    17 May 2009
    Mensajes:
    439
    Likes:
    28
    Temas:
    3
    error!! si quitas la extencion te vas a gravar hasta los html de la pagina fulltono:cray:lo que queremos solo es el contenido pesado, osea los archivos [FONT=&quot]ftm[/FONT]
    Me corrijo yo mismo amigo tienes razon el regex hace ese trabajo tu code OK

    pero yo lo redusco mas aun:
    :P

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

    // use this line to compile
    // g++ -I. -fPIC -shared -g -o fulltono.com.so fulltono.com.cpp

    extern "C" resposta getmatch(const string url) {
    vector<string> resultado;
    resposta r;

    if (url.find(".fulltono.com/") != string::npos)
    {
    stringexplode(url, "/", &resultado);
    r.file = get_filename(resultado.at(resultado.size()-1));
    if (!r.file.empty()) {
    r.match = true;
    r.domain = "fulltono";
    } else {
    r.match = false;
    }
    } else {
    r.match = false;
    }
    return r;
    }
     
    Última edición: 15 Abr 2012
  8. Lord Acero

    Lord Acero Miembro frecuente

    Registro:
    11 Nov 2011
    Mensajes:
    59
    Likes:
    5
    Temas:
    0
    Hasta ahora no habia tenido problemas usando el segundo plugin posteado por Mikrorat para youtube, pero hoy una clienta me llamo por este video en particular youtube.com/watch?v=t27CageleyY el cual nunca empieza a cargar, si se lo prueba sin thunder el mismo funciona correctamente. Alguien puede corroborarlo? Gracias.:hi:
     
  9. williamsio

    williamsio Miembro maestro

    Registro:
    17 May 2009
    Mensajes:
    439
    Likes:
    28
    Temas:
    3
    videoplayback?upn=TATmDGRHTBI&sparams=cp%2Cid%2Cip%2Cipbits%2Citag%2Cratebypass%2Csource%2Cupn%2Cexpire&itag=43&ip=190.0.0.0&signature=16B66D2E988BFD7CA40B2D81420BBF0D735AE70B.0F775ED07C4BBC3632D460676EF1669BACAF7870&sver=3&ratebypass=yes&source=youtube&expire=1334560311&key=yt1&ipbits=8&cp=U0hSSVVRTl9GS0NOMl9NS1JEOndRVlozbVRlNWJo

    &id=b76ec26a07a57b26

    HTTP/1.0 206 Partial Content

    Primero: Para todos los casos de thunder 3.1 y sus clones con otros nombres, el core no le puede hacer hit nunca.
    segundo: Para tu caso busca el id en la db, con phpmyadmin.
    tercero: Dentro de tu carpeta donde este haciendo cache el thunder escrives esto

    find -name *b76ec26a07a57b26*

    una vez localizado el archivo lo borras y tambien borras el registro de la DB,

    Correccion: carga primero el vídeo con IE8
    ya de ahi en adelante no va a fallar, simplemente no va hacer hit.

    :hi:

    y porque el core no hace hit, jajaja es porque aun no termino de programar el nuevo core con unas 10 correcciones importantes :D:P
     
    Última edición: 15 Abr 2012
    A MICHAELBAD y luistec les gustó este mensaje.
  10. Lord Acero

    Lord Acero Miembro frecuente

    Registro:
    11 Nov 2011
    Mensajes:
    59
    Likes:
    5
    Temas:
    0
    Sin borrar nada abri el video con IE8 y si hizo HIT... con Firefox directamente no lo carga (con Firefox sin thunder lo abre bien). Ultima version de Firefox y Flash player. Al parecer si hace cache y HIT pero no funciona con Firefox. Saludos! :hi:

    PD: Muy interesado en ese nuevo core que cocinan :yeah:
     
  11. coolporro

    coolporro Miembro nuevo

    Registro:
    25 Mar 2012
    Mensajes:
    29
    Likes:
    0
    Temas:
    0


    realmente felicito a todas las personas que desinteresadamente colaboran con estas cosas, ahora la pregunta del millón, en que se basan o como se ayudan para hacer las pruebas para lograr ubicar las url y los regexp para poder usarlos en los plugins, si serian tan amables de explicar el procedimiento así mucho de nosotros tendríamos la posibilidad de crear nuestros propios plugins y compartir experiencias mientras dure el thunder 3.1, yo creo que la persona mas idónea para esta tarea es williamsio ya que el colabora en el foro brasilfw en donde explica mas o memos la forma de como hacer sus pruebas, saludos

    ----- mensaje añadido, 15-abr-2012 a las 21:41 -----


    realmente felicito a todas las personas que desinteresadamente colaboran con estas cosas, ahora la pregunta del millón, en que se basan o como se ayudan para hacer las pruebas para lograr ubicar las url y los regexp para poder usarlos en los plugins, si serian tan amables de explicar el procedimiento así mucho de nosotros tendríamos la posibilidad de crear nuestros propios plugins y compartir experiencias mientras dure el thunder 3.1, yo creo que la persona mas idónea para esta tarea es williamsio ya que el colabora en el foro brasilfw en donde explica mas o memos la forma de como hacer sus pruebas, saludos
     
  12. williamsio

    williamsio Miembro maestro

    Registro:
    17 May 2009
    Mensajes:
    439
    Likes:
    28
    Temas:
    3
    te diste la respuesta solito en el foro de brazil fw se explica el proceso a leer nomas :hi:
     
  13. luistec

    luistec Miembro frecuente

    Registro:
    5 Mar 2012
    Mensajes:
    206
    Likes:
    19
    Temas:
    0

    Se puede ver desde el mismo Debian viendo el log "tail -f /var/log/squid/access.log" pero es algo tedioso, el mozilla firefox tiene extenciones para hacer eso por ejm. download helper que te permite descargar y ver las URL de donde se descargan los videos o tambien como mencione en el otro tema se puede usar el HTTP Debugger que me recomendo joemg por que es facil de usar y te captura el contenido que pasa por el protocolo HTTP osea lo que pasa por el puerto 80 y nos muestra sus detalles en lo que podemos ubicar la URL de los servidores, claro que hay otros programas tambien que hacer esto, luego de ubicar la URL del archivo se tiene que ubicar el contenido o bueno el archivo, esto varia de acuerdo a como manejan sus archivos cada pagina porque algunos son diferentes de otros, de acuerdo a esto ya se ve como se va a programar el plugin.

    En el ejemplo del fulltono se capturo la URL y luego se ubica el archivo de acuerdo a esto se hiso el plugin
    Código:
    http://server16.fulltono.com/b0bcc9ef-df79-4c8c-9ed9-15f4a5dfbe5b-9537949.ftm
    
     
    Última edición: 15 Abr 2012
    A joemg6 le gustó este mensaje.
  14. coolporro

    coolporro Miembro nuevo

    Registro:
    25 Mar 2012
    Mensajes:
    29
    Likes:
    0
    Temas:
    0


    Gracias por la aclaratoria a la duda amigo
     
  15. javierorrala

    javierorrala Miembro nuevo

    Registro:
    31 Oct 2011
    Mensajes:
    14
    Likes:
    0
    Temas:
    0
    g++ -I. -fPIC -shared -g -o avast.com.so avast.com.cpp

    Con esa linea de comando se compila a .so teniendo en cuenta que debes tener las fuentes porque te pide ../utils.cpp que lo encuentras en la web con las fuentes del thunder asi: thunder-svn-publico.

    gracias por corregir aunque me funciono como lo tenia, siempre es bueno mejorarlo y asi aprender mas, esto esta un poco mas complicado pues hay que conocer el sitio como también luego el C.

    A leer no les queda otra.
     
  16. ninoh

    ninoh Miembro frecuente

    Registro:
    28 Oct 2011
    Mensajes:
    53
    Likes:
    1
    Temas:
    0
    hablando de plugins.. alguien me puede ayudar con algun pluggins de facebook pero que cachee todo.. no solamente los mp4... sino todo... imagenes videos.. html... alguien me ayuda???
     
  17. joemg6

    joemg6 Miembro maestro

    Registro:
    5 May 2010
    Mensajes:
    455
    Likes:
    198
    Temas:
    4
    Bueno ahora se puede decir que ya hay información inicial de donde partir para poder programar los plugins ahora ya depende de cada uno y a practicar.
    En el caso de los antivirus es un poco más dificil hacer el testear su funcionalidad por que uno tiene que instalar cada antivirus, y como saben solo se hace una actualización al día por que uno ya se tiene que ingeniarselas para ver su funcionamiento, pero ahi les dejo algunos plugins de antivirus y del facebook con imagenes.
    En el caso del Avast, a los que están empezando a programar sus plugins les dejo la URL del server como se ve el contenido, es sencillo.
    Código:
    http://download819.avast.com/iavs5x/prod-ais.vpx
    http://download783.avast.com/iavs5x/servers.def.vpx
    http://download744.avast.com/iavs5x/prod-ais.vpx
    

    Act. Plugins

    Código:
     
    - Facebook con imagenes (inicialmente era los videos por mantener un orden)
    [URL]http://www.joemg.host56.com/plugins/fbcdn.net.so[/URL]
    http.*\.fbcdn\.net.*(\.mp4|\.jpg)
    - Avast
    [URL]http://www.joemg.host56.com/plugins/avast.com.so[/URL]
    http.*\.avast\.com.*(\.def|\.vpu|\.vpaa|\.stamp|\.vpx)
    - Mcafee
    [URL]http://www.joemg.host56.com/plugins/mcafee.com.so[/URL]
    http.*\.mcafee\.com.*(\.exe|\.xdb|\.msi|\.zip|)
    - Norton
    [URL]http://www.joemg.host56.com/plugins/symantecliveupdate.com.so[/URL]
    http.*\.symantecliveupdate\.com.*(\.zip|\.exe|\.m26)
    
    Ya saben a los que han tenido dudas siempre les he ayudado y ahora como el tema esta más abierto, puden preguntar con más confianza y no olviden compartir lo aprendido.
     
    Última edición: 16 Abr 2012
    A tonyvzla, luistec, williamsio y 1 otra persona les gustó este mensaje.
  18. Firecold

    Firecold Miembro frecuente

    Registro:
    27 Feb 2012
    Mensajes:
    87
    Likes:
    6
    Temas:
    0
    Gracias javierorrala por aclarar mis dudas como dije soy completamente nuevo en GNU/linux, y realmente estoy a cero en todo esto, pero le estoy echando ganas para aprender, y si habia visto la linea en los comentarios de arriba pero no le preste atencion, solo con thunder-svn-publico no lo encontre por ningun lado o yo no lo busque como se debia una de dos, igualmente gracias javierorrala, Williamsio, joemg6, por su desinteresada colabnoracion. Saludos
     
  19. luistec

    luistec Miembro frecuente

    Registro:
    5 Mar 2012
    Mensajes:
    206
    Likes:
    19
    Temas:
    0
    Firecold como recomendacion involucrate en los comandos basicos de Linux luego progresivamente entra a programar por que sino se te va hacer dificil entender en copiar compilar y otras sosas mas, cada vez que uno hace un plugin tiene que reiniciar el squid y el thuner, para ver el funcionamiento ya el resto de la inquietudes se te puede ayudar pero siempre tienen ser pregunas concisas y luego ya sabes la practica se encarga de eso.
     
  20. williamsio

    williamsio Miembro maestro

    Registro:
    17 May 2009
    Mensajes:
    439
    Likes:
    28
    Temas:
    3
    hola joemg6, podrias comartir el code del plug de facebook tengo uno que hace hit de las imagenes grandes nada mas, mi consulta va tambien por si el tuyo hace hit a las imagenes pequeñas tambien las de 300 x 300 en carpetas separadas o todo es mescaldo en una sola carpeta. Podemos estar hablando de un canje de code :D
     
    Última edición: 16 Abr 2012
Etiquetas: