Added libcairo as a dependancy

This commit is contained in:
2025-07-23 01:54:10 +03:00
parent 90483c9dcd
commit d37dd56496
3 changed files with 47 additions and 6 deletions

View File

@@ -3,8 +3,46 @@
#include <dpp/dispatcher.h>
#include <dpp/dpp.h>
#include <dpp/guild.h>
#include <dpp/message.h>
#include <dpp/misc-enum.h>
#include <dpp/queues.h>
#include <dpp/snowflake.h>
#include <dpp/user.h>
#include <cairo/cairo.h>
#include <functional>
#include <string>
#include <unordered_map>
void pngToCairoSurface(std::string data) {
cairo_surface_t *image =
cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 300, 200);
}
void jpegToCairoSurface(std::string data) {}
void webpToCairoSurface(std::string data) {}
std::unordered_map<std::string, std::function<void(std::string)>>
supportedImageFileTypes{{"image/png", pngToCairoSurface},
{"image/jpeg", jpegToCairoSurface},
{"image/webp", webpToCairoSurface}};
void commandGenerateReport(const dpp::slashcommand_t &event,
dpp::cluster &bot) {}
dpp::cluster &bot) {
event.thinking();
dpp::snowflake fileId =
std::get<dpp::snowflake>(event.get_parameter("image"));
dpp::attachment file = event.command.get_resolved_attachment(fileId);
auto fileType = supportedImageFileTypes.find(file.content_type);
if (fileType != supportedImageFileTypes.end()) {
bot.request(
file.url, dpp::http_method::m_get,
[event, &bot, fileType](const dpp::http_request_completion_t &result) {
fileType->second(result.body);
});
} else {
event.edit_response(
"File type: " + file.content_type +
" is not allowed. Only PNG, JPEG, and WEBP are allowed!");
}
}