From fb1657676ee66d8f3e06773dee1a960aaa29a46d Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 15 Apr 2025 18:21:58 -0700 Subject: [PATCH] rm old frontend code, add favicon --- bin/src/server.rs | 5 +- bin/static/css/style.css | 45 ------- bin/static/images/eff.png | Bin 1272 -> 0 bytes bin/static/images/orca.gif | Bin 90438 -> 0 bytes bin/static/index.html | 46 -------- bin/static/js/main.js | 235 ------------------------------------- bin/web/static/favicon.png | Bin 1571 -> 1272 bytes 7 files changed, 3 insertions(+), 328 deletions(-) delete mode 100644 bin/static/css/style.css delete mode 100644 bin/static/images/eff.png delete mode 100644 bin/static/images/orca.gif delete mode 100644 bin/static/index.html delete mode 100644 bin/static/js/main.js diff --git a/bin/src/server.rs b/bin/src/server.rs index 72596b4..b88b0bc 100644 --- a/bin/src/server.rs +++ b/bin/src/server.rs @@ -53,7 +53,7 @@ pub async fn get_qmdl( } // Bundles the server's static files (html/css/js) into the binary for easy distribution -static STATIC_DIR: Dir<'_> = include_dir!("$CARGO_MANIFEST_DIR/static"); +static STATIC_DIR: Dir<'_> = include_dir!("$CARGO_MANIFEST_DIR/web/build"); pub async fn serve_static( State(state): State>, @@ -67,7 +67,8 @@ pub async fn serve_static( if state.debug_mode { let mut build_path = std::path::PathBuf::new(); build_path.push("bin"); - build_path.push("static"); + build_path.push("web"); + build_path.push("build"); for part in path.split("/") { build_path.push(part); } diff --git a/bin/static/css/style.css b/bin/static/css/style.css deleted file mode 100644 index 4ef7e54..0000000 --- a/bin/static/css/style.css +++ /dev/null @@ -1,45 +0,0 @@ -td, -th { - border: 1px solid rgb(190, 190, 190); - padding: 10px; -} - -td { - text-align: center; -} - -tr:nth-child(even) { - background-color: #eee; -} - -th[scope='col'] { - background-color: #696969; - color: #fff; -} - -th[scope='row'] { - background-color: #d7d9f2; -} - -tr.current { - background-color: #53fe7b; - font-weight: bold; -} - -tr.warning { - background-color: #fe537b; - font-weight: bold; -} - -caption { - padding: 10px; - caption-side: bottom; -} - -table { - border-collapse: collapse; - border: 2px solid rgb(200, 200, 200); - letter-spacing: 1px; - font-family: sans-serif; - font-size: 0.8rem; -} diff --git a/bin/static/images/eff.png b/bin/static/images/eff.png deleted file mode 100644 index 0b1e44d50f3021ded43fca23119e799f8c11edfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1272 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU~I{Bb`J1#c2+1T%1_J8No8Qr zm{>c}*5j~)%+dJZtxBQn#vK+ZEBwkfYV~d9a$O;i)fy&y#(n<+Pv=RG9%<|lllc>| z#%hPf>sJr7IGW@Y&hhzm=>mWS-gdBJ z{)}+1NnSO6Hi?&5JLPBURsT7*bY^kvcE0;^+&#TKbdqg zw9ToHHDsY<(cgsn54)pR3(Wp9=@93F-$x7Wjx}7+yRgRk-1m)-P5c`k7#A$v{`V@I z!Eev1y=z_j8V=?@c(iNn$?5}7`3(M~cr1J3H=O_7`k?qFf411`@15A;}Wgh!W@g+}zZ>5(ej@)Wnk16ovB4k_-iRPv3y> zMm}){2Bt@zE{-7;x8B~}n0MJh=J?0^H}jmmrZg&S^}63MlTn3DO>Tj7|ACep6C?z< z*B?02a^zIU4K0>69%nX8(D3!Rt+K-N?U9f38_)RWR2>W2FRvM#`ug18W#?jbu6i0h zJjJzxg@u8Mfw6(XfkA;mfPsU7irlANdcPiic5~*RefAWOnc3y$y7=u)4(rRxpK6sT z#?PDcB6re@$M@#tv0SZ;ubtudwZceK%t4u>#JEe#cxJJ&>!hr6D@9$W{`wrs&t&Pj z)*wWiN85PavsoJpxE~n9oEjqk|LLY9wGDgh&Zkw?9-Q?#e(9vT$bT$-mqO0BIjFbIdexhooista?Y5ZMv$xe(96am`Nr&AG}RG?_UmCF30?1 z@3TA8r4H6wo?74ITLPM=33WFZ&?_*kYBg)-@B||TS61=`CTeK|9IE7XMff(MX*AGImU7N zF0P0fnGXv$Y>Zr3+mKVb#y|65ZA0<-$6lxIu>UZb{qkkTlU$>jGuc?nnfQOzt{2}m z{i%O(-m>O6f8~BbpHn;w#8`H{{m8i}Bq-fZ|BK)6iK(A*S0C7MENyAe+9?e0uD#y% zxKjOt_x97hyH_#pxO!Ur{_}KESVSj?7VL_7wfwny<|mI$KHQ$c#-(E1J9+mv+iPX= zsjZy7Y*yZmjmGAe@BDio+~;SLeo~j3sRAv5J^jhd(0*#s!(f*)z%0Sw>FVdQ&MBb@ E0E+Mht^fc4 diff --git a/bin/static/images/orca.gif b/bin/static/images/orca.gif deleted file mode 100644 index d7000489542f928fcc2190c1228d84579e7a53ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90438 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 - - - rayhunter - - - - - -
- - - -
- - - - - - - - - - - - - -
NameDate StartedDate of Last MessageSize (bytes)PCAPQMDLAnalysis ResultActions
-
-

Live System stats

-
Loading...
-
-
-

Analysis Report of Current Capture

-
Loading...
-
- - diff --git a/bin/static/js/main.js b/bin/static/js/main.js deleted file mode 100644 index 42d23aa..0000000 --- a/bin/static/js/main.js +++ /dev/null @@ -1,235 +0,0 @@ -const STATUS_RUNNING = 'running'; -const STATUS_QUEUED = 'queued'; -const STATUS_NEEDS_UPDATE = 'needs-update'; -const STATUS_COMPLETE = 'complete'; - -async function populateDivs() { - const systemStats = await getSystemStats(); - const systemStatsDiv = document.getElementById('system-stats'); - systemStatsDiv.innerHTML = JSON.stringify(systemStats, null, 2); - - const analysisReportDiv = document.getElementById('analysis-report'); - try { - const analysisReport = await getAnalysisReport('live'); - analysisReportDiv.innerHTML = JSON.stringify(analysisReport, null, 2); - } catch (e) { - analysisReportDiv.innerHTML = e.toString(); - } - - const qmdlManifest = await getQmdlManifest(); - await updateAnalysisStatus(qmdlManifest); - await updateAnalysisResults(qmdlManifest); - updateQmdlManifestTable(qmdlManifest); -} - -function setStatus(qmdlManifest, name, status) { - // ignore qmdlManifest.current_entry, it's always running - for (const entry of qmdlManifest.entries) { - if (entry.name === name) { - entry['status'] = status; - return; - } - } -} - -async function updateAnalysisStatus(qmdlManifest) { - const status = JSON.parse(await req('GET', '/api/analysis')); - if (status.running) { - setStatus(qmdlManifest, status.running, STATUS_RUNNING); - } - for (const queued in status.queued) { - setStatus(qmdlManifest, queued, STATUS_QUEUED); - } -} - -function parseNewlineDelimitedJSON(inputStr) { - const lines = inputStr.split('\n'); - const result = []; - let currentLine = ''; - while (lines.length > 0) { - currentLine += lines.shift(); - try { - const entry = JSON.parse(currentLine); - result.push(entry); - currentLine = ''; - // if this chunk wasn't valid JSON, there was an escaped newline in the - // JSON line, so simply continue to the next one - } catch (e) {} - } - return result; -} - -async function updateEntryAnalysisResult(entry) { - entry.analysis = { - warnings: [], - }; - const report = parseNewlineDelimitedJSON(await req('GET', `/api/analysis-report/${entry.name}`)); - for (const row of report) { - if (row["analysis"]) { - const timestamp = new Date(row["timestamp"]); - const analysis = row["analysis"]; - for (const warning of analysis) { - entry.analysis.warnings.push({ - timestamp, - warning, - }) - } - } - } - if (entry.analysis.warnings.length === 0) { - entry.analysis_result = `0 warnings!`; - } else { - entry.analysis_result = `!!! ${entry.analysis.warnings.length} warnings !!!`; - for (const warning of entry.analysis.warnings) { - for (const event of warning.warning.events) { - if (event === null) continue; - msg = `${warning.timestamp}: ${event.message}` - entry.analysis_result += `
${msg}` - } - } - } -} - -async function updateAnalysisResults(qmdlManifest) { - if (qmdlManifest.current_entry) { - await updateEntryAnalysisResult(qmdlManifest.current_entry); - } - for (const entry of qmdlManifest.entries) { - if (entry.status === STATUS_NEEDS_UPDATE) { - await updateEntryAnalysisResult(entry); - entry.status = STATUS_COMPLETE; - } - } -} - -function updateQmdlManifestTable(manifest) { - const table = document.getElementById('qmdl-manifest-table'); - const numRows = table.rows.length; - for (let i=1; i { - await req('POST', uri); - populateDivs(); - }; - return link; -} - -function createEntryRow(entry, isCurrent) { - const row = document.createElement('tr'); - const name = document.createElement('th'); - name.scope = 'row'; - name.innerText = entry.name; - row.appendChild(name); - - for (const key of ['start_time', 'last_message_time', 'qmdl_size_bytes']) { - const td = document.createElement('td'); - td.innerText = entry[key]; - row.appendChild(td); - } - - const pcapTd = document.createElement('td'); - pcapTd.appendChild(createLink(`/api/pcap/${entry.name}`, 'pcap')); - row.appendChild(pcapTd); - - const qmdlTd = document.createElement('td'); - qmdlTd.appendChild(createLink(`/api/qmdl/${entry.name}.qmdl`, 'qmdl')); - row.appendChild(qmdlTd); - - const analysisResult = document.createElement('td'); - analysisResult.innerHTML = entry.analysis_result; - if (entry.analysis.warnings.length > 0) { - row.classList.add("warning"); - } - row.appendChild(analysisResult); - - const actionsButtons = document.createElement('td'); - actionsButtons.appendChild(createButton(`/api/delete-recording/${entry.name}`, 'Delete')); - row.appendChild(actionsButtons); - - return row; -} - -async function getAnalysisReport(name) { - const rows = await req('GET', `/api/analysis-report/${name}`); - return rows.split('\n') - .filter(row => row.length > 0) - .map(row => JSON.parse(row)); -} - -async function getSystemStats() { - return JSON.parse(await req('GET', '/api/system-stats')); -} - -async function getQmdlManifest() { - const manifest = JSON.parse(await req('GET', '/api/qmdl-manifest')); - if (manifest.current_entry) { - parseQmdlEntry(manifest.current_entry); - } - for (entry of manifest.entries) { - parseQmdlEntry(entry); - } - // sort them in reverse chronological order - manifest.entries.reverse(); - return manifest; -} - -function parseQmdlEntry(entry) { - entry.status = STATUS_NEEDS_UPDATE; - entry.analysis_result = 'Waiting...'; - entry.start_time = new Date(entry.start_time); - if (entry.last_message_time === null) { - entry.last_message_time = "N/A"; - } else { - entry.last_message_time = new Date(entry.last_message_time); - } -} - -async function startRecording() { - await req('POST', '/api/start-recording'); - populateDivs(); -} - -async function stopRecording() { - await req('POST', '/api/stop-recording'); - populateDivs(); -} - -async function deleteAllRecodings() { - if (window.confirm("Are you sure you want to permanently delete all of your recordings?")) { - await req('POST', '/api/delete-all-recordings'); - populateDivs(); - } -} - -async function req(method, url) { - const response = await fetch(url, { - method: method, - }); - const body = await response.text(); - if (response.status >= 200 && response.status < 300) { - return body; - } else { - throw new Error(body); - } -} diff --git a/bin/web/static/favicon.png b/bin/web/static/favicon.png index 825b9e65af7c104cfb07089bb28659393b4f2097..0b1e44d50f3021ded43fca23119e799f8c11edfe 100644 GIT binary patch literal 1272 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU~I{Bb`J1#c2+1T%1_J8No8Qr zm{>c}*5j~)%+dJZtxBQn#vK+ZEBwkfYV~d9a$O;i)fy&y#(n<+Pv=RG9%<|lllc>| z#%hPf>sJr7IGW@Y&hhzm=>mWS-gdBJ z{)}+1NnSO6Hi?&5JLPBURsT7*bY^kvcE0;^+&#TKbdqg zw9ToHHDsY<(cgsn54)pR3(Wp9=@93F-$x7Wjx}7+yRgRk-1m)-P5c`k7#A$v{`V@I z!Eev1y=z_j8V=?@c(iNn$?5}7`3(M~cr1J3H=O_7`k?qFf411`@15A;}Wgh!W@g+}zZ>5(ej@)Wnk16ovB4k_-iRPv3y> zMm}){2Bt@zE{-7;x8B~}n0MJh=J?0^H}jmmrZg&S^}63MlTn3DO>Tj7|ACep6C?z< z*B?02a^zIU4K0>69%nX8(D3!Rt+K-N?U9f38_)RWR2>W2FRvM#`ug18W#?jbu6i0h zJjJzxg@u8Mfw6(XfkA;mfPsU7irlANdcPiic5~*RefAWOnc3y$y7=u)4(rRxpK6sT z#?PDcB6re@$M@#tv0SZ;ubtudwZceK%t4u>#JEe#cxJJ&>!hr6D@9$W{`wrs&t&Pj z)*wWiN85PavsoJpxE~n9oEjqk|LLY9wGDgh&Zkw?9-Q?#e(9vT$bT$-mqO0BIjFbIdexhooista?Y5ZMv$xe(96am`Nr&AG}RG?_UmCF30?1 z@3TA8r4H6wo?74ITLPM=33WFZ&?_*kYBg)-@B||TS61=`CTeK|9IE7XMff(MX*AGImU7N zF0P0fnGXv$Y>Zr3+mKVb#y|65ZA0<-$6lxIu>UZb{qkkTlU$>jGuc?nnfQOzt{2}m z{i%O(-m>O6f8~BbpHn;w#8`H{{m8i}Bq-fZ|BK)6iK(A*S0C7MENyAe+9?e0uD#y% zxKjOt_x97hyH_#pxO!Ur{_}KESVSj?7VL_7wfwny<|mI$KHQ$c#-(E1J9+mv+iPX= zsjZy7Y*yZmjmGAe@BDio+~;SLeo~j3sRAv5J^jhd(0*#s!(f*)z%0Sw>FVdQ&MBb@ E0E+Mht^fc4 delta 1565 zcmV+&2IBen38M^<8Gi%-003z>sXzb#00DDSM?wIu&K&6g00rGiL_t(|+U;H2ZR7!U+OIJ=AN-Q1gX#-xrWp&w_y z@)MXta?U)dS;xZ{pUV3+C2Y|J*@|1M^0HtEVPlk0_Dnt!KkXPkj3F58)>t5Za} zPWJ{u@{+FYBDs9nh1rO^E}w?y3qK3y$v6W}E>;PzkLJZ-7I9{iTo&xYYz=0W7yFQ0 z3euH%Gf^X8~_%M2E@)E5I?D7}a-=qr6=Kbg0qzZl!-c71tD&bia zsL=c?H44};bAPx?JP;+}<#6b63Ike{Fuo!?M{yEffez;|p!PfsuaC)>h>-AdbnwN1 z3g*1LowNjT5?+lFVd#9$!8Z9HA|$*6dQ8EHLu}U|obW6f2%uGv?vr=KNq7YYa2Roj z;|zooo<)lf=&2yxM@e`kM$CmCR#x>gI>I|*Ubr({5P#L)3xr2NyarBd`46Es|9}oU z=;TZAptAhHqfZbXeFiql%jXG?M@uk)^71VlreHvW90nF8jvjPq1ew|Ng)G0Exc5yk zaTecY1^i8)ok)27$s1jqSJ{`6t`veD9l{$?!+aqvBpkoP4B7`ax|h)*muPf46>ijz zKTmk0M}L|_!l3UBrfa?E{^*tH5}{9o=OeyqBH@)VFtID({Qf&kfrAb3DXK4-rRNmD z-~VRP-WM>zlB2;$7(o^LUy;sExKy89tX5Y6W-IT>NIN^>V*fY^C7}S?0Ct44!^wxo zVTsHjc>xN_+2N(eh+a1>W}fER{}CmOf*erj=6{5;XVF3BogH3uNl+?wxmgJ>()KCo z-}j`mqc8SBQvoV_pQHFCJYBxcQ1hG406lEb!fSLGPy82$lDGhh3Me5Wfbt3)J+g#0 z`~oag70^IJJA1`o3{*n)oDiTDP?Hq{-m2K;k1C*0s~FTos}!Mt&?vCsDhBNJa&|FO zC4XQl3-n~gKt{{of8GzUkWmU110IgI0DLxRIM>0US|TsM=L|@F0Bun8U!cRB7-2ap zz=y-7*UxOxz@Z0)@QM)9wSGki1AZ38ceG7Q72z5`i;i=J`ILzL@iUO?SBBG-0cQuo z+an4TsLy-g-+vjPe+`bX;s2dai14j32f@AJ%cKRt1jz?@ zL#U|&2Rk|USm`^&cIlJY7yzm-Xlmfy=y#0!&4E~S2*vpR^W#>)>m%0>%$Ld>rvQHc zgX^}zMo*T3P=I1AAa`^0Vt7;r6+mTFgaT;$FRP(MgCn~Cq(yy_v^Y<*&}9MTv43|y zb0`w1avZ=5-)r0x#c{elh8MoqxYmsYw8!6hGR<|nMCB;ZkqhN}jawKZA3#zd-|@wl z%5vR|P`dIciwGr4YLb}mHhfXd12i5(?YhG?J<}b)E1(l6`}HS@N90Uxh$q4BBJ%9s0V3F?CAJ{hTd#*tf+ur-W9MOURF-@B77_-OshsY}6OXRY=5%C^* z26z?l)1=$bz30!so5tfABdSYzO+H=CpV~aaUefmjvfZ3Ttu9W&W3Iu6ROlh0MFA5h z;my}8lB0tAV-Rvc2Zs_CCVyVS^YIEviJkC##wQ4gpYZ1D8M^Avr<`+(Zr}qtfwth% z2+uEH?AbkbnS|%(7o6=Ny=21k<^*@Ogy#pl%$~27@civTy1&uy#(g>o?nW2?n^|0E zyBqv=uQes9e3Pu6&CmlZ=^Q%cGi~> P00000NkvXXu0mjf)KB+W