#pragma once #include #include #include "blankie/murl.h" #include "blankie/serializer.h" struct Config; // forward declaration from config.h struct Illusts; // forward declaration from pixivmodels.h using Element = blankie::html::Element; void serve(const httplib::Request& req, httplib::Response& res, const Config& config, std::string title, Element element); void serve_error(const httplib::Request& req, httplib::Response& res, const Config& config, std::string title, std::optional subtitle = std::nullopt, std::optional info = std::nullopt); void serve_redirect(const httplib::Request& req, httplib::Response& res, const Config& config, std::string url); std::string get_origin(const httplib::Request& req, const Config& config); std::string proxy_url(blankie::murl::Url base, blankie::murl::Url url); std::string proxy_image_url(const Config& config, blankie::murl::Url url); Element generate_illusts_pager(const httplib::Request& req, const Config& config, const Illusts& illusts, size_t page, const char* id);