forked from 4ducky/4ducky
Same design, layout, URLs and features as the PHP version: browse grid, image view with AJAX comments, BBCode, likes, uploads (file, URL and bookmarklet), quicktagger, profile, block list, inbox, invites, Hall of Ducks, Truhe, abuse reports and the admin tools. - Parameterized SQL, escaped templates (askama), argon2 passwords, server-side sessions, CSRF tokens on every write, strict script CSP - SSRF-safe remote image fetching, magic-byte upload checks - Self-hosted captcha replaces reCAPTCHA v1; analytics/social widgets removed - Vanilla JS replaces jQuery and its plugins with the same DOM behaviour - Reverse proxy support (frontend_path, trust_proxy, secure_cookies) - Admin CLI: admin, settings, invites See README.md for running it and the full list of changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
72 lines
1.4 KiB
HTML
72 lines
1.4 KiB
HTML
{% include "header.html" %}
|
|
|
|
{%- if user_not_found %}
|
|
<div class="warn">
|
|
<ul>
|
|
<li class="error">User not found.</li>
|
|
</ul>
|
|
</div>
|
|
{%- endif %}
|
|
{%- if user_blocked %}
|
|
<div class="warn">
|
|
<ul>
|
|
<li class="error">User blocked you.</li>
|
|
</ul>
|
|
</div>
|
|
{%- endif %}
|
|
|
|
<br/><br/>
|
|
<table class="duckytable" align="center" width="800px" border="0" cellspacing="0" cellpadding="0">
|
|
<caption>Messages:</caption>
|
|
{%- for c in convos %}
|
|
<tr>
|
|
<td width="400px">
|
|
|
|
<div class="userInfo" style="margin:5px;min-height:40px;{{ c.border }}" >
|
|
<img class="avatar" width="40" height="40" src="/{{ c.avatar }}"/>
|
|
<div class="name">
|
|
<strong>
|
|
<a href="/inbox/{{ c.name_enc }}">{{ c.name }}</a>
|
|
</strong>
|
|
</div>
|
|
<div class="info">
|
|
ID: <strong>{{ c.id }}</strong> /
|
|
Images: <strong>{{ c.images }}</strong>
|
|
{%- if let Some(w) = c.website %}/
|
|
Website: <strong><a href="{{ w }}" target="_blank">
|
|
{{ w }}
|
|
</a></strong>
|
|
{%- endif %}
|
|
{%- if !c.title.is_empty() %}
|
|
|
|
/ Subject: <strong> {{ c.title|safe }}
|
|
|
|
|
|
</strong><br />
|
|
{%- endif %}
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
{%- else %}
|
|
<tr>
|
|
<td width="400px">
|
|
<div class="userInfo" style="border:1px solid #d2d9e7;padding:8px;">
|
|
Your inbox is empty.
|
|
</div>
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
{%- endfor %}
|
|
|
|
|
|
</table> <br/>
|
|
|
|
{% include "footer.html" %}
|