#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([](ServerContext& ctx)->bool{ if(ctx.path == "/") { ctx.WithMimeType("text/html") .SendText( "" "" "AnonyDump" "" "

AnonyDump

" "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( "" "" "AnonyDump - 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; }