|
|
|
@ -90,7 +90,11 @@ void patch(torrent_session &session, response resp, request req) { |
|
|
|
return respond(http::bad_request); |
|
|
|
return respond(http::bad_request); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (request_object.find("paused") != request_object.end()) { |
|
|
|
auto paused_field = request_object.find("paused") != request_object.end(); |
|
|
|
|
|
|
|
auto up_limit_field = request_object.find("up_limit") != request_object.end(); |
|
|
|
|
|
|
|
auto down_limit_field = request_object.find("down_limit") != request_object.end(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (paused_field) { |
|
|
|
bool paused = false; |
|
|
|
bool paused = false; |
|
|
|
const auto obj = request_object.at("paused"); |
|
|
|
const auto obj = request_object.at("paused"); |
|
|
|
if (obj.is_boolean()) |
|
|
|
if (obj.is_boolean()) |
|
|
|
@ -98,6 +102,8 @@ void patch(torrent_session &session, response resp, request req) { |
|
|
|
else if (obj.is_string()) { |
|
|
|
else if (obj.is_string()) { |
|
|
|
std::string p = obj; |
|
|
|
std::string p = obj; |
|
|
|
paused = (p == "true"); |
|
|
|
paused = (p == "true"); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
return respond(http::bad_request); |
|
|
|
} |
|
|
|
} |
|
|
|
if (torrent.status().paused != paused) { |
|
|
|
if (torrent.status().paused != paused) { |
|
|
|
if (paused) |
|
|
|
if (paused) |
|
|
|
@ -108,6 +114,38 @@ void patch(torrent_session &session, response resp, request req) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (up_limit_field) { |
|
|
|
|
|
|
|
int up_limit = 0; |
|
|
|
|
|
|
|
auto obj = request_object.at("up_limit"); |
|
|
|
|
|
|
|
if (obj.is_string()) { |
|
|
|
|
|
|
|
std::string i = obj; |
|
|
|
|
|
|
|
up_limit = std::stoi(i); |
|
|
|
|
|
|
|
} else if (obj.is_number()) { |
|
|
|
|
|
|
|
up_limit = obj; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
return respond(http::bad_request); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
torrent.set_upload_limit(up_limit); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (down_limit_field) { |
|
|
|
|
|
|
|
int down_limit = 0; |
|
|
|
|
|
|
|
auto obj = request_object.at("down_limit"); |
|
|
|
|
|
|
|
if (obj.is_string()) { |
|
|
|
|
|
|
|
std::string i = obj; |
|
|
|
|
|
|
|
down_limit = std::stoi(i); |
|
|
|
|
|
|
|
} else if (obj.is_number()) { |
|
|
|
|
|
|
|
down_limit = obj; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
return respond(http::bad_request); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
torrent.set_download_limit(down_limit); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (down_limit_field || up_limit_field || paused_field) { |
|
|
|
|
|
|
|
return respond(http::bad_request); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
respond(http::accepted); |
|
|
|
respond(http::accepted); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|