Plugin Steam -Dota 2 (03/12/2014)
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 steampowered.com.so steampowered.com.cpp
// Regex
// http.*(media[0-9]\.steampowered|\.steampowered)\.com.*(\.zip|/?)
extern "C" resposta getmatch(const string url) {
resposta r;
vector<string> resultado;
string tmp;
if ((url.find(".steampowered.com/") != string::npos) and (url.find(".zip") != string::npos)) {
r.match = true;
r.domain = "steam";
resultado.clear();
if (url.find(".") != string::npos) {
stringexplode(url, ".", &resultado);
stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
r.file = resultado.at(resultado.size()-4)+"."+resultado.at(resultado.size()-3)+"."+resultado.at(resultado.size()-2)+"."+resultado.at(resultado.size()-1);
}
} else if ( (url.find(".steampowered.com/") != string::npos) and (url.find("?") != string::npos)) {
r.match = true;
r.domain = "steam";
resultado.clear();
if (url.find("?") != string::npos) {
stringexplode(url, "?", &resultado);
stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
r.file = resultado.at(resultado.size()-2)+"_"+resultado.at(resultado.size()-1);
}
} else if (url.find(".steampowered.com/") != string::npos) {
r.match = true;
r.domain = "steam";
resultado.clear();
stringexplode(url, "/", &resultado);
r.file = resultado.at(resultado.size()-1);
} else {
r.match = false;
}
return r;
}