CI / test (push) Failing after 42s
People sign up on the website and link IMVU accounts by putting a code in the account's tagline, which the hub reads from IMVU's public API (the most recent proof wins; link caps per person). IMVU's age verification or Access Pass make an account adult. T5DE's proxy signs in with a device code and keeps a WebSocket open, reporting the IMVU account in use and the community products it wears; /online shows those who opted in. Moderators get a console: who's online, people, link caps, bans, roles, and the audit log. Tests run the website and API against an embedded Postgres and a fake IMVU API. Co-Authored-By: Claude Opus 5.5 <[email protected]>
41 lines
1.5 KiB
HTML
41 lines
1.5 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>{{template "title" .}} · T5DE Hub</title>
|
|
<meta name="htmx-config" content='{"includeIndicatorStyles": false}'>
|
|
<link rel="icon" href="/static/favicon.svg" type="image/svg+xml">
|
|
<link rel="stylesheet" href="/static/style.css">
|
|
<script src="/static/htmx.min.js" defer></script>
|
|
</head>
|
|
<body hx-headers='{"X-CSRF-Token": "{{.CSRF}}"}'>
|
|
<header class="top">
|
|
<div class="wrap">
|
|
<a class="brand" href="/"><span class="logo">T5DE</span> Hub</a>
|
|
<nav>
|
|
<a href="/online"{{if eq .Page "online"}} class="here"{{end}}>Online</a>
|
|
{{if .Person}}
|
|
<a href="/account"{{if eq .Page "account"}} class="here"{{end}}>Account</a>
|
|
{{if .Person.IsModerator}}<a href="/console"{{if eq .Page "console"}} class="here"{{end}}>Console</a>{{end}}
|
|
<span class="right">
|
|
<span class="muted small">{{.Person.Username}}</span>
|
|
<form method="post" action="/signout"><input type="hidden" name="csrf" value="{{.CSRF}}"><button class="secondary">Sign out</button></form>
|
|
</span>
|
|
{{else}}
|
|
<span class="right">
|
|
<a href="/signin">Sign in</a>
|
|
<a class="button" href="/signup">Create account</a>
|
|
</span>
|
|
{{end}}
|
|
</nav>
|
|
</div>
|
|
</header>
|
|
<main class="wrap">
|
|
{{if .Flash}}<div class="flash">{{.Flash}}</div>{{end}}
|
|
{{template "content" .}}
|
|
</main>
|
|
<footer class="wrap muted">T5DE is unofficial: not made by or affiliated with IMVU.</footer>
|
|
</body>
|
|
</html>
|