From 94f6a58f748d9d2cf566b74ab76101c44692c5ab Mon Sep 17 00:00:00 2001 From: Slavasil Date: Fri, 10 Jan 2025 13:21:20 +0000 Subject: [PATCH] slightly better error handling --- commands.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/commands.cpp b/commands.cpp index 226cadb..004d408 100644 --- a/commands.cpp +++ b/commands.cpp @@ -39,7 +39,7 @@ void cmd::handle_regular_message(context *ctx, td_api::message &msg) { nullptr /*reply_to*/, nullptr /*options*/, nullptr, // reply_markup static_cast>(td_api::make_object( - std::move(td_api::make_object(url, std::move(std::vector>()))), + std::move(td_api::make_object(!url.empty() ? url : "error :(", std::move(std::vector>()))), nullptr /*link_preview_options*/, false /*clear_draft*/ )) ), {}); @@ -50,7 +50,7 @@ void cmd::handle_regular_message(context *ctx, td_api::message &msg) { nullptr /*reply_to*/, nullptr /*options*/, nullptr, // reply_markup static_cast>(td_api::make_object( - std::move(td_api::make_object("произошла какая-то ошибка :(", std::move(std::vector>()))), + std::move(td_api::make_object("error :(", std::move(std::vector>()))), nullptr /*link_preview_options*/, false /*clear_draft*/ )) ), {}); @@ -137,7 +137,7 @@ void cmd::handle_callback_query(context *ctx, td_api::updateNewInlineCallbackQue nullptr, // reply_markup static_cast>(td_api::make_object( td_api::make_object( - url, + !url.empty() ? url : "error :(", std::move(std::vector>()) ), td_api::make_object(true, "", false, false, false), @@ -171,7 +171,7 @@ void cmd::handle_chosen_inline_result(context *ctx, td_api::updateNewChosenInlin nullptr, // reply_markup static_cast>(td_api::make_object( td_api::make_object( - url, + !url.empty() ? url : "error :(", std::move(std::vector>()) ), td_api::make_object(true, "", false, false, false), @@ -198,9 +198,16 @@ bool cmd::shorten_link(std::string link, context *ctx, std::functionrequests.emplace(req, [cb, req, ctx](active_request &r){ - std::string shortenedUrl(r.receivedData.data(), r.receivedData.size()); - spdlog::info("Received data from HTTP server: {}", shortenedUrl); - cb(shortenedUrl); + long statusCode; + curl_easy_getinfo(req, CURLINFO_RESPONSE_CODE, &statusCode); + if (statusCode == 200) { + std::string shortenedUrl(r.receivedData.data(), r.receivedData.size()); + spdlog::info("Received data from HTTP server: {}", shortenedUrl); + cb(shortenedUrl); + } else { + spdlog::error("Shortener returned error: {}", statusCode); + cb(""); + } ctx->requests.erase(req); }); CURLMcode r = curl_multi_add_handle(ctx->curl, req);