Alterserv

ThunderCache 3.1.x => Plugins para ThunderCache 3.1.2 => Plugins de música & videos => Mensaje publicado por: joemg6 en Abril 05, 2013, 03:30:32 PM

Título: Plugin Dailymotion
Publicado por: joemg6 en Abril 05, 2013, 03:30:32 PM
Al parecer dalilymotion también ha cambiado su manera de entregar sus videos, ahora lo hace por partes, pero observando la url del contenido no es muy complejo, ahí dejos los códigos para que prueben.

dailymotion.com.cpp
Código (cpp) [Seleccionar]

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


// use this line to compile
// g++ -I. -fPIC -shared -g -o dailymotion.com.so dailymotion.com.cpp
// Regex
// http.*\.dailymotion\.com.*(\.flv|\.on2|\.h264|\.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()-6) + "_" + resultado.at(resultado.size()-5) + "_" + resultado.at(resultado.size()-4) + "_" + resultado.at(resultado.size()-3) + "_" + resultado.at(resultado.size()-2) + "_" +resultado.at(resultado.size()-1);           
} else {
stringexplode(url, "/", &resultado);
return resultado.at(resultado.size()-6) + "_" + resultado.at(resultado.size()-5) + "_" + resultado.at(resultado.size()-4) + "_" + resultado.at(resultado.size()-3) + "_" + resultado.at(resultado.size()-2) + "_" +resultado.at(resultado.size()-1); ;
}
}

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


if ( ( (regex_match("proxy[a-z0-9\\-][a-z0-9][a-z0-9][a-z0-9]?\\.dailymotion\\.com", url) != "") or
(url.find("vid.akm.dailymotion.com") != string::npos) or (url.find(".cdn.dailymotion.com") != string::npos) ) and
( (url.find(".flv") != string::npos) or (url.find(".h264") != string::npos) or (url.find(".mp4") != string::npos) or
(url.find(".on2") != string::npos) )
) {

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

}


dmcdn.net.cpp
Código (cpp) [Seleccionar]

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


// use this line to compile
// g++ -I. -fPIC -shared -g -o dmcdn.net.so dmcdn.net.cpp
// Regex
// http.*\.dmcdn\.net.*(\.flv|\.on2|\.h264|\.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()-6) + "_" + resultado.at(resultado.size()-5) + "_" + resultado.at(resultado.size()-4) + "_" + resultado.at(resultado.size()-3) + "_" + resultado.at(resultado.size()-2) + "_" +resultado.at(resultado.size()-1);           
} else {
stringexplode(url, "/", &resultado);
return resultado.at(resultado.size()-6) + "_" + resultado.at(resultado.size()-5) + "_" + resultado.at(resultado.size()-4) + "_" + resultado.at(resultado.size()-3) + "_" + resultado.at(resultado.size()-2) + "_" +resultado.at(resultado.size()-1); ;
}
}

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


if ( ( (url.find(".dmcdn.net") != string::npos) ) and
(  (url.find(".flv") != string::npos) or (url.find(".h264") != string::npos) or (url.find(".mp4") != string::npos) or
(url.find(".on2") != string::npos) )
) {

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

}