X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Ftorus.cpp;fp=src%2Ftorus.cpp;h=51ef8caf76978345ac96d3f1297a9b0ef7ccf413;hb=dee29d77163776942488b38eb7691df51bb30bbc;hp=924781a7d752db934d759327df47225937f2a005;hpb=f1495eba3dd50de9bd6e5e0e604320b6cc6bf1a7;p=metaproxy-moved-to-github.git diff --git a/src/torus.cpp b/src/torus.cpp index 924781a..51ef8ca 100644 --- a/src/torus.cpp +++ b/src/torus.cpp @@ -23,7 +23,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #include #include - +#include #include "torus.hpp" namespace mp = metaproxy_1; @@ -185,6 +185,23 @@ xmlDoc *mp::Torus::get_doc() return doc; } +xmlDoc *mp::get_searchable(std::string url_template, const std::string &db) +{ + // http://newmk2.indexdata.com/torus2/searchable.ebsco/records/?query=udb=aberdeenUni + xmlDoc *doc = 0; + size_t found; + + found = url_template.find("%db"); + if (found != std::string::npos) + url_template.replace(found, found+3, mp::util::uri_encode(db)); + int code; + WRBUF w = get_url(url_template.c_str(), 0, 0, &code); + if (code == 200) + doc = xmlParseMemory(wrbuf_buf(w), wrbuf_len(w)); + wrbuf_destroy(w); + return doc; +} + /* * Local variables: * c-basic-offset: 4