#include "TessesFramework/TessesFramework.hpp" #include using namespace Tesses::Framework; using namespace Tesses::Framework::Streams; using namespace Tesses::Framework::Http; using namespace Tesses::Framework::Filesystem; std::shared_ptr vfs; int main(int argc, char **argv) { TF_InitWithConsole(); vfs = std::make_shared( LocalFS, Tesses::Framework::Filesystem::VFSPath::GetAbsoluteCurrentDirectory()); std::shared_ptr cb = std::make_shared< CallbackServer>([](ServerContext &ctx) -> bool { if (ctx.path == "/") { ctx.WithMimeType("text/html") .SendText( "" "" "AnonyDrop" "" "

AnonyDrop

" "Files" "
" "" "" "
" "" ""); return true; } else if (ctx.path == "/upload") { if (ctx.NeedToParseFormData()) { ctx.ParseFormData( [](std::string mime, std::string filename, std::string name) -> std::shared_ptr { if (name != "file") return nullptr; VFSPath path("/" + filename); auto strm = vfs->OpenFile(path, "wb"); return strm; }); ctx.WithMimeType("text/html") .SendText("" "" "AnonyDrop - " "Uploaded successfully" "" "

Uploaded successfully

" "Back" "" ""); return true; } else { ctx.statusCode = Tesses::Framework::Http::BadRequest; ctx.WithMimeType("text/html") .SendText("" "" "AnonyDump - Error: Must contain " "multipart and POST" "" "

Error: Must contain multipart and POST

" "Back" "" "" ""); } } return false; }); auto mountable = std::make_shared(cb); mountable->Mount("/files/", std::make_shared(vfs, true, false)); HttpServer srv(4985, mountable); srv.StartAccepting(); TF_RunEventLoop(); TF_Quit(); return 0; }