@@ -1,11 +1,13 @@
#include "http/get.h"
#include "html/parse.h"
#include <fmt/format.h>
#include <imgui.h>
#include <imgui-SFML.h>
#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/System/Clock.hpp>
#include <SFML/Window/Event.hpp>
#include <spdlog/spdlog.h>
int main() {
sf::RenderWindow window{sf::VideoMode(640, 480), "gui"};
@@ -17,6 +19,7 @@ int main() {
http::Response response{};
std::vector<dom::Node> dom{};
std::string dom_str{};
std::string err_str{};
while (window.isOpen()) {
sf::Event event;
@@ -34,13 +37,32 @@ int main() {
if (ImGui::InputText(
"Url", url_buf, sizeof(url_buf), ImGuiInputTextFlags_EnterReturnsTrue)) {
response = http::get(url_buf);
dom = html::parse(response.body);
dom_str.clear();
for (const auto &node : dom) {
dom_str += dom::to_string(node);
dom_str += '\n';
switch (response.err) {
case http::Error::Ok: {
dom = html::parse(response.body);
for (const auto &node : dom) {
dom_str += dom::to_string(node);
dom_str += '\n';
}
break;
}
case http::Error::Unresolved: {
err_str = fmt::format("Unable to resolve endpoint for '{}'", url_buf);
spdlog::error(err_str);
break;
}
case http::Error::Unhandled: {
err_str = fmt::format("Unhandled protocol for '{}'", url_buf);
spdlog::error(err_str);
break;
}
}
}
if (response.err != http::Error::Ok) {
ImGui::Text("%s", err_str.c_str());
}
ImGui::End();
ImGui::Begin("HTTP Response");