|
|
|
|
#ifndef _TR_TORRENT_HPP_
|
|
|
|
|
#define _TR_TORRENT_HPP_
|
|
|
|
|
|
|
|
|
|
#include <boost/filesystem.hpp>
|
|
|
|
|
#include <http.hpp>
|
|
|
|
|
#include <util.hpp>
|
|
|
|
|
|
|
|
|
|
namespace tr {
|
|
|
|
|
namespace session {
|
|
|
|
|
namespace torrents {
|
|
|
|
|
namespace id {
|
|
|
|
|
template <class torrent_session, class request, class response>
|
|
|
|
|
void get(torrent_session &session, response resp, request req) {
|
|
|
|
|
auto http_response = http::response();
|
|
|
|
|
const auto respond = [&](http::status status) {
|
|
|
|
|
const auto response_code = http::code(status);
|
|
|
|
|
http_response.set_body({{"code", response_code.first}, {"status", response_code.second}});
|
|
|
|
|
http_response.set_status(response_code.first);
|
|
|
|
|
*resp << http_response;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (!session.is_valid()) {
|
|
|
|
|
return respond(http::service_unavailable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::string hash = req->path.substr(18, req->path.size() - 18);
|
|
|
|
|
|
|
|
|
|
http_response.set_body(nlohmann::json::object(
|
|
|
|
|
{{"info_hash", hash}}));
|
|
|
|
|
http_response.set_status(http::ok);
|
|
|
|
|
*resp << http_response;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template <class settings, class torrent_session, class request, class response>
|
|
|
|
|
void patch(settings opts, torrent_session &session, response resp, request req) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|