{% extends "base.html" %} {% block title %}{{ name }} · The Booth{% endblock %} {% block content %}
‹ all booths

{{ name }}

{% if uploaded %}⬆ pickup {% endif %}{% if board %}{{ board|length }} link{{ '' if board|length == 1 else 's' }}{% if items %} · {{ items|length }} file{{ '' if items|length == 1 else 's' }}{% endif %}{% else %}{{ items|length }} item{{ '' if items|length == 1 else 's' }} · expires in {{ expires_in|dur }}{% endif %} {% if items %}⬇ zip{% endif %} {# A durable multi-writer board gets no one-click wipe — same rule as the kept lane on the index. Remove rows with the per-row ×, or release the board from the index and wipe it from there. #} {% if not board %}
{% endif %}
{% if uploaded %}
📦 Pickup {{ name }} — download files below, or on nh3-dev grab ~/booth-data/{{ name }}/
{% endif %} {% if board %} {# THE STANDING LINK BOARD. Every agent session on the fleet appends here, so this is the one booth where the useful granularity is the ROW, not the folder. Rendered as real UI rather than a markdown blob so a dead link can be removed without hand-editing the file — and so provenance (who posted it, when) is readable at a glance, which is the whole reason a bare URL three days old is useless. Removal posts a CONTENT ID, never a row number: another session can append between this page rendering and the × being clicked, and an index would then delete a neighbour. #}
{{ board|length }} link{{ '' if board|length == 1 else 's' }} newest last · appended by any session · × removes one row
{% for e in board %}
{{ e.desc }}
{{ e.url }}
{% if e.who %}{{ e.who }}{% endif %} {% if e.when %}{{ e.when }}{% endif %}
{% endfor %}
{% endif %} {% if not items and not board %}
This booth is empty.
{% elif items %} {# `elif items` and not a bare `else`: a board booth has NO gallery items (its links.md is rendered as the board above and filtered out), so a plain else would emit an empty