Hub: accounts, IMVU linking by tagline, proxy sign-in, presence, console
CI / test (push) Failing after 42s
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]>
This commit is contained in:
1 parent
54e569bea3
commit
b9dc3f0ec1
36 files changed
+3548
-5
No files matched your search
@@ -0,0 +1,40 @@
|
||||
<!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>
|
||||
Reference in new issue
Block a user