PageSourceSearch

https://caphousemedia.lovable.app/assets/posts-BTxF3OT0.js

js caphousemedia.lovable.app collected 2026-10-03 03:24:14 UTC 15,490 bytes, 1 lines download raw bytes

1import{n as e}from"./client-BYxvXkP3.js";import{Bt as t,in as n,on as r,rn as i,tn as a}from"./index-DI-Re93t.js";import{n as o}from"./creatorBadges-DUYyyDOD.js";import{s}from"./scheduling-Bcy3eXPa.js";var c=`Cap House Honeys`,l=987654321;function u(e){return`${e.title??``} ${e.url??``}`.toLowerCase().includes(`espn`)}var d=null,f=5*6e4;function p(){let t=Date.now();if(d&&t-d.at<f)return d.value;let n=(async()=>{let{data:t}=await e.from(`rss_feeds`).select(`profile_id, title, url`),n=Array.from(new Set((t??[]).map(e=>e.profile_id).filter(e=>!!e))),r=new Set;if(n.length===0)return{ids:n,idSet:new Set(n),espn:r};for(let e of t??[])e.profile_id&&u(e)&&r.add(e.profile_id);let{data:i}=await e.from(`profiles`).select(`id, username, display_name`).in(`id`,n);for(let e of i??[])`${e.username??``} ${e.display_name??``}`.toLowerCase().includes(`espn`)&&r.add(e.id);return{ids:n,idSet:new Set(n),espn:r}})().catch(e=>{throw d=null,e});return d={at:t,value:n},n}async function m(e){let{ids:t,espn:n}=await p(),r=(e??``).toLowerCase()===`sports`;return t.filter(e=>!(r&&n.has(e)))}function h(e){let t=e.model_profiles,n=Array.isArray(t)?t[0]:t;if(!n)return null;let r=n;return{id:r.id,name:r.name,slug:r.slug,avatar_url:r.avatar_url}}var g=new Map,_=6e4;function v(){g.clear()}function y(e,t=1,n=3){let r=[],i=[...e];for(;i.length>0;){let e=i.findIndex(e=>r.slice(-n).filter(t=>t.author===e.author).length<t);e<0&&(e=0),r.push(i.splice(e,1)[0])}return r.map(e=>e.id)}function b(e){let t=a(),n=[],r=[];for(let i of e)(i.seenCount>0||t.has(i.id)?r:n).push({id:i.id,author:i.author});return[...y(n),...y(r)]}async function x(e,t){let n=g.get(e);if(n&&Date.now()-n.at<_)return n.ids;let r=await t();return g.set(e,{ids:r,at:Date.now()}),r}function S(e){let t=Math.max(1e-9,...e.map(e=>e.score||0));return e.map(e=>{let n=.25+Math.max(0,e.score||0)/t;return{r:e,k:Math.log(Math.random()||1e-12)/n}}).sort((e,t)=>t.k-e.k).map(e=>e.r)}async function C(e,t){return e?x(`foryou:${e}:${t??`all`}`,async()=>{let e=await n({data:{category:t,limit:300}}),r=a(),i=(e??[]).map(e=>({id:e.post_id,author:e.author_id,score:Number(e.score??0),seen:Number(e.seen_count??0)>0||r.has(e.post_id)})),o=S(i.filter(e=>!e.seen)),s=S(i.filter(e=>e.seen)),c=new Set,l=[];for(let e of[...y(o),...y(s)])c.has(e)||(c.add(e),l.push(e));return l}):[]}async function w(e,t){return x(`trending:${e??`anon`}:${t??`all`}`,async()=>b((await r({data:{category:t,limit:300}})??[]).map(e=>({id:e.post_id,author:e.author_id,seenCount:Number(e.seen_count??0)}))))}function T(e,t,n,r,a){if(t.size===0)return e;let o=[],s=[],c=1/0,l=n,u=e=>{let t=Math.max(0,r-n);return n+Math.round(i(e,a)*t)};for(let n of e){if(t.has(n)){s.push(n);continue}if(o.push(n),c=c===1/0?1:c+1,s.length>0&&c>=l){let e=s.shift();o.push(e),l=u(e),c=0}}return s.length>0&&o.length<8&&o.push(...s),o}async function E(e){let t=new Set;if(e.length===0)return t;let{idSet:n}=await p();for(let r of e)n.has(r)&&t.add(r);return t}function D(e,t,n=3,r=5,i=l){if(e.length===0)return e;let a=new Set(e.filter(t).map(e=>e.id));if(a.size===0)return e;let o=new Map(e.map(e=>[e.id,e]));return T(e.map(e=>e.id),a,n,r,i).map(e=>o.get(e)).filter(Boolean)}function O(e,t=20){if(e.length<t)return;let n=e[e.length-1];return{before:{created_at:n.created_at,id:n.id}}}async function k(n,r,i=`foryou`,a=0,l=20){let u=typeof a==`number`?{page:a}:a,d=(u.page??0)*l,f=d+l-1,p=(r??``)===c,g=null;if(p&&i===`foryou`&&(!n||(g=await t(`model`),g.length===0)))return[];let _=null;if(i===`foryou`&&!g){let e=await C(n,r);if(e.length===0||(_=e.slice(d,d+l),_.length===0))return[]}else if(i===`trending`){let e=await w(n,r);if(e.length===0||(_=e.slice(d,d+l),_.length===0))return[]}let v=e.from(`posts`).select(`id, user_id, content, image_url, video_url, audio_url, hashtags, like_count, comment_count, view_count, created_at, poll, category, allow_download, model_profile_id, model_profiles(id, name, slug, avatar_url)`).or(s());
1if(_)v=v.in(`id`,_);else{if(v=v.order(`created_at`,{ascending:!1}).order(`id`,{ascending:!1}),u.before){let{created_at:e,id:t}=u.before;v=v.or(`created_at.lt.${e},and(created_at.eq.${e},id.lt.${t})`),v=v.limit(l)}else v=v.range(d,f);g?v=v.eq(`category`,c).in(`model_profile_id`,g):r&&(v=v.or(`category.eq.${r},hashtags.cs.{${r.toLowerCase()}}`));let e=await m(r);e.length>0&&(v=v.not(`user_id`,`in`,`(${e.join(`,`)})`))}let{data:y,error:b}=await v;if(b)throw b;let x=_?_.map(e=>(y??[]).find(t=>t.id===e)).filter(e=>!!e):y??[];if(x.length===0)return[];let S=Array.from(new Set(x.map(e=>e.user_id))),T=await E(S);if((r??``).toLowerCase()!==`sports`&&T.size>0&&(x=x.filter(e=>!T.has(e.user_id)),x.length===0))return[];let D=x.map(e=>e.id),O=x.filter(e=>e.poll).map(e=>e.id),[k,j,M,N,P,F,I]=await Promise.all([e.from(`profiles`).select(`id, username, display_name, avatar_url, is_member, is_verified`).in(`id`,S),o(S),n?e.from(`post_likes`).select(`post_id`).eq(`user_id`,n).in(`post_id`,D):Promise.resolve({data:null}),n?e.from(`post_saves`).select(`post_id`).eq(`user_id`,n).in(`post_id`,D):Promise.resolve({data:null}),n?e.from(`post_poll_votes`).select(`post_id, option_index`).eq(`user_id`,n).in(`post_id`,D):Promise.resolve({data:null}),O.length>0?e.from(`post_poll_votes`).select(`post_id, option_index`).in(`post_id`,O):Promise.resolve({data:null}),A(x.map(e=>({id:e.id,user_id:e.user_id})),n)]),L=new Map((k.data??[]).map(e=>[e.id,e])),R=new Set((M.data??[]).map(e=>e.post_id)),z=new Set((N.data??[]).map(e=>e.post_id)),B=new Map((P.data??[]).map(e=>[e.post_id,e.option_index])),V=new Map;return(F.data??[]).forEach(e=>{let t=V.get(e.post_id)??[];t[e.option_index]=(t[e.option_index]??0)+1,V.set(e.post_id,t)}),x.map(e=>{let t=L.get(e.user_id),n=e.poll??null,r=V.get(e.id)??[],i=n&&n.options?n.options.map((e,t)=>r[t]??0):null;return{...e,allow_download:!!e.allow_download,poll:n,poll_tally:i,poll_my_vote:B.get(e.id)??null,paywall:I.get(e.id)??null,profile:t?{username:t.username,display_name:t.display_name,avatar_url:t.avatar_url,creator_role:j.get(e.user_id)??null,is_member:!!t.is_member,is_verified:!!t.is_verified}:null,liked_by_me:R.has(e.id),saved_by_me:z.has(e.id),is_rss:T.has(e.user_id),model_profile_id:e.model_profile_id??null,model:h(e)}})}async function A(t,n){let r=new Map;if(t.length===0)return r;let i=t.map(e=>e.id),{data:a}=await e.rpc(`get_public_paywalls`,{_post_ids:i}),o=a??[];if(o.length===0)return r;let s=Array.from(new Set(o.map(e=>e.required_tier_id).filter(e=>!!e))),c=new Map;if(s.length>0){let{data:t}=await e.from(`membership_tiers`).select(`id, name, price_cents, interval`).in(`id`,s);(t??[]).forEach(e=>c.set(e.id,{name:e.name,price_cents:e.price_cents,interval:e.interval}))}let l=new Set,u=new Set,d=new Set;if(n){let t=o.map(e=>e.post_id),[r,i,a]=await Promise.all([e.from(`ppv_unlocks`).select(`post_id`).eq(`user_id`,n).in(`status`,[`paid`,`succeeded`]).in(`post_id`,t),e.from(`tips`).select(`post_id, amount_cents, status`).eq(`from_user`,n).in(`post_id`,t),s.length>0?e.from(`memberships`).select(`tier_id, status, current_period_end`).eq(`user_id`,n).in(`tier_id`,s):Promise.resolve({data:[]})]);(r.data??[]).forEach(e=>l.add(e.post_id));let c=new Map;(i.data??[]).forEach(e=>{if(e.status!==`paid`||!e.post_id)return;let t=c.get(e.post_id)??0;c.set(e.post_id,Math.max(t,e.amount_cents??0))});for(let e of o)e.min_tip_cents!=null&&(c.get(e.post_id)??0)>=e.min_tip_cents&&u.add(e.post_id);let f=Date.now();(a.data??[]).forEach(e=>{let t=e.status===`active`||e.status===`trialing`,n=!e.current_period_end||new Date(e.current_period_end).getTime()>f;t&&n&&e.tier_id&&d.add(e.tier_id)})}let f=new Map(t.map(e=>[e.id,e.user_id]));for(let e of o){let t=e.required_tier_id?c.get(e.required_tier_id)??null:null,i=f.get(e.post_id),a=!1;(n&&i===n||l.has(e.post_id)||e.required_tier_id&&d.has(e.required_tier_id)||u.has(e.post_id))&&(a=!0),r.set(e.post_id,{creator_id:e.creator_id,price_cents:e.price_cents,min_tip_cents:e.min_tip_cents,required_tier_id:e.required_tier_id,tier_name:t?.name??null,tier_price_cents:t?.price_cents??null,tier_interval:t?.interval??null,has_access:a})}return r}function j(e){let t=e.match(/#[\p{L}\p{N}_]+/gu)??[];return Array.from(new Set(t.map(e=>e.slice(1))))}async function M(t,n,r){if(!(r&&((r.priceCents??0)>0||(r.minTipCents??0)>0||r.requiredTierId))){await e.from(`post_paywalls`).delete().eq(`post_id`,t);return}let{error:i}=await e.from(`post_paywalls`).upsert({post_id:t,creator_id:n,price_cents:r.priceCents??0,min_tip_cents:r.minTipCents??null,required_tier_id:r.requiredTierId??null,currency:`usd`},{onConflict:`post_id`});if(i)throw i}async function N(t,n,r,i,a,o,s,c,l,u,d){let f=n.trim();if(!f&&!r&&!i)throw Error(`Post is empty`);if(f.length>500)throw Error(`Post must be 500 characters or less`);if(i){if(!i.question.trim())throw Error(`Poll needs a question`);let e=i.options.map(e=>
1e.trim()).filter(Boolean);if(e.length<2)throw Error(`Poll needs at least 2 options`);if(e.length>4)throw Error(`Poll supports up to 4 options`);i={question:i.question.trim(),options:e}}let p=r?.kind===`image`?r.url:r?.kind===`video`&&o?o:null,{data:m,error:h}=await e.from(`posts`).insert({user_id:t,content:f,hashtags:j(f),image_url:p,video_url:r?.kind===`video`?r.url:null,audio_url:r?.kind===`audio`?r.url:null,poll:i??null,category:a??null,allow_download:r?.kind===`video`?!!s:!1,scheduled_at:c??null,music_artist_id:u??null,model_profile_id:d??null}).select(`id`).single();if(h)throw h;if(l&&m?.id)try{await M(m.id,t,l)}catch(e){console.error(`Failed to set post paywall`,e)}}async function P(t){let n=t.content.trim();if(n.length>500)throw Error(`Post must be 500 characters or less`);let r=t.poll;if(r){if(!r.question.trim())throw Error(`Poll needs a question`);let e=r.options.map(e=>e.trim()).filter(Boolean);if(e.length<2)throw Error(`Poll needs at least 2 options`);if(e.length>4)throw Error(`Poll supports up to 4 options`);r={question:r.question.trim(),options:e}}let i={content:n,hashtags:j(n),poll:r??null};t.modelProfileId!==void 0&&(i.model_profile_id=t.modelProfileId),t.media!==void 0&&(i.image_url=t.media?.kind===`image`?t.media.url:null,i.video_url=t.media?.kind===`video`?t.media.url:null,i.audio_url=t.media?.kind===`audio`?t.media.url:null),t.category!==void 0&&(i.category=t.category);let{error:a}=await e.from(`posts`).update(i).eq(`id`,t.postId);if(a)throw a}async function F(t){let{data:n,error:r}=await e.from(`posts`).delete().eq(`id`,t).select(`id`);if(r)throw r;if(!n||n.length===0)throw Error(`You don't have permission to delete this post.`)}async function I(t){let{data:n,error:r}=await e.from(`posts`).select(`id, user_id, content, image_url, video_url, audio_url, poll, category, model_profile_id`).eq(`id`,t).maybeSingle();if(r)throw r;return n??null}async function L(t,n,r){let{error:i}=await e.from(`post_poll_votes`).upsert({post_id:t,user_id:n,option_index:r},{onConflict:`post_id,user_id`});if(i)throw i}async function R(t,n,r){if(r){let{error:r}=await e.from(`post_likes`).delete().eq(`post_id`,t).eq(`user_id`,n);if(r)throw r}else{let{error:r}=await e.from(`post_likes`).insert({post_id:t,user_id:n});if(r)throw r}}async function z(t,n,r){if(r){let{error:r}=await e.from(`post_saves`).delete().eq(`post_id`,t).eq(`user_id`,n);if(r)throw r}else{let{error:r}=await e.from(`post_saves`).insert({post_id:t,user_id:n});if(r)throw r}}async function B(t,n){if(t.length===0)return[];let{data:r,error:i}=await e.from(`posts`).select(`id, user_id, content, image_url, video_url, audio_url, hashtags, like_count, comment_count, view_count, created_at, poll, category, allow_download, model_profile_id, model_profiles(id, name, slug, avatar_url)`).in(`id`,t).order(`created_at`,{ascending:!1});if(i)throw i;if(!r)return[];let a=Array.from(new Set(r.map(e=>e.user_id))),s=await E(a),{data:c}=await e.from(`profiles`).select(`id, username, display_name, avatar_url, is_member, is_verified`).in(`id`,a),l=new Map((c??[]).map(e=>[e.id,e])),u=await o(a),d=new Set,f=new Set,p=new Map,m=r.map(e=>e.id);if(n){let{data:t}=await e.from(`post_likes`).select(`post_id`).eq(`user_id`,n).in(`post_id`,m);d=new Set((t??[]).map(e=>e.post_id));let{data:r}=await e.from(`post_saves`).select(`post_id`).eq(`user_id`,n).in(`post_id`,m);f=new Set((r??[]).map(e=>e.post_id));let{data:i}=await e.from(`post_poll_votes`).select(`post_id, option_index`).eq(`user_id`,n).in(`post_id`,m);p=new Map((i??[]).map(e=>[e.post_id,e.option_index]))}let g=r.filter(e=>e.poll).map(e=>e.id),_=new Map;if(g.length>0){let{data:t}=await e.from(`post_poll_votes`).select(`post_id, option_index`).in(`post_id`,g);(t??[]).forEach(e=>{let t=_.get(e.post_id)??[];t[e.option_index]=(t[e.option_index]??0)+1,_.set(e.post_id,t)})}let v=await A(r.map(e=>({id:e.id,user_id:e.user_id})),n);return r.map(e=>{let t=l.get(e.user_id),n=e.poll??null,r=_.get(e.id)??[],i=n&&n.options?n.options.map((e,t)=>r[t]??0):null;return{...e,allow_download:!!e.allow_download,poll:n,poll_tally:i,poll_my_vote:p.get(e.id)??null,paywall:v.get(e.id)??null,profile:t?{username:t.username,display_name:t.display_name,avatar_url:t.avatar_url,creator_role:u.get(e.user_id)??null,is_member:!!t.is_member,is_verified:!!t.is_verified}:null,liked_by_me:d.has(e.id),saved_by_me:f.has(e.id),is_rss:s.has(e.user_id),model_profile_id:e.model_profile_id??null,model:h(e)}})}async function V(t,n,r=`latest`){if(r===`trending`){let{data:r,error:i}=await e.from(`trending_posts`).select(`id, author_id, score`).eq(`author_id`,t).order(`score`,{ascending:!1}).limit(50);if(i)throw i;return B((r??[]).map(e=>e.id),n)}let{data:i,error:a}=await e.from(`posts`).select(`id`).eq(`user_id`,t).or(s()).order(`created_at`,{ascending:!1}).limit(50);if(a)throw a;return B((i??[]).map(e=>e.id),n)}async function H(t,n,r,i){let a=e.from(`posts`).select(`id, created_at`).eq(`user_id`,t).or(s()).order(`created_at`,{ascending:!1}).limit(r);i&&(a=a.lt(`created_at`,i));let{data:o,error:c}=await a;if(c)throw c;let l=o??[];return{items:await B(l.map(e=>e.id),n),nextCursor:l.length===r?l[l.length-1].created_at:null}}async function U(t,n){let{data:r,error:i}=await e.from(`posts`).select(`id`).eq(`user_id`,t).not(`video_url`,`is`,null).or(s()).order(`created_at`,{ascending:!1}).limit(50);if(i)throw i;return B((r??[]).map(e=>e.id),n)}async function W(t){let{data:n,error:r}=await e.from(`post_saves`).select(`post_id`).eq(`user_id`,t).order(`created_at`,{ascending:!1}).limit(50);if(r)throw r;return B((n??[]).map(e=>e.post_id),t)}async function G(t){let{data:n,error:r}
1=await e.from(`post_likes`).select(`post_id`).eq(`user_id`,t).order(`created_at`,{ascending:!1}).limit(50);if(r)throw r;return B((n??[]).map(e=>e.post_id),t)}function K(e){let t=(Date.now()-new Date(e).getTime())/1e3;return t<60?`${Math.floor(t)}s`:t<3600?`${Math.floor(t/60)}m`:t<86400?`${Math.floor(t/3600)}h`:t<604800?`${Math.floor(t/86400)}d`:new Date(e).toLocaleDateString()}async function q(t=5){let{data:n,error:r}=await e.from(`posts`).select(`id, user_id, content, video_url, image_url, like_count, view_count, created_at, profiles(username, display_name, avatar_url)`).eq(`category`,`Music`).eq(`is_music_trending`,!0).not(`video_url`,`is`,null).or(s()).order(`trending_rank`,{ascending:!0,nullsFirst:!1}).order(`like_count`,{ascending:!1,nullsFirst:!1}).order(`view_count`,{ascending:!1,nullsFirst:!1}).limit(t);if(r)throw r;return(n??[]).map(e=>({...e,like_count:e.like_count??0,view_count:e.view_count??0,profile:e.profiles??null}))}export{R as _,G as a,q as c,U as d,B as f,K as g,D as h,k as i,V as l,v as m,N as n,I as o,O as p,F as r,W as s,L as t,H as u,z as v,P as y};

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.