apiRequestJson now returns Message
This commit is contained in:
parent
9e260a1978
commit
c674248623
@ -41,8 +41,8 @@ namespace Telegram {
|
|||||||
void sendMessage(std::string, Json::Int64);
|
void sendMessage(std::string, Json::Int64);
|
||||||
void sendMessage(std::string, std::string);
|
void sendMessage(std::string, std::string);
|
||||||
|
|
||||||
void sendPhoto(std::string, Json::Int64);
|
Telegram::Message *sendPhoto(std::string, Json::Int64);
|
||||||
void sendPhoto(std::string, std::string);
|
Telegram::Message *sendPhoto(std::string, std::string);
|
||||||
|
|
||||||
Telegram::Message *getMessage();
|
Telegram::Message *getMessage();
|
||||||
std::map<std::string, TCommand> getCommandMap();
|
std::map<std::string, TCommand> getCommandMap();
|
||||||
@ -55,7 +55,7 @@ namespace Telegram {
|
|||||||
|
|
||||||
void init();
|
void init();
|
||||||
void apiRequest(std::string, std::map<std::string, std::string>);
|
void apiRequest(std::string, std::map<std::string, std::string>);
|
||||||
void apiRequestJson(std::string, std::map<std::string, std::string>);
|
Telegram::Message *apiRequestJson(std::string, std::map<std::string, std::string>);
|
||||||
std::string processCommand(std::string);
|
std::string processCommand(std::string);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -107,22 +107,22 @@ void Telegram::TelegramBot::sendMessage(std::string message, std::string chat_id
|
|||||||
/**
|
/**
|
||||||
* Sends a picture from the internet to a chat
|
* Sends a picture from the internet to a chat
|
||||||
*/
|
*/
|
||||||
void Telegram::TelegramBot::sendPhoto(std::string URL, Json::Int64 chat_id) {
|
Telegram::Message* Telegram::TelegramBot::sendPhoto(std::string URL, Json::Int64 chat_id) {
|
||||||
|
|
||||||
this->sendPhoto(URL, SSTR(chat_id));
|
return(this->sendPhoto(URL, SSTR(chat_id)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends a picture from the internet to a chat
|
* Sends a picture from the internet to a chat
|
||||||
*/
|
*/
|
||||||
void Telegram::TelegramBot::sendPhoto(std::string URL, std::string chat_id) {
|
Telegram::Message* Telegram::TelegramBot::sendPhoto(std::string URL, std::string chat_id) {
|
||||||
|
|
||||||
std::map<std::string, std::string> params;
|
std::map<std::string, std::string> params;
|
||||||
|
|
||||||
params["chat_id"] = chat_id;
|
params["chat_id"] = chat_id;
|
||||||
params["photo"] = URL;
|
params["photo"] = URL;
|
||||||
|
|
||||||
this->apiRequestJson("sendPhoto", params);
|
return(this->apiRequestJson("sendPhoto", params));
|
||||||
}
|
}
|
||||||
|
|
||||||
Telegram::Message *Telegram::TelegramBot::getMessage() {
|
Telegram::Message *Telegram::TelegramBot::getMessage() {
|
||||||
@ -181,31 +181,40 @@ void Telegram::TelegramBot::apiRequest(std::string method, std::map<std::string,
|
|||||||
/**
|
/**
|
||||||
* An API request, posting JSON data
|
* An API request, posting JSON data
|
||||||
*/
|
*/
|
||||||
void Telegram::TelegramBot::apiRequestJson(std::string method, std::map<std::string, std::string> parameters) {
|
Telegram::Message* Telegram::TelegramBot::apiRequestJson(std::string method, std::map<std::string, std::string> parameters) {
|
||||||
|
|
||||||
parameters["method"] = method;
|
std::stringstream result; // Stores the result of the api call
|
||||||
|
parameters["method"] = method;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
cURLpp::Easy handle;
|
cURLpp::Easy handle;
|
||||||
std::list<std::string> header;
|
std::list<std::string> header;
|
||||||
header.push_back("Content-Type: application/json");
|
header.push_back("Content-Type: application/json");
|
||||||
|
|
||||||
handle.setOpt(cURLpp::Options::Url(this->api_url));
|
handle.setOpt(cURLpp::Options::Url(this->api_url));
|
||||||
handle.setOpt(cURLpp::Options::ConnectTimeout(5));
|
handle.setOpt(cURLpp::Options::ConnectTimeout(5));
|
||||||
handle.setOpt(cURLpp::Options::Timeout(60));
|
handle.setOpt(cURLpp::Options::Timeout(60));
|
||||||
handle.setOpt(cURLpp::Options::HttpHeader(header));
|
handle.setOpt(cURLpp::Options::HttpHeader(header));
|
||||||
handle.setOpt(cURLpp::Options::PostFields(json_encode(parameters)));
|
handle.setOpt(cURLpp::Options::PostFields(json_encode(parameters)));
|
||||||
handle.perform(); // Do the curl request
|
handle.setOpt(cURLpp::Options::WriteStream(&result));
|
||||||
}
|
|
||||||
catch(cURLpp::LogicError &e) {
|
handle.perform(); // Do the curl request
|
||||||
Log(e.what());
|
}
|
||||||
}
|
catch(cURLpp::LogicError &e) {
|
||||||
catch(cURLpp::RuntimeError &e) {
|
Log(e.what());
|
||||||
Log(e.what());
|
}
|
||||||
}
|
catch(cURLpp::RuntimeError &e) {
|
||||||
catch(std::exception &e) {
|
Log(e.what());
|
||||||
Log(e.what());
|
}
|
||||||
}
|
catch(std::exception &e) {
|
||||||
|
Log(e.what());
|
||||||
|
}
|
||||||
|
|
||||||
|
Json::Reader jreader;
|
||||||
|
Json::Value obj;
|
||||||
|
jreader.parse(result.str(), obj);
|
||||||
|
|
||||||
|
return (new Telegram::Message(obj["result"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Telegram::TelegramBot::processCommand(std::string cmd) {
|
std::string Telegram::TelegramBot::processCommand(std::string cmd) {
|
||||||
|
Loading…
Reference in New Issue
Block a user