PageSourceSearch

https://faptap.net/assets/Reports.0c10186c.js

js faptap.net collected 2026-09-25 22:12:05 UTC 34,881 bytes, 1 lines download raw bytes

1import{_ as Be}from"./Avatar.vue_vue_type_script_setup_true_lang.87e6bbe3.js";import{d as ct,u as dt,c as M,b as v,L as pt,K as vt,f as u,i as a,l as p,j as o,n as m,_ as $,Q as A,t as r,F as D,N as G,D as De,a as j,v as l,x as c,R as te,g as _,h as je,aH as mt,p as ft,m as x,aA as He}from"./index.16ba4ea0.js";import{_ as ht}from"./Comments.vue_vue_type_script_setup_true_lang.270db979.js";import{_ as _t}from"./Pagination.vue_vue_type_script_setup_true_lang.8b7ec3c5.js";import{_ as gt}from"./Player.vue_vue_type_script_setup_true_lang.373c1e69.js";import{_ as xt}from"./VRPlayer.vue_vue_type_style_index_0_lang.a44f4621.js";import{_ as yt}from"./TaxonomyMergeModal.vue_vue_type_script_setup_true_lang.d9b24f76.js";import"./vendor-highcharts.9b480a8e.js";import"https://cdn.jsdelivr.net/npm/[email protected]/dist/buttplug-wasm.mjs";import"./Rating.vue_vue_type_script_setup_true_lang.3ad4ff04.js";import"./ReportDialog.vue_vue_type_script_setup_true_lang.571cdeb2.js";import"./metric.84224865.js";const wt={class:"mx-auto max-w-7xl px-4 py-6 text-white"},bt={key:0,class:"mb-6 text-center text-sm text-red-300 font-medium"},kt={key:1,class:"space-y-6"},zt={class:"mb-6 flex flex-col sm:flex-row items-stretch sm:items-center gap-3"},$t={class:"flex flex-wrap gap-2"},Rt={class:"relative"},Mt={class:"flex items-center justify-between gap-2 w-full"},Tt={class:"flex items-center gap-2"},Ct={class:"text-xs opacity-70"},At={class:"relative"},St={class:"flex items-center justify-between gap-2 w-full"},Vt={class:"flex items-center gap-2"},Pt={class:"sm:ml-auto relative"},Ut={class:"flex items-center justify-between gap-2 w-full"},Bt={class:"flex items-center gap-2"},Dt={class:"flex items-center justify-between gap-2 w-full"},jt={class:"flex items-center gap-2"},Ht={key:0,class:"py-12 flex justify-center items-center"},It={key:1,class:"rounded-lg border border-red-500/50 bg-red-950/20 p-4 text-red-200"},Ot={key:2,class:"bg-zinc-800 rounded-lg divide-y divide-zinc-700 shadow-lg"},qt={key:0,class:"px-4 py-10 text-center text-zinc-400"},Lt={class:"sm:col-span-2 flex items-center gap-3"},Nt={class:"rounded bg-zinc-700 px-2 py-1 text-[11px] font-semibold uppercase tracking-wide text-zinc-200"},Ft={class:"sm:col-span-5 min-w-0"},Gt={class:"flex items-start gap-3"},Et=["src"],Kt={class:"min-w-0 flex-1"},Qt=["href","title"],Jt={class:"truncate"},Wt=["href","title"],Xt={class:"truncate"},Yt=["href","title"],Zt={class:"truncate"},en=["href","title"],tn={class:"truncate"},nn=["href","title"],sn={class:"truncate"},an=["title"],ln={key:6,class:"truncate text-xs text-zinc-400"},on={class:"mt-2 flex flex-wrap gap-2 text-[11px] text-zinc-400"},rn={class:"sm:col-span-2 space-y-1"},un={class:"text-sm text-zinc-200"},cn={class:"flex flex-wrap gap-2 text-[11px] text-zinc-400"},dn=["onMouseenter"],pn=["onMouseenter"],vn={class:"sm:col-span-1 space-y-1"},mn={key:0,class:"text-xs text-zinc-400"},fn={class:"sm:col-span-2 flex flex-wrap justify-start sm:justify-end gap-2"},hn={key:0,class:"space-y-5"},_n={key:0,class:"rounded-md border border-red-500/50 bg-red-950/30 px-3 py-2 text-sm text-red-200"},gn={key:1,class:"rounded-md border border-green-500/50 bg-green-950/30 px-3 py-2 text-sm text-green-200"},xn={class:"space-y-2"},yn=["href","title"],wn={class:"min-w-0 flex-1 truncate"},bn=["href","title"],kn={class:"min-w-0 flex-1 truncate"},zn=["href","title"],$n={class:"min-w-0 flex-1 truncate"},Rn=["href","title"],Mn={class:"min-w-0 flex-1 truncate"},Tn=["href","title"],Cn={class:"min-w-0 flex-1 truncate"},An={key:5,class:"text-lg font-medium"},Sn={key:6,class:"text-sm text-zinc-400"},Vn={class:"text-sm text-zinc-300"},Pn={key:7,class:"rounded-lg border border-zinc-800 bg-zinc-950/50 p-3 text-sm text-zinc-300"},Un={key:8,class:"rounded-lg border border-zinc-700/60 bg-zinc-900/60 p-4 space-y-3 mt-3"},Bn={class:"flex items-center justify-between gap-3"},Dn={class:"flex items-center gap-2.5"},jn={class:"text-xs uppercase tracking-wider text-zinc-400 font-semibold flex items-center gap-1.5"},Hn={href:"/taxonomy/blacklist",target:"_blank",class:"text-xs text-zinc-300 hover:text-white font-medium inline-flex items-center gap-1 hover:underline"},In={class:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-sm"},On={class:"font-medium text-white"},qn={class:"font-mono text-zinc-300 bg-zinc-800 px-2 py-0.5 rounded text-xs inline-block"},Ln={key:0},Nn={class:"text-zinc-500 text-xs block"},Fn={class:"font-mono text-xs text-zinc-400"},Gn=["href"],En={key:1,class:"text-zinc-500 text-xs"},Kn={key:9,class:"mt-2 text-xs flex items-center gap-1.5"},Qn=["href"],Jn={key:10,class:"mt-2 text-sm text-zinc-300"},Wn={class:"font-medium text-zinc-100"},Xn={key:2,class:"rounded-lg border border-zinc-800 bg-zinc-950/40 p-3"},Yn={class:"flex flex-wrap gap-2"},Zn=["onMouseenter","onMouseleave"],es=["onMouseenter","onMouseleave"],ts={key:2,class:"inline-flex items-center gap-1"},ns={class:"space-y-4"},ss={key:0,class:"rounded-md border border-red-500/50 bg-red-950/30 px-3 py-2 text-sm text-red-200"},as={key:1,class:"rounded-md border border-green-500/50 bg-green-950/30 px-3 py-2 text-sm text-green-200"},ls={class:"text-sm text-zinc-300"},os={class:"flex gap-3"},ne=10,ys=ct({__name:"Reports",setup(rs){const Ie=dt(),se=M(()=>{var t;return!!((t=Ie.user)!=null&&t.admin)}),E=v(!1),H=v(!1),K=v(""),Q=v([]),T=v(1),ae=v(0),C=v({status:{pending:0,awaiting_response:0,resolved:0,dismissed:0,reversed:0},type:{all:0,videos:0,comments:0}}),n=v(null),S=v(!1),V=v(!1),J=v(""),g=v(null),w=v(""),b=v(""),le=v({}),I=v({}),P=v({}),R=v({undo:!1}),oe=new Map,re=v(!1),O=v(null),Oe=M(()=>{var t;return((t=O.value)==null?void 0:t.content_type)===2?"tag":"performer"}),qe=M(()=>
1{if(!n.value)return[];const t=n.value.report.content_type;return t===2||t===3?n.value.available_actions.filter(e=>e!=="delete"):n.value.available_actions}),Le=async(t,e)=>{if(!O.value)return;const d=O.value.id,y=String(e.id),Z=String(e.slug),ee=await j.admin.actOnReport(d,"merge",y,Z);S.value=!1,n.value&&n.value.report.id===d&&(n.value=ee),k().catch(()=>{})},W=v(!1),de=v(null),ie=v(""),pe=(t,e,d)=>{if(de.value=t.currentTarget,e==="content"){const y=d.content_type===0?"video":d.content_type===1?"comment":d.content_type===2?"tag":d.content_type===3?"performer":"playlist";ie.value=`Total pending reports for this ${y}.`}else ie.value="Total unique reporters who reported this item.";W.value=!0},ve=()=>{W.value=!1},f=v({status:"pending",type:"all",sort:"created_at_asc"}),me=[{value:"all",label:"All"},{value:"pending",label:"Pending"},{value:"awaiting_response",label:"Awaiting Response"},{value:"resolved",label:"Resolved"},{value:"dismissed",label:"Dismissed"},{value:"reversed",label:"Reversed"}],fe=[{value:"all",label:"All"},{value:"video",label:"Videos"},{value:"comment",label:"Comments"},{value:"tag",label:"Tags"},{value:"performer",label:"Performers"},{value:"playlist",label:"Playlists"}],q=v(!1),L=v(!1),U=v(!1),he=v(null),_e=v(null),ge=v(null),Ne=M(()=>{const t=me.find(e=>e.value===f.value.status);return t?`${t.label} (${ye(f.value.status)})`:""}),Fe=M(()=>{const t=fe.find(e=>e.value===f.value.type);return t?t.label:"All"}),Ge=M(()=>f.value.sort==="created_at_asc"?"Oldest First":"Most Reported"),Ee=M(()=>Math.ceil(ae.value/ne)>1&&!E.value),Ke=M(()=>{var e;const t=(e=n.value)==null?void 0:e.report.content_type;return g.value==="delete"||g.value==="admin_delete"?t===2?"This will reject and soft-delete the tag, updating its status to rejected.":t===3?"This will soft-delete the performer by setting status to inactive.":t===4?"This will permanently delete the reported playlist.":"This will remove the reported content from the site.":g.value==="delete_ban"?"This will remove the reported content and disable the author account.":g.value==="dismiss"?"This will dismiss the report.":g.value==="blacklist"?t===2?"This will blacklist the tag, deleting its page and preventing re-creation (returning 410 Gone).":t===3?"This will blacklist the performer, deleting its page and preventing re-creation (returning 410 Gone).":"This will blacklist the tag/performer, deleting its page and preventing re-creation (returning 410 Gone).":g.value==="merge"?t===2?"This will merge this tag into a canonical tag as an alias and update video tags.":t===3?"This will merge this performer into a canonical performer as an alias and update video performers.":"This will merge this tag/performer into a canonical item as an alias and retag videos.":g.value==="soft_delete"?"This will soft-delete the reported video.":g.value==="shadow_ban"?"This will shadow-ban the author, hiding all of their comments from other users while keeping the account active.":g.value==="undo"?"This will undo the previous moderation action.":g.value==="restore"?"This will restore the deleted content.":g.value==="unban"?"This will unban the author account.":g.value==="restore_unban"?"This will restore the content and unban the author account.":g.value==="request_details"?"This will send an automated DMCA request email to the reporter and transition the report status to Awaiting Response.":"Apply this moderation action?"}),k=async(t=T.value)=>{if(!!se.value){E.value=!0,K.value="";try{const[e,d]=await Promise.all([j.admin.getReports({status:f.value.status,type:f.value.type,sort:f.value.sort,page:t,limit:ne}),j.admin.getReportCounts(f.value.type)]);if(Q.value=e.items,ae.value=e.total,e.items.length===0&&e.total>0&&t>1){const y=Math.ceil(e.total/ne);k(y);return}T.value=t,C.value=d}catch(e){K.value=(e==null?void 0:e.message)||String(e)}finally{E.value=!1}}},Qe=t=>{T.value=t,k(t)},Je=async t=>{n.value=await j.admin.getReportReview(t),S.value=!0},We=async(t,e)=>{H.value=!0,w.value="",b.value="";try{const d=await j.admin.actOnReport(t,e);b.value=`Action "${be(e)}" completed successfully!`,n.value&&n.value.report.id===t&&(n.value=d),await k(),setTimeout(()=>{V.value=!1,S.value=!1,b.value=""},1e3)}catch(d){w.value=(d==null?void 0:d.message)||String(d)}finally{H.value=!1}},Xe=async(t,e)=>{H.value=!0,w.value="",b.value="";try{const d=await j.admin.undoReport(t,e);b.value="Undo completed successfully!",n.value&&n.value.report.id===t&&(n.value=d),await k(),setTimeout(()=>{V.value=!1,S.value=!1,b.value=""},1e3)}catch(d){w.value=(d==null?void 0:d.message)||String(d)}finally{H.value=!1}},X=(t,e)=>{if(e==="merge"){const d=n.value&&n.value.report.id===t?n.value.report:Q.value.find(y=>y.id===t);if(d&&(d.content_type===2||d.content_type===3)){O.value=d,re.value=!0;return}}J.value=t,g.value=e,w.value="",V.value=!0},Ye=async()=>
1{if(!(!J.value||!g.value))try{const t=g.value;if(t==="undo"||t==="restore"||t==="unban"||t==="restore_unban"){const e=t==="undo"?void 0:t;await Xe(J.value,e)}else await We(J.value,t)}catch(t){w.value=(t==null?void 0:t.message)||String(t)}},Ze=t=>{!n.value||X(n.value.report.id,t)},et=t=>{f.value.status=t,T.value=1,k(1)},tt=t=>{f.value.type=t,T.value=1,k(1)},xe=t=>{f.value.sort=t,T.value=1,k(1)},ye=t=>t==="all"?(C.value.status.pending||0)+(C.value.status.awaiting_response||0)+(C.value.status.resolved||0)+(C.value.status.dismissed||0)+(C.value.status.reversed||0):C.value.status[t]||0,we=t=>({"Prohibited or illegal content (e.g. child exploitation, CSAM, incest, bestiality, etc.)":"Prohibited/Illegal","Prohibited or illegal content (e.g. CSAM, bestiality, etc.)":"Prohibited/Illegal","Prohibited or illegal content (e.g. CSAM, incest, bestiality, etc.)":"Prohibited/Illegal","Non-consensual or revenge porn":"Non-consensual","Copyright infringement":"Copyright","Source not found":"Broken Source","Other video playback issue (e.g. out of sync, poor quality, low resolution, buffering, no audio)":"Playback Issue","Hate speech or harassment":"Hate/Harassment",Impersonation:"Impersonation","Spam or unauthorized advertising":"Spam/Promo","Spam or misleading tag":"Spam/Misleading","Spam or misleading performer":"Spam/Misleading"})[t]||t,be=t=>({dismiss:"Dismiss",soft_delete:"Soft-Delete",delete:"Delete",admin_delete:"Delete Playlist",delete_ban:"Delete & Ban",shadow_ban:"Shadow Ban",undo:"Undo",request_details:"Request Details",blacklist:"Blacklist",merge:"Merge"})[t],ke=t=>({dismiss:"Dismissed",soft_delete:"Soft-Deleted",delete:"Deleted",admin_delete:"Deleted Playlist",delete_ban:"Deleted & Banned",shadow_ban:"Shadow Banned",undo:"Undone",request_details:"Requested Details",blacklist:"Blacklisted",merge:"Merged"})[t]||t,nt=t=>({dismiss:"close",soft_delete:"eye-outline",delete:"trash",admin_delete:"trash",delete_ban:"user-delete",shadow_ban:"eye-outline",undo:"refresh",request_details:"mail-fast-outline",blacklist:"block",merge:"swap"})[t]||"alert",st=t=>({restore:"refresh",unban:"account-plus",restore_unban:"lock-reset"})[t]||"refresh",at=(t,e)=>{le.value[t]=e},ze=(t,e)=>{I.value[t]=e},lt=t=>{var y;const e=(y=n.value)==null?void 0:y.report.content_type;return t==="delete"||t==="admin_delete"?e===2?"Reject and soft-delete this tag, setting its status to rejected.":e===3?"Soft-delete this performer by setting status to inactive (false).":e===4?"Delete this playlist from the site.":e===0?"Remove the reported video, but keep the author account active.":e===1?"Remove the reported comment, but keep the author account active.":"Remove the reported content, but keep the author account active.":t==="blacklist"?e===2?"Add this tag slug to the taxonomy blacklist to prevent its recreation, returning 410 Gone.":e===3?"Add this performer slug to the taxonomy blacklist to prevent its recreation, returning 410 Gone.":"Add the slug to the taxonomy blacklist to prevent its recreation, returning 410 Gone.":t==="merge"?e===2?"Merge this tag into a canonical tag as an alias and update all video tags.":e===3?"Merge this performer into a canonical performer as an alias and update all video performers.":"Map this tag or performer to a canonical item as an alias and retag all associated videos.":{dismiss:"Dismiss the report without changing the content or user status.",soft_delete:"Hide the reported video until its stream URL is fixed.",delete:"Remove the reported content, but keep the author account active.",delete_ban:"Remove the reported content and disable the author account.",shadow_ban:"Shadow-ban the author: hide all of their comments from public view while keeping the account active.",undo:"Undo the previous moderation result using the available reversal mode.",request_details:"Request details from the copyright holder and set the report status to Awaiting Response.",blacklist:"Add the slug to the taxonomy blacklist to prevent its recreation, returning 410 Gone.",merge:"Map this tag or performer to a canonical item as an alias and retag all associated videos."}[t]},ot=t=>({restore:"Restore",unban:"Unban",restore_unban:"Restore & Unban"})[t],rt=t=>({all:"All",pending:"Pending",awaiting_response:"Awaiting Response",resolved:"Resolved",dismissed:"Dismissed",reversed:"Reversed"})[t]||t,$e=t=>({restore:"Restore the content only. Use this when the user should remain banned or shadow-banned.",unban:"Unban the user only. The content stays deleted or hidden.",restore_unban:"Restore the content and unban the user at the same time.",undo:"Undo the most recent action using the default reversal mode for this report."})[t],Re=t=>{N(t),P.value={...P.value,[t]:!0}},ue=t=>{Te(t,()=>{P.value={...P.value,[t]:!1}})},it=t=>{N(t)},Y=t=>{N(`undo:${t}`),R.value={...R.value,[t]:!0}},B=t=>{Te(`undo:${t}`,()=>{R.value={...R.value,[t]:!1}})},Me=t=>{N(`undo:${t}`)},Te=(t,e)=>{N(t),oe.set(t,setTimeout(e,150))},N=t=>{const e=oe.get(t);e&&(clearTimeout(e),oe.delete(t))},ut=t=>{const e=new Date(t);return Date.now()-e.getTime()<1e3*60*60*24*7?`${He(e)} ago`:e.toISOString().slice(0,10)};let ce=!1;return pt(()=>{ce=!0,k()}),vt(()=>{ce||k(),ce=!1}),(t,e)=>{var d,y,Z,ee,Ce,Ae,Se;return l(),u("div",wt,[e[36]||(e[36]=a("h1",{class:"text-3xl font-semibold text-center text-white mb-6"}," Reports ",-1)),se.value?p("",!0):(l(),u("div",bt," Admin access required. ")),se.value?(l(),u("div",kt,[a("div",zt,[a("div",$t,[a("div",Rt,[o($,{ref_key:"statusBtn",ref:he,theme:f.value.status!=="pending"?"blue":"light",dense:"",class:"flex items-center justify-center gap-1.5",onClick:e[0]||(e[0]=s=>q.value=!q.value)},{default:m(()=>[o(c,{name:"flag",class:"h-4 w-4 text-white"}),a("span",null,r(Ne.value),1),o(c,{name:"chevron-down",class:"h-3 w-3 opacity-70"})]),_:1},8,["theme"]),o(A,{modelValue:q.value,"onUpdate:modelValue":e[1]||(e[1]=s=>q.value=s),target:(d=he.value)==null?void 0:d.$el,placement:"bottom",offset:8,class:"text-white text-sm py-1 w-40"},{default:m(()=>[(l(),u(D,null,G(me,s=>o(te,{key:s.value,active:f.value.status===s.value,onClick:z=>{et(s.value),q.value=!1}},{default:m(()=>[a("div",Mt,[a("div",Tt,[a("span",null,r(s.label),1),a("span",Ct,"("+r(ye(s.value))+")",1)]),f.value.status===s.value?(l(),_(c,{key:0,name:"check",class:"h-4 w-4"})):p("",!0)])]),_:2},1032,["active","onClick"])),64))]),_:1},8,["modelValue","target"])]),a("div",At,[o($,{ref_key:"typeBtn",ref:_e,theme:f.value.type!=="all"?"blue":"light",dense:"",class:"flex items-center justify-center gap-1.5",onClick:e[2]||(e[2]=s=>L.value=!L.value)},{default:m(()=>[a("span",null,r(Fe.value),1),o(c,{name:"chevron-down",class:"h-3 w-3 opacity-70"})]),_:1},8,["theme"]),o(A,{modelValue:L.value,"onUpdate:modelValue":e[3]||(e[3]=s=>L.value=s),target:(y=_e.value)==null?void 0:y.$el,placement:"bottom",offset:8,class:"text-white text-sm py-1 w-32"},{default:m(()=>[(l(),u(D,null,G(fe,s=>o(te,{key:s.value,active:f.value.type===s.value,onClick:z=>{tt(s.value),L.value=!1}},{default:m(()=>[a("div",St,[a("div",Vt,[a("span",null,r(s.label),1)]),f.value.type===s.value?(l(),_(c,{key:0,name:"check",class:"h-4 w-4"})):p("",!0)])]),_:2},1032,["active","onClick"])),64))]),_:1},8,["modelValue","target"])])]),a("div",Pt,[o($,{ref_key:"sortBtn",ref:ge,theme:f.value.sort!=="created_at_asc"?"blue":"light",dense:"",class:"flex items-center justify-center gap-1.5",onClick:e[4]||(e[4]=s=>U.value=!U.value)},{default:m(()=>[o(c,{name:"sort-ascending",class:"h-4 w-4"}),a("span",null,r(Ge.value),1),o(c,{name:"chevron-down",class:"h-3 w-3 opacity-70"})]),_:1},8,["theme"]),o(A,{modelValue:U.value,"onUpdate:modelValue":e[7]||
1(e[7]=s=>U.value=s),target:(Z=ge.value)==null?void 0:Z.$el,placement:"bottom",offset:8,class:"text-white text-sm py-1 w-40"},{default:m(()=>[o(te,{active:f.value.sort==="created_at_asc",onClick:e[5]||(e[5]=s=>{xe("created_at_asc"),U.value=!1})},{default:m(()=>[a("div",Ut,[a("div",Bt,[o(c,{name:"sort-ascending",class:"h-4 w-4 opacity-70"}),e[21]||(e[21]=a("span",null,"Oldest First",-1))]),f.value.sort==="created_at_asc"?(l(),_(c,{key:0,name:"check",class:"h-4 w-4"})):p("",!0)])]),_:1},8,["active"]),o(te,{active:f.value.sort==="most_reported",onClick:e[6]||(e[6]=s=>{xe("most_reported"),U.value=!1})},{default:m(()=>[a("div",Dt,[a("div",jt,[o(c,{name:"sort-descending",class:"h-4 w-4 opacity-70"}),e[22]||(e[22]=a("span",null,"Most Reported",-1))]),f.value.sort==="most_reported"?(l(),_(c,{key:0,name:"check",class:"h-4 w-4"})):p("",!0)])]),_:1},8,["active"])]),_:1},8,["modelValue","target"])])]),E.value?(l(),u("div",Ht,[o(c,{name:"loading",class:"h-10 w-10 text-blue-500 animate-spin"})])):K.value?(l(),u("div",It,r(K.value),1)):(l(),u("div",Ot,[Q.value.length===0?(l(),u("div",qt,"No reports found.")):p("",!0),(l(!0),u(D,null,G(Q.value,s=>(l(),u("div",{key:s.id,class:"p-4 grid grid-cols-1 sm:grid-cols-12 gap-3 items-center transition-colors rounded-md"},[a("div",Lt,[s.content_type===0?(l(),_(c,{key:0,name:"video-report",class:"h-5 w-5 text-zinc-400"})):s.content_type===1?(l(),_(c,{key:1,name:"comment-report",class:"h-5 w-5 text-zinc-400"})):s.content_type===2?(l(),_(c,{key:2,name:"tag",class:"h-5 w-5 text-zinc-400"})):s.content_type===3?(l(),_(c,{key:3,name:"performer-report",class:"h-5 w-5 text-zinc-400"})):s.content_type===4?(l(),_(c,{key:4,name:"playlist",class:"h-5 w-5 text-zinc-400"})):p("",!0),a("span",Nt,r(s.content_type===0?"Video":s.content_type===1?"Comment":s.content_type===2?"Tag":s.content_type===3?"Performer":"Playlist"),1)]),a("div",Ft,[a("div",Gt,[s.content_type===0&&s.thumbnail_url?(l(),u("img",{key:0,src:je(mt)(s.thumbnail_url),class:"h-12 w-20 rounded object-cover"},null,8,Et)):s.content_type===3?(l(),_(Be,{key:1,icon:"performer-report",image:s.thumbnail_url,name:s.content_preview,class:"h-10 w-10 shrink-0"},null,8,["image","name"])):p("",!0),a("div",Kt,[s.video_id&&s.content_type===0?(l(),u("a",{key:0,href:`/v/${s.video_id}`,target:"_blank",rel:"noopener noreferrer",title:s.content_preview,class:"inline-flex max-w-full items-center gap-1 text-sm font-medium text-zinc-100 hover:text-blue-300"},[a("span",Jt,r(s.content_preview),1),o(c,{name:"open-in-new",class:"h-3 w-3 shrink-0 text-zinc-400"})],8,Qt)):s.video_id&&s.content_type===1?(l(),u("a",{key:1,href:`/v/${s.video_id}?comments=true`,target:"_blank",rel:"noopener noreferrer",title:s.content_preview,class:"inline-flex max-w-full items-center gap-1 text-sm font-medium text-zinc-100 hover:text-blue-300"},[a("span",Xt,r(s.content_preview),1),o(c,{name:"open-in-new",class:"h-3 w-3 shrink-0 text-zinc-400"})],8,Wt)):s.slug&&s.content_type===2?(l(),u("a",{key:2,href:`/t/${s.slug}`,target:"_blank",rel:"noopener noreferrer",title:s.content_preview,class:"inline-flex max-w-full items-center gap-1 text-sm font-medium text-zinc-100 hover:text-blue-300"},[a("span",Zt,r(s.content_preview),1),o(c,{name:"open-in-new",class:"h-3 w-3 shrink-0 text-zinc-400"})],8,Yt)):s.slug&&s.content_type===3?(l(),u("a",{key:3,href:`/p/${s.slug}`,target:"_blank",rel:"noopener noreferrer",title:s.content_preview,class:"inline-flex max-w-full items-center gap-1 text-sm font-medium text-zinc-100 hover:text-blue-300"},[a("span",tn,r(s.content_preview),1),o(c,{name:"open-in-new",class:"h-3 w-3 shrink-0 text-zinc-400"})],8,en)):(s.playlist_id||s.slug)&&s.content_type===4?(l(),u("a",{key:4,href:`/playlist/${s.playlist_id||s.slug}`,target:"_blank",rel:"noopener noreferrer",title:s.content_preview,class:"inline-flex max-w-full items-center gap-1 text-sm font-medium text-zinc-100 hover:text-blue-300"},[a("span",sn,r(s.content_preview),1),o(c,{name:"open-in-new",class:"h-3 w-3 shrink-0 text-zinc-400"})],8,nn)):(l(),u("div",{key:5,class:"truncate text-sm font-medium text-zinc-100",title:s.content_preview},r(s.content_preview),9,an)),s.content_context?(l(),u("div",ln,r(s.content_context),1)):p("",!0),a("div",on,[a("span",null,"Author: "+r(s.author_username),1),a("span",null,"Reported by: "+r(s.reporter_username||s.reporter_email||"Anonymous"),1),a("span",null,r(ut(s.submitted_on)),1)])])])]),a("div",rn,[e[23]||(e[23]=a("div",{class:"text-xs uppercase tracking-wide text-zinc-500"},"Reason",-1)),a("div",un,r(we(s.reason)),1),a("div",cn,[a("span",{class:"inline-flex items-center gap-1 rounded bg-zinc-700 px-2 py-1 cursor-help select-none",onMouseenter:z=>pe(z,"content",s),onMouseleave:ve},[s.content_type===0?(l(),_(c,{key:0,name:"video-report",class:"h-3 w-3 text-zinc-300 shrink-0"})):s.content_type===1?(l(),_(c,{key:1,name:"comment-report",class:"h-3 w-3 text-zinc-300 shrink-0"})):s.content_type===2?(l(),_(c,{key:2,name:"tag",class:"h-3 w-3 text-zinc-300 shrink-0"})):s.content_type===3?(l(),_(c,{key:3,name:"performer-report",class:"h-3 w-3 text-zinc-300 shrink-0"})):s.content_type===4?(l(),_(c,{key:4,name:"playlist",class:"h-3 w-3 text-zinc-300 shrink-0"})):p("",!0),a("span",null,"Content: "+r(s.pending_content_count),1)],40,dn),a("span",{class:"inline-flex items-center gap-1 rounded bg-zinc-700 px-2 py-1 cursor-help select-none",onMouseenter:z=>pe(z,"reporter",s),onMouseleave:ve},[o(c,{name:"account",class:"h-3 w-3 text-zinc-300 shrink-0"}),a("span",null,"Reporter: "+r(s.pending_reporter_count),1)],40,pn)])]),a("div",vn,[e[24]||(e[24]=a("div",{class:"text-xs uppercase tracking-wide text-zinc-500"},"Status",-1)),a("span",{class:ft(["inline-block px-2 py-0.5 rounded text-xs font-semibold uppercase tracking-wider border",s.status==="resolved"?"bg-emerald-500/20 text-emerald-400 border-emerald-500/30":s.status==="pending"||s.status==="awaiting_response"?"bg-amber-500/20 text-amber-400 border-amber-500/30":"bg-zinc-800 text-zinc-400 border-zinc-700"])},r(rt(s.status)),3),s.action?(l(),u("div",mn,"Last action: "+r(ke(s.action)),1)):p("",!0)]),a("div",fn,[o($,{dense:"",theme:"blue",class:"flex items-center gap-1.5",onClick:z=>Je(s.id)},{default:m(()=>[o(c,{name:"eye",class:"h-4 w-4"}),e[25]||(e[25]=x(" Review ",-1))]),_:1},8,["onClick"]),s.status==="pending"||s.status==="awaiting_response"?(l(),_($,{key:0,dense:"",theme:"red",class:"flex items-center gap-1.5",onClick:z=>X(s.id,"dismiss")},{default:m(()=>[o(c,{name:"close",class:"h-4 w-4"}),e[26]||(e[26]=x(" Dismiss ",-1))]),_:1},8,["onClick"])):p("",!0)])]))),128))])),o(_t,{currentPage:T.value,total:ae.value,limit:ne,show:Ee.value,"onUpdate:currentPage":Qe},null,8,["currentPage","total","show"])])):p("",!0),o(De,{modelValue:S.value,"onUpdate:modelValue":e[16]||(e[16]=s=>S.value=s),title:((ee=n.value)==null?void 0:ee.report.content_type)===0?"Review Video Report":((Ce=n.value)==null?void 0:Ce.report.content_type)===1?"Review Comment Report":((Ae=n.value)==null?void 0:Ae.report.content_type)===2?"Review Tag Report":((Se=n.value)==null?void 0:Se.report.content_type)===3?"Review Performer Report":"Review Playlist Report",wide:""},{default:m(()=>{var s,z,Ve,Pe,Ue;return[n.value?(l(),u("div",hn,[w.value?(l(),u("div",_n,r(w.value),1)):p("",!0),b.value?(l(),u("div",gn,r(b.value),1)):p("",!0),a("div",xn,[n.value.report.video_id&&n.value.report.content_type===0?(l(),u("a",{key:0,href:`/v/${n.value.report.video_id}`,target:"_blank",rel:"noopener noreferrer",title:n.value.report.content_preview,class:"flex w-full min-w-0 items-center gap-1 text-lg font-medium text-white hover:text-blue-300"},[a("span",wn,r(n.value.report.content_preview),1),o(c,{name:"open-in-new",class:"h-4 w-4 shrink-0 text-zinc-400"})],8,yn)):n.value.report.video_id&&n.value.report.content_type===1?(l(),u("a",{key:1,href:`/v/${n.value.report.video_id}?comments=true`,target:"_blank",rel:"noopener noreferrer",title:n.value.report.content_preview,class:"flex w-full min-w-0 items-center gap-1 text-lg font-medium text-white hover:text-blue-300"},[a("span",kn,r(n.value.report.content_preview),1),o(c,{name:"open-in-new",class:"h-4 w-4 shrink-0 text-zinc-400"})],8,bn)):n.value.report.slug&&n.value.report.content_type===2?(l(),u("a",{key:2,href:`/t/${n.value.report.slug}`,target:"_blank",rel:"noopener noreferrer",title:n.value.report.content_preview,class:"flex w-full min-w-0 items-center gap-1 text-lg font-medium text-white hover:text-blue-300"},[a("span",$n,r(n.value.report.content_preview),1),o(c,{name:"open-in-new",class:"h-4 w-4 shrink-0 text-zinc-400"})],8,zn)):n.value.report.slug&&n.value.report.content_type===3?(l(),u("a",{key:3,href:`/p/${n.value.report.slug}`,target:"_blank",rel:"noopener noreferrer",title:n.value.report.content_preview,class:"flex w-full min-w-0 items-center gap-1 text-lg font-medium text-white hover:text-blue-300"},[a("span",Mn,r(n.value.report.content_preview),1),o(c,{name:"open-in-new",class:"h-4 w-4 shrink-0 text-zinc-400"})],8,Rn)):(n.value.report.playlist_id||n.value.report.slug)&&n.value.report.content_type===4?(l(),u("a",{key:4,href:`/playlist/${n.value.report.playlist_id||n.value.report.slug}`,target:"_blank",rel:"noopener noreferrer",title:n.value.report.content_preview,class:"flex w-full min-w-0 items-center gap-1 text-lg font-medium text-white hover:text-blue-300"},[a("span",Cn,r(n.value.report.content_preview),1),o(c,{name:"open-in-new",class:"h-4 w-4 shrink-0 text-zinc-400"})],8,Tn)):(l(),u("div",An,r(n.value.report.content_preview),1)),n.value.report.content_context?(l(),u("div",Sn,r(n.value.report.content_context),1)):p("",!0),a("div",Vn,r(we(n.value.report.reason)),1),n.value.details?(l(),u("div",Pn,r(n.value.details),1)):p("",!0),n.value.report.content_type===2||n.value.report.content_type===3?(l(),u("div",Un,[a("div",Bn,[a("div",Dn,[n.value.report.content_type===3?(l(),_(Be,{key:0,icon:"performer-report",image:n.value.report.thumbnail_url,name:n.value.report.content_preview,class:"h-9 w-9 shrink-0"},null,8,["image","name"])):p("",!0),a("span",jn,[n.value.report.content_type===2?(l(),_(c,{key:0,name:"tag",class:"h-4 w-4 text-zinc-300"})):p("",!0),x(" "+r(n.value.report.content_type===2?"Tag Report Information":"Performer Report Information"),1)])]),a("a",Hn,[e[27]||(e[27]=a("span",null,"Vie
1w Blacklist",-1)),o(c,{name:"open-in-new",class:"h-3 w-3"})])]),a("div",In,[a("div",null,[e[28]||(e[28]=a("span",{class:"text-zinc-500 text-xs block"},"Name:",-1)),a("span",On,r(n.value.report.content_preview),1)]),a("div",null,[e[29]||(e[29]=a("span",{class:"text-zinc-500 text-xs block"},"Slug:",-1)),a("span",qn,r(n.value.report.slug||"N/A"),1)]),n.value.report.tag_id||n.value.report.performer_id?(l(),u("div",Ln,[a("span",Nn,r(n.value.report.content_type===2?"Tag ID:":"Performer ID:"),1),a("span",Fn,r(n.value.report.tag_id||n.value.report.performer_id),1)])):p("",!0),a("div",null,[e[30]||(e[30]=a("span",{class:"text-zinc-500 text-xs block"},"Public Link:",-1)),n.value.report.slug?(l(),u("a",{key:0,href:n.value.report.content_type===2?`/t/${n.value.report.slug}`:`/p/${n.value.report.slug}`,target:"_blank",rel:"noopener noreferrer",class:"text-zinc-300 hover:text-white hover:underline font-mono text-xs inline-flex items-center gap-1"},[x(r(n.value.report.content_type===2?`/t/${n.value.report.slug}`:`/p/${n.value.report.slug}`)+" ",1),o(c,{name:"open-in-new",class:"h-3 w-3"})],8,Gn)):(l(),u("span",En,"-"))])])])):p("",!0),(s=n.value.video)!=null&&s.stream_url?(l(),u("div",Kn,[e[31]||(e[31]=a("span",{class:"text-zinc-500"},"Source URL:",-1)),a("a",{href:n.value.video.stream_url,target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 text-zinc-300 hover:text-white font-medium hover:underline truncate"},[x(r(n.value.video.stream_url)+" ",1),o(c,{name:"open-in-new",class:"h-3 w-3 shrink-0"})],8,Qn)])):p("",!0),n.value.report.status!=="pending"&&n.value.report.action?(l(),u("div",Jn,[e[32]||(e[32]=x(" Last Action: ",-1)),a("span",Wn,[x(r(n.value.report.admin_username||"Admin")+" ",1),n.value.report.resolved_at?(l(),u(D,{key:0},[x(r(je(He)(new Date(n.value.report.resolved_at)))+" ago ",1)],64)):p("",!0),x(" \u2022 "+r(ke(n.value.report.action)),1)])])):p("",!0)]),n.value.report.content_type===0&&n.value.video||n.value.thing_id&&n.value.thing_type!==void 0?(l(),u("div",Xn,[(z=n.value.video)!=null&&z.vr?(l(),_(xt,{key:0,video:n.value.video,loop:!1,class:"aspect-video bg-black overflow-hidden w-full rounded-lg"},null,8,["video"])):n.value.video?(l(),_(gt,{key:1,video:n.value.video,loop:!1,class:"aspect-video bg-black overflow-hidden w-full rounded-lg"},null,8,["video"])):p("",!0),o(ht,{"thing-id":n.value.report.content_type===0&&n.value.video?n.value.video.id:n.value.thing_id,"thing-type":n.value.report.content_type===0?0:n.value.thing_type,"highlight-comment-id":(Ve=n.value.comment)==null?void 0:Ve.id},null,8,["thing-id","thing-type","highlight-comment-id"])])):p("",!0),a("div",Yn,[n.value.report.status==="pending"||n.value.report.status==="awaiting_response"?(l(!0),u(D,{key:0},G(qe.value,i=>{var F;return l(),u("div",{key:i,class:"inline-flex items-center gap-1"},[o($,{ref_for:!0,ref:h=>at(i,h),theme:i.includes("delete")||i.includes("ban")||i.includes("blacklist")?"red":i==="dismiss"?"light":"blue",dense:"",class:"flex items-center gap-1.5",onClick:h=>Ze(i),onMouseenter:h=>Re(i),onMouseleave:h=>ue(i),onFocus:h=>Re(i),onBlur:h=>ue(i)},{default:m(()=>[o(c,{name:nt(i),class:"h-4 w-4"},null,8,["name"]),x(" "+r(be(i)),1)]),_:2},1032,["theme","onClick","onMouseenter","onMouseleave","onFocus","onBlur"]),o(A,{modelValue:P.value[i],"onUpdate:modelValue":h=>P.value[i]=h,target:((F=le.value[i])==null?void 0:F.$el)||le.value[i],placement:"top",offset:8,class:"w-72 p-3 text-xs leading-5 text-zinc-200"},{default:m(()=>[a("div",{onMouseenter:h=>it(i),onMouseleave:h=>ue(i)},r(lt(i)),41,Zn)]),_:2},1032,["modelValue","onUpdate:modelValue","target"])])}),128)):p("",!0),(Pe=n.value.undo_modes)!=null&&Pe.length?(l(!0),u(D,{key:1},G(n.value.undo_modes,i=>{var F;return l(),u("div",{key:i,class:"inline-flex items-center gap-1"},[o($,{ref_for:!0,ref:h=>ze(i,h),dense:"",theme:"light",class:"flex items-center gap-1.5",onClick:h=>X(n.value.report.id,i),onMouseenter:h=>Y(i),onMouseleave:h=>B(i),onFocus:h=>Y(i),onBlur:h=>B(i)},{default:m(()=>[o(c,{name:st(i),class:"h-4 w-4"},null,8,["name"]),x(" "+r(ot(i)),1)]),_:2}
1,1032,["onClick","onMouseenter","onMouseleave","onFocus","onBlur"]),o(A,{modelValue:R.value[i],"onUpdate:modelValue":h=>R.value[i]=h,target:((F=I.value[i])==null?void 0:F.$el)||I.value[i],placement:"top",offset:8,class:"w-72 p-3 text-xs leading-5 text-zinc-200"},{default:m(()=>[a("div",{onMouseenter:h=>Me(i),onMouseleave:h=>B(i)},r($e(i)),41,es)]),_:2},1032,["modelValue","onUpdate:modelValue","target"])])}),128)):n.value.report.can_undo?(l(),u("div",ts,[o($,{ref:i=>ze("undo",i),dense:"",theme:"light",class:"flex items-center gap-1.5",onClick:e[8]||(e[8]=i=>X(n.value.report.id,"undo")),onMouseenter:e[9]||(e[9]=i=>Y("undo")),onMouseleave:e[10]||(e[10]=i=>B("undo")),onFocus:e[11]||(e[11]=i=>Y("undo")),onBlur:e[12]||(e[12]=i=>B("undo"))},{default:m(()=>[o(c,{name:"refresh",class:"h-4 w-4"}),e[33]||(e[33]=x(" Undo ",-1))]),_:1},512),o(A,{modelValue:R.value.undo,"onUpdate:modelValue":e[15]||(e[15]=i=>R.value.undo=i),target:((Ue=I.value.undo)==null?void 0:Ue.$el)||I.value.undo,placement:"top",offset:8,class:"w-72 p-3 text-xs leading-5 text-zinc-200"},{default:m(()=>[a("div",{onMouseenter:e[13]||(e[13]=i=>Me("undo")),onMouseleave:e[14]||(e[14]=i=>B("undo"))},r($e("undo")),33)]),_:1},8,["modelValue","target"])])):p("",!0)])])):p("",!0)]}),_:1},8,["modelValue","title"]),o(De,{modelValue:V.value,"onUpdate:modelValue":e[18]||(e[18]=s=>V.value=s),title:"Confirm Action"},{default:m(()=>[a("div",ns,[w.value?(l(),u("div",ss,r(w.value),1)):p("",!0),b.value?(l(),u("div",as,r(b.value),1)):p("",!0),a("p",ls,r(Ke.value),1),a("div",os,[o($,{class:"flex-1 flex items-center justify-center gap-1.5",dense:"",onClick:e[17]||(e[17]=s=>V.value=!1)},{default:m(()=>[o(c,{name:"close",class:"h-4 w-4"}),e[34]||(e[34]=x(" Cancel ",-1))]),_:1}),o($,{class:"flex-1 flex items-center justify-center gap-1.5",dense:"",theme:"red",loading:H.value,onClick:Ye},{default:m(()=>[o(c,{name:"check",class:"h-4 w-4"}),e[35]||(e[35]=x(" Confirm ",-1))]),_:1},8,["loading"])])])]),_:1},8,["modelValue"]),o(A,{modelValue:W.value,"onUpdate:modelValue":e[19]||(e[19]=s=>W.value=s),target:de.value,placement:"top",offset:8,class:"bg-zinc-800 border border-zinc-700 p-2 text-xs text-zinc-200 max-w-xs shadow-lg pointer-events-none"},{default:m(()=>[x(r(ie.value),1)]),_:1},8,["modelValue","target"]),o(yt,{open:re.value,"onUpdate:open":e[20]||(e[20]=s=>re.value=s),kind:Oe.value,source:O.value,"execute-merge-handler":Le},null,8,["open","kind","source"])])}}});export{ys as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.