PageSourceSearch

https://gochu.ai/_next/static/chunks/8485-2dde16ae4aa2046a.js

js gochu.ai collected 2026-10-05 13:39:18 UTC 14,490 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8485],{8485:function(e,r,t){t.d(r,{default:function(){return y}});var n=t(7437),a=t(2265),s=t(4817),i=t(4042),l=t(6648),o=t(6127),c=t(5153),d=t(3102),u=t(7781),f=t(9274),m=t(1404),h=t(5143),x=t(8111);function p(e){let{characters:r}=e,t=(0,c.T)(),{startChat:a,loading:s,error:i}=(0,h.y)();if(0===r.length)return null;let o=e=>a(e.id,()=>{(0,x.eN)("character_viewed",{character_id:e.id,character_name:e.name})});return(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{className:"m-0 text-xs text-white/40 tracking-[1.4px] uppercase font-semibold",children:t("explore.trending.title")}),(0,n.jsx)("div",{className:"mt-3.5 flex gap-5 overflow-x-auto no-scrollbar pb-1.5",children:r.map(e=>(0,n.jsxs)("button",{type:"button",disabled:s,"aria-busy":s,onClick:()=>o(e),className:"flex flex-col items-center gap-2 flex-shrink-0 w-[74px]",children:[(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)("div",{className:"w-[66px] h-[66px] rounded-full p-0.5 bg-gradient-to-br from-pink-500 to-purple-600",children:(0,n.jsx)("div",{className:"w-full h-full rounded-full overflow-hidden relative",children:(0,n.jsx)(l.default,{src:e.avatarUrl||"/placeholder.jpg",alt:e.name,fill:!0,className:"object-cover",sizes:"66px"})})}),e.isActive&&(0,n.jsx)("span",{className:"absolute bottom-0.5 right-0.5 w-[13px] h-[13px] rounded-full bg-emerald-400 border-2 border-[#050505] shadow-[0_0_6px_#34d399]"})]}),(0,n.jsx)("span",{className:"text-[12.5px] font-medium text-white/85 max-w-[74px] overflow-hidden text-ellipsis whitespace-nowrap",children:e.name})]},e.id))}),i&&(0,n.jsx)("p",{role:"alert",className:"text-sm text-red-400",children:i})]})}var g=t(378);let b=e=>{for(let r of["Anime AI Characters","Personnages IA Anime","Male AI Characters","Personnages IA Masculins","AI Characters","Personnages IA","AI Companions","Compagnons IA","AI 캐릭터","AI 角色","AI 伴侣"])if(e.includes(r)){let t=e.split(r);return(0,n.jsxs)("span",{className:"text-2xl font-light md:text-4xl text-white",children:[t[0]," ",(0,n.jsx)("span",{className:"font-medium",children:r})]})}return(0,n.jsx)("span",{className:"text-2xl font-light md:text-4xl text-white",children:e})};var y=e=>{let{initialCharacters:r=[],trendingCharacters:t,title:h,description:x,breadcrumbLabel:y,showSearchAndTags:w=!1,redirectToDetails:v=!1}=e,j=(0,o.bU)()||"fr",N=(0,c.T)(),[k,C]=(0,a.useState)(""),[A,S]=(0,a.useState)(!1),[I,M]=(0,a.useState)(null),[_,B]=(0,a.useState)(r),[L,F]=(0,a.useState)(0===r.length),[T,O]=(0,a.useState)(8),P=(0,a.useRef)(null),E=(0,a.useCallback)(e=>{P.current&&(P.current.disconnect(),P.current=null),e&&(P.current=new IntersectionObserver(e=>{let[r]=e;r.isIntersecting&&O(e=>e+8)},{rootMargin:"400px"}),P.current.observe(e))},[]),G=(0,u.t)(e=>e.isFavorite),D=(0,u.t)(e=>e.fetchFavoriteIds);(0,a.useEffect)(()=>{0===_.length&&L?(async()=>{try{let e=await fetch("/api/characters?locale=".concat(j));if(e.ok){let r=await e.json();B(r)}}catch(e){console.error("Error fetching characters:",e)}finally{F(!1)}})():F(!1),D()},[j,D,_.length,L]),(0,a.useEffect)(()=>{O(8)},[k,A,I]);let z=(0,a.useMemo)(()=>_.filter(e=>{var r,t,n,a;let s=k.toLowerCase(),i=!w||(null!==(t=e.name)&&void 0!==t?t:"").toLowerCase().includes(s)||(null!==(n=e.bio)&&void 0!==n?n:"").toLowerCase().includes(s)||(null===(r=e.tags)||void 0===r?void 0:r.some(e=>(null!=e?e:"").toLowerCase().includes(s)))||(null!==(a=e.ethnicity)&&void 0!==a?a:"").toLowerCase().includes(s),l=!A||G(e.id),o=!I||(e.tags||[]).some(e=>(0,g.l)(e)===I);return i&&l&&o}),[_,k,A,I,G,w]),R=(0,a.useMemo)(()=>{if(!w)return[];let e=new Map;return f.Ob.forEach(r=>{e.set(r,0)}),_.forEach(r=>{r.tags&&Array.isArray(r.tags)&&r.tags.forEach(r=>{let t=(0,g.l)(r),n=e.get(t)||0;e.set(t,n+1)})}),Array.from(e.entries()).filter(e=>{let[r,t]=e;return t>0}).sort((e,r)=>r[1]-e[1]).slice(0,15).map(e=>{let[r,t]=e;return{slug:r,count:t,name:f.T2[r]||r.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}})},[_,w]),U=(0,a.useMemo)(()=>null!=t?t:_.slice(0,9),[t,_]),Z=w&&!k.trim()&&!I;return(0,n.jsx)("div",{className:"min-h-screen",children:(0,n.jsxs)("div",{className:"max-w-7xl mx-auto w-full px-4 md:px-0 py-6",children:[w?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex flex-col md:flex-row md:items-end justify-between gap-5 mb-6",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"font-display text-2xl md:text-4xl tracking-tight leading-[1.1]",children:b(h||N("gallery.title"))}),(0,n.jsx)("p",{className:"mt-1.5 text-sm md:text-base text-white/50 max-w-lg leading-snug",children:x||N("gallery.subtitle")})]}),(0,n.jsxs)("div",{className:"relative w-full md:w-[340px] flex-shrink-0",children:[(0,n.jsx)("div",{className:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-4 z-10",children:(0,n.jsx)(s.Z,{className:"h-4 w-4 text-gray-400"})}),(0,n.jsx)(d.I,{placeholder:N("gallery.search_placeholder"),value:k,onChange:e=>C(e.target.value),className:"h-11 w-full rounded-full border-white/10 bg-white/5 pl-10 text-white placeholder-gray-500 backdrop-blur-sm transition-all focus:border-purple-500/50 focus:bg-white/10 focus:ring-purple-500/20"})]})]}),!L&&R.length>0&&(0,n.jsxs)("div",{className:"mb-6 flex gap-2 overflow-x-auto no-scrollbar pb-1",children:[R.map(e=>{let r=I===e.slug;return(0,n.jsx)("button",{onClick:()=>M(r?null:e.slug),className:"flex-shrink-0 px-3.5 py-2 rounded-full text-[12.5px] font-medium whitespace-nowrap transition-colors ".concat(r?"bg-white text-[#0a0a0a] border border-transparent":"bg-white/5 text-white/60 border border-white/[0.07] hover:text-white"),children:e.name},e.slug)}),(0,n.jsxs)("button",{onClick:()=>S(e=>!e),className:"flex-shrink-0 inline-flex items-center gap-1.5 px-3.5 py-2 rounded-full text-[12.5px] font-medium whitespace-nowrap transition-colors ".concat(A?"bg-white text-[#0a0a0a] border border-transparent":"bg-white/5 text-white/60 border border-white/[0.07] hover:text-white"),children:[(0,n.jsx)(i.Z,{className:"h-3 w-3 ".concat(A?"fill-[#0a0a0a]":"")}),N("explore.favorites_chip")]})]}),!L&&Z&&(0,n.jsx)("div",{className:"mb-6",children:(0,n.jsx)(p,{characters:U})})]}):(0,n.jsxs)("div",{className:"relative mb-6 rounded-2xl overflow-hidden h-[220px] md:h-[300px]",children:[(0,n.jsx)(l.default,{src:"/assets/banner_hero_v2.webp",alt:"Compagnons IA Gochu",fill:!0,priority:!0,className:"object-cover object-[center_25%] md:!left-[12%] md:!w-[85%]",sizes:"(max-width: 768px) 100vw, 1280px"}),(0,n.jsx)("div",{className:"absolute inset-0 bg-black/30"}),(0,n.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-[#050505] via-[#050505]/55 to-transparent"}),(0,n.jsx)("div",{className:"absolute inset-0 bg-gradient-to-tr from-pink-950/20 via-trans
1parent to-transparent"}),(0,n.jsxs)("div",{className:"absolute bottom-0 left-0 right-0 px-5 pb-5 md:px-8 md:pb-7",children:[(0,n.jsxs)("div",{className:"inline-flex items-center gap-2 px-3 py-1 rounded-full border border-white/10 bg-white/5 mb-3",children:[(0,n.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-pink-400 shrink-0"}),(0,n.jsxs)("span",{className:"text-[11px] font-medium text-pink-300 tracking-widest uppercase",children:[_.length>0?"".concat(_.length,"+"):"50+"," ","fr"===j?"Compagnons IA":"AI Companions"]})]}),(0,n.jsx)("h1",{className:"font-display text-2xl md:text-4xl font-bold text-white tracking-tight leading-[1.1] mb-1.5",children:h||N("gallery.title")}),(0,n.jsx)("p",{className:"mt-1.5 text-sm md:text-base text-white/50 max-w-lg leading-snug",children:x||N("gallery.subtitle")})]})]}),(0,n.jsxs)("div",{children:[L&&(0,n.jsxs)("div",{className:"text-center py-12",children:[(0,n.jsx)("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-purple-500"}),(0,n.jsx)("p",{className:"text-gray-400 mt-4",children:N("gallery.loading")})]}),!L&&(0,n.jsxs)(n.Fragment,{children:[w&&(0,n.jsx)("div",{className:"flex items-baseline justify-between mb-4",children:(0,n.jsxs)("h2",{className:"text-lg font-semibold text-white whitespace-nowrap",children:[k.trim()?N("explore.results.for_query",{query:k.trim()}):N("explore.results.popular"),(0,n.jsx)("span",{className:"ml-2.5 text-sm font-normal text-white/40",children:z.length})]})}),z.length>0?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3 md:gap-6",children:z.slice(0,T).map((e,r)=>{var t;return(0,n.jsx)(m.ModernCharacterCard,{id:e.id,name:e.name,age:e.age,image:e.avatarUrl||"/placeholder.jpg",tags:e.tags,isOnline:e.isActive,ethnicity:e.ethnicity,index:r,redirectToDetails:v,ownerUsername:null===(t=e.owner)||void 0===t?void 0:t.username},e.id)})}),T<z.length&&(0,n.jsx)("div",{ref:E,className:"h-1"})]}):(0,n.jsxs)("div",{className:"text-center py-12 animate-in fade-in duration-500",children:[(0,n.jsx)("p",{className:"text-gray-400 text-lg mb-4",children:N("gallery.no_results")}),(0,n.jsx)("p",{className:"text-gray-500 text-sm",children:N("gallery.no_results_hint")||"Try adjusting your filters"})]})]})]})]})})}},3102:function(e,r,t){t.d(r,{I:function(){return i}});var n=t(7437),a=t(2265),s=t(7440);let i=a.forwardRef((e,r)=>{let{className:t,type:a,...i}=e;return(0,n.jsx)("input",{type:a,className:(0,s.cn)("flex h-[45px] w-full rounded-md border border-input bg-background px-3 py-2 text-md font-light ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),ref:r,...i})});i.displayName="Input"},9274:function(e,r,t){t.d(r,{Ob:function(){return n},T2:function(){return a}});let n=["busty","petite","bbw-chubby","tall-giantess","muscular-muscle-mommy","tanned-gyaru","yandere","bratty","tsundere","deredere","wholesome","slow-burn","maid","teacher","nurse","office-lady","housewife","roommate","best-friend","succubus","elf","vampire","neko-catgirl","monster-girl","furry"],a=Object.fromEntries(Object.entries({milf:{fr:"MILF",en:"MILF"},busty:{fr:"Poitrine g\xe9n\xe9reuse",en:"Busty"},petite:{fr:"Petite",en:"Petite"},"bbw-chubby":{fr:"BBW / Ronde",en:"BBW / Chubby"},"tall-giantess":{fr:"Grande / G\xe9ante",en:"Tall / Giantess"},"muscular-muscle-mommy":{fr:"Muscl\xe9e",en:"Muscular"},"tanned-gyaru":{fr:"Tann\xe9e / Gyaru",en:"Tanned / Gyaru"},yandere:{fr:"Yandere",en:"Yandere"},"dommy-mommy":{fr:"Dommy Mommy",en:"Dommy Mommy"},submissive:{fr:"Soumise",en:"Submissive"},bratty:{fr:"Insolente",en:"Bratty"},tsundere:{fr:"Tsundere",en:"Tsundere"},deredere:{fr:"Deredere",en:"Deredere"},sadist:{fr:"Sadique",en:"Sadist"},"step-mom":{fr:"Belle-m\xe8re",en:"Step-Mom"},"step-sister":{fr:"Belle-sœur",en:"Step-Sister"},maid:{fr:"Bonne",en:"Maid"},teacher:{fr:"Professeure",en:"Teacher"},nurse:{fr:"Infirmi\xe8re",en:"Nurse"},"office-lady":{fr:"Secr\xe9taire",en:"Office Lady"},housewife:{fr:"Femme au foyer",en:"Housewife"},roommate:{fr:"Colocataire",en:"Roommate"},"best-friend":{fr:"Meilleure amie",en:"Best Friend"},succubus:{fr:"Succube",en:"Succubus"},elf:{fr:"Elfe",en:"Elf"},vampire:{fr:"Vampire",en:"Vampire"},"neko-catgirl":{fr:"Neko / Catgirl",en:"Neko / Catgirl"},"monster-girl":{fr:"Monster Girl",en:"Monster Girl"},furry:{fr:"Furry",en:"Furry"},"slow-burn":{fr:"Slow Burn",en:"Slow Burn"},ntr:{fr:"NTR",en:"NTR"},femdom:{fr:"Femdom",en:"Femdom"},wholesome:{fr:"Wholesome",en:"Wholesome"},caucasian:{fr:"Caucasienne",en:"Caucasian"},asian:{fr:"Asiatique",en:"Asian"},latina:{fr:"Latina",en:"Latina"},black:{fr:"Africaine",en:"Black"},arab:{fr:"Arabe",en:"Arab"},indian:{fr:"Indienne",en:"Indian"},latino:{fr:"Latino",en:"Latino"},"middle-eastern":{fr:"Moyen-Oriental",en:"Middle Eastern"},mixed:{fr:"M\xe9tis",en:"Mixed"},bikini:{fr:"Bikini",en:"Bikini"},yoga:{fr:"Yoga",en:"Yoga"},"mini-skirt":{fr:"Mini-jupe",en:"Mini Skirt"},"office-wear":{fr:"Tenue bureau",en:"Office Wear"},"school-uniform":{fr:"Uniforme scolaire",en:"School Uniform"},armor:{fr:"Armure",en:"Armor"},boxers:{fr:"Boxers",en:"Boxers"},"gym-shorts":{fr:"Short sport",en:"Gym Shorts"},suit:{fr:"Costume",en:"Suit"},jeans:{fr:"Jeans",en:"Jeans"},leather:{fr:"Cuir",en:"Leather"},standing:{fr:"Debout",en:"Standing"},laying:{fr:"Allong\xe9e",en:"Laying"},sitting:{fr:"Assise",en:"Sitting"},"from-behind":{fr:"De derri\xe8re",en:"From Behind"},crouching:{fr:"Accroupie",en:"Crouching"},"peace-sign":{fr:"Peace",en:"Peace Sign"},blushing:{fr:"Timide",en:"Blushing"},seiza:{fr:"Seiza",en:"Seiza"},kneeling:{fr:"\xc0 genoux",en:"Kneeling"},flexing:{fr:"Flexion",en:"Flexing"},action:{fr:"Action",en:"Action"},bedroom:{fr:"Chambre",en:"Bedroom"},beach:{fr:"Plage",en:"Beach"},shower:{fr:"Douche",en:"Shower"},gym:{fr:"Gym",en:"Gym"},office:{fr:"Bureau",en:"Office"},"luxury-hotel":{fr:"H\xf4tel de luxe",en:"Luxury Hotel"},classroom:{fr:"Classe",en:"Classroom"},castle:{fr:"Ch\xe2teau",en:"Castle"},onsen:{fr:"Onsen",en:"Onsen"},cyberpunk:{fr:"Cyberpunk",en:"Cyberpunk"},forest:{fr:"For\xeat",en:"Forest"},loft:{fr:"Loft",en:"Loft"},"locker-room":{fr:"Vestiaire",en:"Locker Room"},"urban-alley":{fr:"Ruelle urbaine",en:"Urban Alley"},classic:{fr:"Classique",en:"Classic"},tan:{fr:"Tan",en:"Tan"},"dark-skinned":{fr:"Dark",en:"Dark Skinned"},catgirl:{fr:"Catgirl",en:"Catgirl"}}).map(e=>{let[r,t]=e;return[r,t.en]}))},4042:function(e,r,t){t.d(r,{Z:function(){return n}});let n=(0,t(8204).Z)("heart",[["path",{d:"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",key:"mvr1a0"}]])}
1,4817:function(e,r,t){t.d(r,{Z:function(){return n}});let n=(0,t(8204).Z)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},6648:function(e,r,t){t.d(r,{default:function(){return a.a}});var n=t(5601),a=t.n(n)},5601:function(e,r,t){Object.defineProperty(r,"__esModule",{value:!0}),function(e,r){for(var t in r)Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}(r,{default:function(){return o},getImageProps:function(){return l}});let n=t(9920),a=t(497),s=t(8173),i=n._(t(1241));function l(e){let{props:r}=(0,a.getImgProps)(e,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,t]of Object.entries(r))void 0===t&&delete r[e];return{props:r}}let o=s.Image}}]);

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.