diff options
author | Niklas Halle <niklas@niklashalle.net> | 2020-09-18 15:40:36 +0200 |
---|---|---|
committer | Niklas Halle <niklas@niklashalle.net> | 2020-09-18 15:40:36 +0200 |
commit | 48d6a7408f2371c5b66482cc68ec2b801d444700 (patch) | |
tree | 9205b9e656d4b06d17e5abdabb478b9f917d64ce /src/SimpleHandlers.cpp | |
parent | c24fa23e21091a1afb89418c03692cca63e39123 (diff) | |
download | n_core-48d6a7408f2371c5b66482cc68ec2b801d444700.tar.gz n_core-48d6a7408f2371c5b66482cc68ec2b801d444700.zip |
started work on latex render command
Diffstat (limited to 'src/SimpleHandlers.cpp')
-rw-r--r-- | src/SimpleHandlers.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/SimpleHandlers.cpp b/src/SimpleHandlers.cpp index ee801d4..0a4bdb1 100644 --- a/src/SimpleHandlers.cpp +++ b/src/SimpleHandlers.cpp @@ -2,7 +2,11 @@ #include "Response.hpp" +#include <cctype> +#include <string> #include <fstream> +#include <iomanip> +#include <sstream> using namespace Response; @@ -87,3 +91,29 @@ json Handler::sayHandler(const std::string &arguments, const std::string &sessio (void) payload; return simple_response(arguments, session, true); } + +std::string url_encode(std::string const &value) { + std::ostringstream escaped; + escaped.fill('0'); + escaped << std::hex; + + for (char c : value) { + // Keep alphanumeric and other accepted characters intact + if (isalnum(c) || c == '-' || c == '_' || c == '.' || c == '~') { + escaped << c; + continue; + } + + // Any other characters are percent-encoded + escaped << std::uppercase; + escaped << '%' << std::setw(2) << int((unsigned char) c); + escaped << std::nouppercase; + } + + return escaped.str(); +} + +json Handler::latexRenderHandler(std::string const &arguments, std::string const &session, void *payload) { + (void) payload; + return simple_response("https://latex.codecogs.com/png.latex?" + url_encode(arguments), session, true); +} |