1import{_ as q}from"./BfNQs6Go.js";import{d as W,w as G,c as J,a as C,y as Y,x as Z,b as K,s as O,e as Q,f as d,g as v,i as e,l as f,t as o,h as r,k as T,F as P,r as U,m as V,n as y,p,_ as X,o as l,j as ee,v as N}from"./CWXzWxAq.js";import{_ as te}from"./ujoLtV0O.js";import{u as se,b as ae}from"./V6PXsQGD.js";import{u as oe}from"./j6FCzuTM.js";import"./DQSuM1Xs.js";const ne={class:"mx-auto max-w-4xl px-4 py-8"},re={class:"mb-8 text-center"},le={class:"mt-4 flex flex-wrap items-center justify-center gap-3 text-sm"},de={class:"rounded-full border bg-surface px-3 py-1.5"},ie={class:"text-foreground"},ue={class:"rounded-full border bg-surface px-3 py-1.5"},ce={class:"text-foreground"},me={key:0,class:"mb-10 grid grid-cols-1 gap-4 sm:grid-cols-3 sm:items-end"},fe={class:"mt-3 truncate font-bold"},pe={class:"truncate text-xs text-muted"},xe={class:"mt-2 text-2xl font-extrabold brand-text"},be={class:"text-xs text-muted"},_e={class:"text-accent"},ve={class:"text-brand"},he={class:"divide-y overflow-hidden rounded-2xl border bg-surface"},ge={class:"w-8 shrink-0 text-center text-sm font-bold text-muted"},ye={class:"min-w-0 flex-1"},ke={class:"truncate font-semibold"},we={class:"truncate text-xs text-muted"},Le={class:"shrink-0 text-right"},Ce={class:"font-bold"},Oe={class:"text-xs text-muted"},Te={class:"text-accent"},Ne={class:"text-brand"},Be={class:"mt-8 text-center text-sm","aria-live":"polite"},Ie={key:0,class:"flex items-center justify-center gap-2 text-muted"},Me={key:1,class:"text-muted"},Ee={key:2,class:"text-muted"},z=50,D="OnlyFans Leaderboard â Top Bops Ranked by Fan Votes | Prooven",B="The highest-ranked OnlyFans creators on Prooven, ranked in real time from head-to-head fan votes using an Elo system. See the live Top Bops leaderboard.",De=W({__name:"leaderboard",async setup(Fe){let h,I;const{data:i,error:j}=([h,I]=G(()=>oe("/api/leaderboard",{key:"leaderboard-first",query:{offset:0,limit:z}},"$Tp8pc-1tfy")),h=await h,I(),h);if(j.value||!i.value)throw J({statusCode:503,statusMessage:"Leaderboard unavailable",fatal:!0});const M=y(()=>i.value?.total??0),A=y(()=>i.value?.battlesCast??0),x=p([]),g=new Set,k=p(0),b=p(!1),u=p(!1),_=p(!1);function E(){const a=i.value?.entries??[];g.clear();for(const t of a)g.add(t.username);x.value=[...a],k.value=i.value?.nextOffset??a.length,b.value=i.value?.hasMore??!1,u.value=!1,_.value=!1}E(),C(()=>i.value,E);async function F(){if(!(u.value||!b.value)){u.value=!0,_.value=!1;try{const a=await $fetch("/api/leaderboard",{query:{offset:k.value,limit:z}});for(const t of a.entries)g.has(t.username)||(g.add(t.username),x.value.push(t));k.value=a.nextOffset,b.value=a.hasMore}catch{_.value=!0}finally{u.value=!1}}}const w=y(()=>x.value.slice(0,3)),S=y(()=>x.value.slice(3)),H=["sm:order-2","sm:order-1","sm:order-3"],c=p(null);let n=null;return Y(()=>{typeof IntersectionObserver>"u"||(n=new IntersectionObserver(a=>{a.some(t=>t.isIntersecting)&&b.value&&!u.value&&!_.value&&F()},{rootMargin:"800px 0px"}),c.value&&n.observe(c.value))}),C(c,a=>{n&&(n.disconnect(),a&&n.observe(a))}),C(u,(a,t)=>{t&&!a&&n&&c.value&&(n.unobserve(c.value),n.observe(c.value))}),Z(()=>{n?.disconnect(),n=null}),K({title:D,description:B,ogTitle:D,ogDescription:B,ogUrl:`${O.url}/leaderboard`}),Q({link:[{rel:"canonical",href:`${O.url}/leaderboard`}]}),se([ae([{name:"Home",url:"/"},{name:"Leaderboard",url:"/leaderboard"}]),{"@context":"https://schema.org","@type":"ItemList",name:"OnlyFans Leaderboard â Top Bops",description:B,numberOfItems:M.value,itemListElement:w.value.concat(S.value.slice(0,27)).map(a=>({"@type":"ListItem",position:a.rank,url:`${O.url}/creators/${a.slug}`,name:a.displayName}))}]),(a,t)=>{const R=q,L=X,$=te;return l(),d("div",ne,[v(R,{items:[{name:"Home",href:"/"},{name:"Leaderboard"}]}),e("header",re,[t[3]||(t[3]=e("h1",{class:"text-3xl font-extrabold sm:text-4xl"},[f("Top "),e("span",{class:"brand-text"},"Bops")],-1)),t[4]||(t[4]=e("p",{class:"mx-auto mt-2 max-w-2xl text-muted"}," The highest-ranked OnlyFans creators on Prooven â updated in real time from head-to-head fan votes. ",-1)),e("div",le,[e("span",de,[e
1("strong",ie,o(r(M).toLocaleString()),1),t[0]||(t[0]=e("span",{class:"text-muted"}," in the arena",-1))]),e("span",ue,[e("strong",ce,o(r(A).toLocaleString()),1),t[1]||(t[1]=e("span",{class:"text-muted"}," battles cast",-1))]),v(L,{to:"/battle",class:"brand-gradient rounded-full px-4 py-1.5 font-semibold text-white"},{default:T(()=>[...t[2]||(t[2]=[f(" Cast a vote â ",-1)])]),_:1})])]),r(w).length===3?(l(),d("section",me,[(l(!0),d(P,null,U(r(w),(s,m)=>(l(),ee(L,{key:s.username,to:`/creators/${s.slug}`,class:N([H[m],"flex flex-col items-center rounded-2xl border bg-surface p-5 text-center transition hover:border-brand",m===0?"sm:pb-8 sm:pt-8":""])},{default:T(()=>[e("span",{class:N(["mb-3 grid h-8 w-8 place-items-center rounded-full text-sm font-extrabold",m===0?"bg-yellow-400 text-black":m===1?"bg-slate-300 text-black":"bg-amber-700 text-white"])},o(s.rank),3),v($,{name:s.displayName,src:s.avatarUrl,size:m===0?104:84,rounded:"full",class:N(["ring-4",m===0?"ring-yellow-400/60":"ring-border"])},null,8,["name","src","size","class"]),e("h2",fe,o(s.displayName),1),e("p",pe,"@"+o(s.username),1),e("div",xe,o(s.elo.toLocaleString()),1),e("div",be,[e("span",_e,o(s.wins)+"W",1),t[5]||(t[5]=f(" · ",-1)),e("span",ve,o(s.losses)+"L",1)])]),_:2},1032,["to","class"]))),128))])):V("",!0),t[9]||(t[9]=e("h2",{class:"mb-3 text-lg font-bold"},"The rest of the ranking",-1)),e("ol",he,[(l(!0),d(P,null,U(r(S),s=>(l(),d("li",{key:s.username},[v(L,{to:`/creators/${s.slug}`,class:"flex items-center gap-3 px-4 py-3 transition hover:bg-surface-2"},{default:T(()=>[e("span",ge,o(s.rank),1),v($,{name:s.displayName,src:s.avatarUrl,size:40,rounded:"full"},null,8,["name","src"]),e("div",ye,[e("p",ke,o(s.displayName),1),e("p",we,"@"+o(s.username),1)]),e("div",Le,[e("div",Ce,o(s.elo.toLocaleString()),1),e("div",Oe,[e("span",Te,o(s.wins)+"W",1),t[6]||(t[6]=f(" · ",-1)),e("span",Ne,o(s.losses)+"L",1)])])]),_:2},1032,["to"])]))),128))]),e("div",{ref_key:"sentinel",ref:c,"aria-hidden":"true",class:"h-px w-full"},null,512),e("div",Be,[r(u)?(l(),d("div",Ie,[...t[7]||(t[7]=[e("span",{class:"h-4 w-4 animate-spin rounded-full border-2 border-brand border-t-transparent","aria-hidden":"true"},null,-1),f(" Loading more⦠",-1)])])):r(_)?(l(),d("div",Me,[t[8]||(t[8]=f(" Couldn't load more. ",-1)),e("button",{class:"font-semibold text-brand underline-offset-2 hover:underline",onClick:F}," Try again ")])):!r(b)&&r(x).length>0?(l(),d("p",Ee,"You've reached the end of the ranking.")):V("",!0)])])}}});export{De 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.