a85ee4cacf
Marty (2026-09-19): cap the login-ad slots. About 124 members sign in a day and every live slot shares those views, so a fourth slot only thins the other three. Member slots only; house login ads now step aside whenever a member slot is running (JSON: filtered out of the pool; MySQL: ORDER BY house ASC). The 14 slots already running keep their term; new buys are refused until one ends. Format label and chatbot updated. mindfulmojo (email, 2026-09-19): the viewer frames the advertiser's page and both controls meant "back"; some sites refuse to load inside a frame and signing up is easier in a full tab. The viewer bar now carries "Open site in a new tab", set from the ad's target URL. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
52 lines
3.0 KiB
HTML
52 lines
3.0 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>Viewing ad — InstantAdPay</title>
|
|
<link rel="icon" type="image/png" href="/logo-icon.png">
|
|
<link rel="stylesheet" href="/assets/site.css?v=20260910h">
|
|
<style>
|
|
html,body{height:100%;margin:0;overflow:hidden}
|
|
.vw{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--bg,#04110c);color:var(--ink,#e8fff7)}
|
|
/* right padding keeps the check buttons clear of the dashboard overlay's ✕ close button */
|
|
.vbar{flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:10px 68px 10px 16px;
|
|
background:var(--panel-solid,#071a12);border-bottom:1px solid var(--line,rgba(67,232,195,.18));flex-wrap:wrap}
|
|
.vbrand{font-family:var(--disp,sans-serif);font-weight:800;font-size:15px;white-space:nowrap}
|
|
.vbrand em{color:var(--mint,#43e8c3);font-style:normal}
|
|
.vtimer{font-family:var(--mono,monospace);font-weight:700;font-size:14px;border:1px solid var(--line-strong,rgba(67,232,195,.32));
|
|
border-radius:999px;padding:5px 14px;min-width:104px;text-align:center}
|
|
.vtimer.paused{color:var(--amber,#ffb238);border-color:rgba(255,178,56,.55)}
|
|
.vtimer.done{color:var(--mint,#43e8c3)}
|
|
.vmsg{font-size:13px;color:var(--muted,#8ba69c);flex:1;min-width:140px}
|
|
.vcheck{display:none;align-items:center;gap:8px;flex-wrap:wrap}
|
|
.vcheck.on{display:flex}
|
|
.vcheck .prompt{font-size:13.5px;font-weight:700}
|
|
.vcheck button{font-size:20px;line-height:1;background:var(--panel,rgba(9,26,19,.85));color:inherit;
|
|
border:1px solid var(--line-strong,rgba(67,232,195,.32));border-radius:10px;padding:7px 12px;cursor:pointer;margin-right:6px}
|
|
.vcheck button:hover,.vcheck button:focus-visible{border-color:var(--mint,#43e8c3);outline:none}
|
|
.vdone{display:none;gap:8px;align-items:center}
|
|
.vdone.on{display:flex}
|
|
.vframe{flex:1;border:0;width:100%;background:#fff}
|
|
.vfail{flex:1;display:grid;place-items:center;color:var(--muted,#8ba69c);padding:30px;text-align:center;font-size:15px}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="vw">
|
|
<div class="vbar">
|
|
<span class="vbrand">Instant<em>AdPay</em></span>
|
|
<span class="vtimer" id="vTimer">…</span>
|
|
<span class="vmsg" id="vMsg">Loading the ad…</span>
|
|
<a class="btn small sec" id="vOpen" target="_blank" rel="noopener" hidden title="Some sites refuse to load inside a frame, and signing up is easier in a full tab">Open site in a new tab ↗</a>
|
|
<span class="vcheck" id="vCheck"><span class="prompt" id="vPrompt"></span><span id="vOpts"></span></span>
|
|
<span class="vdone" id="vDone">
|
|
<a class="btn small" href="/my#earn">Back to dashboard</a>
|
|
<button class="btn small sec" id="vClose" type="button">Close tab</button>
|
|
</span>
|
|
</div>
|
|
<iframe class="vframe" id="vFrame" sandbox="allow-scripts allow-same-origin allow-forms allow-popups" referrerpolicy="no-referrer" title="Advertiser site"></iframe>
|
|
</div>
|
|
<script src="/assets/view.js?v=20260919a"></script>
|
|
</body>
|
|
</html>
|