switchlingo / app /static /report.html
MsThai's picture
Upload folder using huggingface_hub
5ab3501 verified
Raw History Blame Contribute Delete
2.96 kB
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Report or Contact · SwitchLingo</title><link rel="stylesheet" href="legal.css"><link rel="icon" href="icon-192.png"></head><body><div class="wrap">
<a class="brand" href="/">Switch<span>Lingo</span></a>
<h1>Report a video or contact us</h1>
<p>Reports about <b>intimate images</b>, <b>your voice or likeness</b>, <b>copyright</b> or <b>harmful use</b> that include a SwitchLingo link are <b>removed right away</b> while we review them, and identical copies are blocked. Anyone can report, with or without an account.</p>
<form id="f" class="card">
<label for="kind">What's wrong?</label><select id="kind" name="kind" required></select>
<label for="link">SwitchLingo link or job code (if you have one)</label><input id="link" name="link" placeholder="https://…/?job=abc123def456">
<label for="details">Details</label><textarea id="details" name="details" placeholder="What is it, and where did you see it? For copyright: name the work that was copied."></textarea>
<label for="name">Your name (or the person you're authorized to act for)</label><input id="name" name="name">
<label for="contact">Email or phone so we can reply</label><input id="contact" name="contact" required>
<label class="chk hidden" id="swornWrap"><input type="checkbox" id="sworn" name="sworn" value="1"> I believe in good faith that this use isn't authorized by the copyright owner, its agent or the law. Under penalty of perjury, the information in this notice is accurate and I am the owner or authorized to act for the owner. Typing my name above is my signature.</label>
<button class="btn" type="submit">Send report</button>
<p id="msg" aria-live="polite"></p>
</form>
<p class="muted">Read our <a href="terms.html">Terms</a> and <a href="privacy.html">Privacy Policy</a>. False reports can carry legal penalties.</p>
</div>
<script>
const $=s=>document.querySelector(s);
fetch("/api/report-kinds").then(r=>r.json()).then(r=>{ $("#kind").innerHTML=Object.entries(r.kinds).map(([k,v])=>`<option value="${k}">${v}</option>`).join("");
const q=new URLSearchParams(location.search); if(q.get("job")) $("#link").value=q.get("job"); if(q.get("kind")) $("#kind").value=q.get("kind"); sync(); });
function sync(){ $("#swornWrap").classList.toggle("hidden",$("#kind").value!=="copyright"); $("#swornWrap").style.display=$("#kind").value==="copyright"?"flex":"none"; }
$("#kind").onchange=sync;
$("#f").onsubmit=async e=>{ e.preventDefault(); const r=await fetch("/api/reports",{method:"POST",body:new FormData(e.target)}); const j=await r.json();
$("#msg").className=r.ok?"ok":"err"; $("#msg").textContent=r.ok?(`Received (reference ${j.id}). `+(j.removed?"The video was removed and blocked while we review.":"We'll review it and reply.")):(j.detail||"Couldn't send, try again.");
if(r.ok) e.target.reset(); };
</script></body></html>