Render drive info cards

This commit is contained in:
Josh Holtrop 2026-04-01 20:54:44 -04:00
parent 46a1887982
commit 51aa0c805e

View File

@ -3,7 +3,9 @@
require "cgi" require "cgi"
require "erb" require "erb"
require "digest" require "digest"
require "json"
require "securerandom" require "securerandom"
require "socket"
ASSETS_DIR = File.join(__dir__, "../assets") ASSETS_DIR = File.join(__dir__, "../assets")
DATA_DIR = File.join(__dir__, "../data") DATA_DIR = File.join(__dir__, "../data")
@ -81,9 +83,32 @@ end
if cgi.params.key?("content") if cgi.params.key?("content")
if authenticated if authenticated
sleep 5 html = ""
sock = UNIXSocket.new("/run/malpd/malpd.sock")
sock.puts "info"
info = JSON.parse(sock.gets)
sock.close
info.each do |entry|
case entry["type"]
when "drive"
dt = entry["drivetype"]
model = CGI.escapeHTML(entry["model"])
capacity = CGI.escapeHTML(entry["capacity"])
html << <<~HTML
<div class="card ok">
<div class="card-header">
<span class="card-title">#{model} <span class="drive-type #{dt}">#{dt.upcase}</span></span>
</div>
<div class="card-sub">#{capacity}</div>
</div>
HTML
end
end
cgi.out("type" => "text/html", "charset" => "UTF-8") do cgi.out("type" => "text/html", "charset" => "UTF-8") do
"<p>Content placeholder</p>" html
end end
else else
cgi.out("Status" => "403 Forbidden", "type" => "text/plain", "charset" => "UTF-8") do cgi.out("Status" => "403 Forbidden", "type" => "text/plain", "charset" => "UTF-8") do