From 1c74ae9de599ee9287b5e9aad4eb17b6f74f0a62 Mon Sep 17 00:00:00 2001 From: Rasmus Date: Sat, 14 Dec 2024 13:26:21 +0100 Subject: [PATCH] Added frontend and working fetching. --- Backend/Handler/ThreadHandler.cs | 12 ++++----- Models/Filtered.db | Bin 110592 -> 0 bytes Models/ScannerResume.db | Bin 8192 -> 0 bytes Models/mydb.db | Bin 24576 -> 0 bytes Proxy/Program.cs | 43 ++++++++++++++++++++++++------- Proxy/Proxy.csproj | 1 + Proxy/appsettings.json | 2 +- RSE.sln.DotSettings.user | 1 + frontend/nuxt.config.ts | 5 ++-- frontend/pages/progress.vue | 38 +++++++++++++-------------- frontend/plugins/getProgress.ts | 5 +++- 11 files changed, 69 insertions(+), 38 deletions(-) delete mode 100644 Models/Filtered.db delete mode 100644 Models/ScannerResume.db delete mode 100644 Models/mydb.db diff --git a/Backend/Handler/ThreadHandler.cs b/Backend/Handler/ThreadHandler.cs index 8d541a6..784c270 100644 --- a/Backend/Handler/ThreadHandler.cs +++ b/Backend/Handler/ThreadHandler.cs @@ -30,27 +30,27 @@ public class ThreadHandler public void Start() { - //Thread scanner = new(StartScanner); + Thread scanner = new(StartScanner); Thread indexer = new(StartContentFilter); Thread database = new(StartDbHandler); Thread discarded = new(StartDiscardedDbHandler); - //Thread filtered = new(StartFilteredDbHandler); + Thread filtered = new(StartFilteredDbHandler); Thread resume = new(StartResumeDbHandler); Thread communication = new(StartCommunicationHandler); - //scanner.Start(); + scanner.Start(); indexer.Start(); database.Start(); discarded.Start(); - //filtered.Start(); + filtered.Start(); resume.Start(); communication.Start(); - //scanner.Join(); + scanner.Join(); indexer.Join(); database.Join(); discarded.Join(); - //filtered.Join(); + filtered.Join(); resume.Join(); communication.Join(); } diff --git a/Models/Filtered.db b/Models/Filtered.db deleted file mode 100644 index a1172a10b5f4a58021ac01492f6e3c0dcb57d763..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110592 zcmeI&T~8ZV8o+T6NoK%=mn6WDRMief67A#F!|k7nU&-7}eOs z9#^4ND-Ac5_Hu7~n=jGNu-~9}z1c5OsoHq~&m1$yadNR2&L0VK&UwzvoacAueX{p_ z+jcDDRjYkkbBwjrY)Vm5|1gYHDmCf-e&YRJ{rt%*+`OuI|0=PvtT>tabM?V3zw^xR zexFZfexEK)FHY@Ejor>o{yMocxtRVby*u&qM0xy|@gKF{w71%d`iFX`ey)BdTPf`b zAbn|9;@GZ;3%KmQ}t3-I?8(8I&;isy>(n_Y{`pSypeiP&+1ck~SF)JY!Ce>>iIxl}fvYfVNRQ>C9Sx#Oy=9~IS zt$A#1HjZ0u+c`O{=8{@x-N)0KzP_$pXhDWaeUjQ{#C(&wglWejLnq!Fvn>1dDOE2l z%d*egXD3#Buj`*Ua(+4Y)Z zmDW#1A1Q0Z1Pryrt;I0Ih8b3 zuWtu1Rf#Zr5PK=+GpWdB{}O zZw)$*zjBAnhl{ z^Z%$$FL@z=00IagfB*srAb`G551 zm<$m>009ILKmY**5I_I{1Q6i=|FaJufB*srAbu;KmY**5I_I{ z1Q0*~0R#}>`#<{t0tg_000IagfB*srAb;niOfB*srAb7u3Vl%<0VErvE!#nqHjRn;N^FoBVZhXL2$9Q+jve=ZW(8 zFXKOIziDr^74;AGQ2ku}3^@c4KmdV{OJIF#NlDqwBkN7)b;EY7YOU+Ef_gRIYBsI9 zW4D^sTvT3k?=NWj(vsr-;M5KqRuqX!dcJIKR!pO^`E=VfGEpF7tfnVo^}QCln32kog7OOe`@51+Unm#|TxCcQFev|(@FOJ)93PZ zRyxXh-8ys3X1#S}H;=vX3iUbn!Cg(yW)-&;4qb?feed<9BXqq?ENB}#wX0Fd{J*%P z>N_j4%yzqn4ZHr#Io#_by-ecHs+i9Nv(NoZ8nZuZQD6Ht>%(iXWhrsn!diSTxdatNqv&qX2g7xx`b)R zB10$M8?!9?^(j>^EX%Ub+h-?Md#~%CIC8Pdv^#xU)0dYOw;tpg3&o04VrH>Om{8a- zbS}X#WO=Mjs=EACS7~%!SnW=5s*B3E-E=xU)m4KmqDWMl6my6IVG3S-=<#2UK$gM& zgsR(l=}cH{$9`qkYmQZFAJ>}pcQyaaU96q@Gb0bC-Qu{W=kv1Z+UEk25E*x$s+zvBp4PqM(PR4uJ^%mv?~9uL>8HxuQgGY!rQL9>wsmy%?|t#Yc-0)<26)=EN?O4y@WsHAmA-@E$~mP zQ*Ya6{#|;~a|EHR(x+#y+i)FFA@vA2P%8UN;3cqN$ij;t?BWwWqV^xqe* zW`dDqjk5WrSvHG#bI%By!icy0^(BP2VYy7-!a_9Tt>)@Q**jMB_`_Ee+ik@sLvd)* zZmXGVp`^rPovs}n(k)%FfvHo&67BX;&Bk diff --git a/Models/ScannerResume.db b/Models/ScannerResume.db deleted file mode 100644 index a44725c94c534967899d2392373bfd3dd9f212b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeI1K}#D!6oB8%Mzfp5osBsZ6=cY%g(6D-z$UVa5K@zD&UI~86ETTyHiw=XQlUMz z;1AG?=hkCS=^rR1$KLu2gdpT1(zhEIDl~fY^oE_;+3(G~8NNLYQz;c1zAN|IUeodA zD=>gDFr@^5OROAgRF<$4i$3tp{^?KaUc$upm&Vu#7IPgV&--(AQ>&nmB372 z;XH(D1e1sc@a;b2&_meg3XF}os!i4~p_fN;m6?s^DmX|NzhRNj$3lh;GQ5i)C~%ur eCQQTJK{~90hsls*GE;?7imAAhV25TLZvFzJ^MOqO diff --git a/Models/mydb.db b/Models/mydb.db deleted file mode 100644 index 1ed87f7fef7f2ef75db2e8bf39705b4a3cdef456..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 zcmeI(&u-c<90zbav}r*6>1mNBp_yn0P^%%>m>oz1rKx(FMD;Zo$N4!4{=`05O3qH(gV1A_qlw=S*%8?%l#=(15kiVQ z%RKM!oZ@j@>cLmQ_;e*GM*^{QgeL7Uae-jxHR$`^AwROl=i48( zT&6!>Md!3;K{)WesWp>ju_PwsCcm>M8r)n(4dT%fm(tp0w0QU8&fV2ErUY|LTGrOT@VS!Am$kulcN#8G-<8!?nUXd(SaRCnW+ZX@2>1Rwwb2tWV=5P$##AOHafK;Y>DEARh5{UEf200bZa W0SG_<0uX=z1Rwwb2tZ(~1pWbTBrW&= diff --git a/Proxy/Program.cs b/Proxy/Program.cs index d7e00e2..f3bb6cd 100644 --- a/Proxy/Program.cs +++ b/Proxy/Program.cs @@ -1,10 +1,11 @@ using System.Text.Json; using System.Text.Json.Serialization; -using MessagePack; -using Microsoft.AspNetCore.Cors.Infrastructure; +using AspNetCoreRateLimit; +using Microsoft.AspNetCore.HttpOverrides; using Models.Model.External; using NetMQ; using NetMQ.Sockets; +const string myAllowSpecificOrigins = "_myAllowSpecificOrigins"; WebApplicationBuilder builder = WebApplication.CreateSlimBuilder(args); @@ -15,16 +16,40 @@ builder.Services.ConfigureHttpJsonOptions(options => builder.Services.AddCors(options => { - options.AddPolicy("CorsPolicy", x => x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().Build()); + options.AddPolicy(name: myAllowSpecificOrigins, x => x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()); }); +// Add memory cache and rate limiting services +builder.Services.AddMemoryCache(); +builder.Services.Configure(options => +{ + options.GeneralRules = + [ + new() + { + Endpoint = "*", // Apply to all endpoints + Period = "10s", // Rate limiting window of 10 second + Limit = 5 // Maximum 5 requests per 10 seconds + } + ]; +}); + +builder.Services.AddInMemoryRateLimiting(); +builder.Services.AddSingleton(); + WebApplication app = builder.Build(); -app.UseCors(); +app.UseForwardedHeaders(new() +{ + ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto +}); + + +app.UseIpRateLimiting(); // Apply IP-based rate limiting middleware + +app.UseCors(myAllowSpecificOrigins); RouteGroupBuilder progressApi = app.MapGroup("/progress"); -progressApi.AllowAnonymous(); -progressApi.DisableAntiforgery(); progressApi.MapGet("/", () => { CommunicationObject communicationObject = new() @@ -43,8 +68,8 @@ progressApi.MapGet("/", () => return JsonSerializer.Deserialize(msg); }); +/* RouteGroupBuilder searchApi = app.MapGroup("/search"); -progressApi.AllowAnonymous(); searchApi.MapGet("/{term}", (string term) => { CommunicationObject communicationObject = new(); @@ -61,11 +86,11 @@ searchApi.MapGet("/{term}", (string term) => return JsonSerializer.Deserialize(msg); }); - +*/ app.Run(); [JsonSerializable(typeof(ScanningStatus))] -[JsonSerializable(typeof(SearchResults))] +//[JsonSerializable(typeof(SearchResults))] [JsonSerializable(typeof(CommunicationObject))] internal partial class AppJsonSerializerContext : JsonSerializerContext { diff --git a/Proxy/Proxy.csproj b/Proxy/Proxy.csproj index fd6bb2b..9601591 100644 --- a/Proxy/Proxy.csproj +++ b/Proxy/Proxy.csproj @@ -9,6 +9,7 @@ + diff --git a/Proxy/appsettings.json b/Proxy/appsettings.json index 10f68b8..51c11b2 100644 --- a/Proxy/appsettings.json +++ b/Proxy/appsettings.json @@ -1,7 +1,7 @@ { "Logging": { "LogLevel": { - "Default": "Information", + "Default": "Warning", "Microsoft.AspNetCore": "Warning" } }, diff --git a/RSE.sln.DotSettings.user b/RSE.sln.DotSettings.user index e315b01..e2d6b61 100644 --- a/RSE.sln.DotSettings.user +++ b/RSE.sln.DotSettings.user @@ -3,4 +3,5 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded \ No newline at end of file diff --git a/frontend/nuxt.config.ts b/frontend/nuxt.config.ts index ea2d759..08bec8d 100644 --- a/frontend/nuxt.config.ts +++ b/frontend/nuxt.config.ts @@ -1,8 +1,9 @@ // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ compatibilityDate: '2024-11-01', - devtools: { enabled: true }, - css: ['~/assets/css/main.css'], + ssr: true, + devtools: { enabled: false }, + css: ['@/assets/css/main.css'], postcss: { plugins: { diff --git a/frontend/pages/progress.vue b/frontend/pages/progress.vue index 7494e6a..17f77f7 100644 --- a/frontend/pages/progress.vue +++ b/frontend/pages/progress.vue @@ -5,44 +5,44 @@ const progress = getProgress();