Get rid of boost usage
This commit is contained in:
parent
6fff2e7525
commit
60a11252cb
2
build.sh
2
build.sh
|
@ -1 +1 @@
|
|||
g++ -std=c++17 main.cpp -o solprice-cli -lcurl -lncurses -lboost_system
|
||||
g++ -std=c++17 main.cpp -o solprice-cli -lcurl -lncurses
|
||||
|
|
27
main.cpp
27
main.cpp
|
@ -1,8 +1,6 @@
|
|||
#include <iostream>
|
||||
#include <string>
|
||||
#include <curl/curl.h>
|
||||
#include <boost/json.hpp>
|
||||
#include <boost/json/src.hpp>
|
||||
#include <ncurses.h>
|
||||
|
||||
static size_t WriteCallback(void *contents, size_t size, size_t nmemb, std::string *userp) {
|
||||
|
@ -25,12 +23,27 @@ double getConversionRate() {
|
|||
curl_easy_cleanup(curl);
|
||||
|
||||
if(res == CURLE_OK) {
|
||||
boost::json::error_code ec;
|
||||
auto parsed = boost::json::parse(readBuffer, ec);
|
||||
if(!ec) {
|
||||
auto& obj = parsed.as_object();
|
||||
rate = obj["solana"].as_object()["usd"].as_double();
|
||||
std::size_t usdPos = readBuffer.find("\"usd\":");
|
||||
if (usdPos != std::string::npos) {
|
||||
std::size_t start = readBuffer.find(':', usdPos) + 1;
|
||||
std::size_t end = readBuffer.find_first_of("},", start);
|
||||
if(start < end) {
|
||||
std::string usdValue = readBuffer.substr(start, end - start);
|
||||
usdValue.erase(0, usdValue.find_first_not_of(" \n\r\t"));
|
||||
usdValue.erase(usdValue.find_last_not_of(" \n\r\t") + 1);
|
||||
try {
|
||||
rate = std::stod(usdValue);
|
||||
} catch (const std::invalid_argument& ia) {
|
||||
std::cerr << "Invalid argument: " << ia.what() << '\n';
|
||||
} catch (const std::out_of_range& oor) {
|
||||
std::cerr << "Out of Range error: " << oor.what() << '\n';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
std::cerr << "USD rate not found in response." << std::endl;
|
||||
}
|
||||
} else {
|
||||
std::cerr << "CURL failed with error code: " << res << std::endl;
|
||||
}
|
||||
}
|
||||
return rate;
|
||||
|
|
Loading…
Reference in New Issue